### Eclipse Workspace Patch 1.0 #P org.eclipse.ecf.presence.ui Index: src/org/eclipse/ecf/internal/presence/ui/preferences/PreferenceConstants.java =================================================================== RCS file: /cvsroot/technology/org.eclipse.ecf/plugins/org.eclipse.ecf.presence.ui/src/org/eclipse/ecf/internal/presence/ui/preferences/PreferenceConstants.java,v retrieving revision 1.1 diff -u -r1.1 PreferenceConstants.java --- src/org/eclipse/ecf/internal/presence/ui/preferences/PreferenceConstants.java 27 Jul 2007 22:05:01 -0000 1.1 +++ src/org/eclipse/ecf/internal/presence/ui/preferences/PreferenceConstants.java 28 Jul 2007 03:05:09 -0000 @@ -16,4 +16,5 @@ */ public class PreferenceConstants { public static final String CHATROOM_SHOW_USER_PRESENCE = "chatroom.user.presence.visible"; + public static final String CHATROOM_HYPERLINK_BUG_URL = "chatroom.hyperlink.bug.url"; } Index: src/org/eclipse/ecf/internal/presence/ui/preferences/PreferenceInitializer.java =================================================================== RCS file: /cvsroot/technology/org.eclipse.ecf/plugins/org.eclipse.ecf.presence.ui/src/org/eclipse/ecf/internal/presence/ui/preferences/PreferenceInitializer.java,v retrieving revision 1.1 diff -u -r1.1 PreferenceInitializer.java --- src/org/eclipse/ecf/internal/presence/ui/preferences/PreferenceInitializer.java 27 Jul 2007 22:05:01 -0000 1.1 +++ src/org/eclipse/ecf/internal/presence/ui/preferences/PreferenceInitializer.java 28 Jul 2007 03:05:09 -0000 @@ -21,12 +21,16 @@ */ public class PreferenceInitializer extends AbstractPreferenceInitializer { + public static final String HYPERLINK_BUG_DEFAULT_URL = "https://bugs.eclipse.org/bugs/show_bug.cgi?id="; + /** * @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences() */ public void initializeDefaultPreferences() { IPreferenceStore store = Activator.getDefault().getPreferenceStore(); store.setDefault(PreferenceConstants.CHATROOM_SHOW_USER_PRESENCE, false); + store.setDefault(PreferenceConstants.CHATROOM_HYPERLINK_BUG_URL, + HYPERLINK_BUG_DEFAULT_URL); } } Index: src/org/eclipse/ecf/internal/presence/ui/preferences/ChatRoomPreferencePage.java =================================================================== RCS file: /cvsroot/technology/org.eclipse.ecf/plugins/org.eclipse.ecf.presence.ui/src/org/eclipse/ecf/internal/presence/ui/preferences/ChatRoomPreferencePage.java,v retrieving revision 1.1 diff -u -r1.1 ChatRoomPreferencePage.java --- src/org/eclipse/ecf/internal/presence/ui/preferences/ChatRoomPreferencePage.java 27 Jul 2007 22:05:01 -0000 1.1 +++ src/org/eclipse/ecf/internal/presence/ui/preferences/ChatRoomPreferencePage.java 28 Jul 2007 03:05:09 -0000 @@ -14,26 +14,64 @@ import org.eclipse.ecf.internal.presence.ui.Activator; import org.eclipse.ecf.internal.presence.ui.Messages; import org.eclipse.jface.preference.BooleanFieldEditor; +import org.eclipse.jface.preference.FieldEditor; import org.eclipse.jface.preference.FieldEditorPreferencePage; +import org.eclipse.jface.preference.StringFieldEditor; +import org.eclipse.jface.util.PropertyChangeEvent; +import org.eclipse.osgi.util.NLS; +import org.eclipse.swt.SWT; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Group; import org.eclipse.ui.IWorkbench; import org.eclipse.ui.IWorkbenchPreferencePage; public class ChatRoomPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage { + public static final String BUG_NUMBER = ""; + + private StringFieldEditor bugUrl; + public ChatRoomPreferencePage() { super(GRID); setPreferenceStore(Activator.getDefault().getPreferenceStore()); } - /* (non-Javadoc) + /* + * (non-Javadoc) + * * @see org.eclipse.jface.preference.FieldEditorPreferencePage#createFieldEditors() */ public void createFieldEditors() { + Group messageGroup = new Group(getFieldEditorParent(),SWT.NONE); + messageGroup.setText("Chat Room Messages"); + addField(new BooleanFieldEditor( PreferenceConstants.CHATROOM_SHOW_USER_PRESENCE, Messages.ChatRoomPreferencePage_CHATROOM_SHOW_USER_PRESENCE_TEXT, - getFieldEditorParent())); + messageGroup)); + + GridLayout messageGroupLayout = new GridLayout(); + messageGroup.setLayout(messageGroupLayout); + GridData messageGroupGridData = new GridData(GridData.FILL_HORIZONTAL); + messageGroupGridData.horizontalSpan = 2; + messageGroup.setLayoutData(messageGroupGridData); + + Group hyperlinkGroup = new Group(getFieldEditorParent(),SWT.NONE); + hyperlinkGroup.setText("Hyperlinks"); + + bugUrl = new StringFieldEditor( + PreferenceConstants.CHATROOM_HYPERLINK_BUG_URL, + Messages.ChatRoomPreferencePage_CHATROOM_HYPERLINK_BUG_URL, + hyperlinkGroup); + addField(bugUrl); + + GridLayout hyperlinkGroupLayout = new GridLayout(); + hyperlinkGroup.setLayout(hyperlinkGroupLayout); + GridData hyperlinkGroupGridData = new GridData(GridData.FILL_HORIZONTAL); + hyperlinkGroupGridData.horizontalSpan = 2; + hyperlinkGroup.setLayoutData(hyperlinkGroupGridData); } /* @@ -42,4 +80,40 @@ public void init(IWorkbench workbench) { } + /* + * (non-Javadoc) + * + * @see org.eclipse.jface.preference.FieldEditorPreferencePage#checkState() + */ + protected void checkState() { + super.checkState(); + + if (!isValid()) + return; + if (bugUrl.getStringValue().indexOf(BUG_NUMBER) < 0) { + setErrorMessage(NLS + .bind( + Messages.ChatRoomPreferencePage_CHATROOM_HYPERLINK_BUG_URL_ERROR, + BUG_NUMBER)); + setValid(false); + } else { + setErrorMessage(null); + setValid(true); + } + } + + /* + * (non-Javadoc) + * + * @see org.eclipse.jface.preference.FieldEditorPreferencePage#propertyChange(org.eclipse.jface.util.PropertyChangeEvent) + */ + public void propertyChange(PropertyChangeEvent event) { + super.propertyChange(event); + + if (event.getProperty().equals(FieldEditor.VALUE)) { + if (event.getSource() == bugUrl) + checkState(); + } + } + } Index: src/org/eclipse/ecf/internal/presence/ui/Messages.java =================================================================== RCS file: /cvsroot/technology/org.eclipse.ecf/plugins/org.eclipse.ecf.presence.ui/src/org/eclipse/ecf/internal/presence/ui/Messages.java,v retrieving revision 1.24 diff -u -r1.24 Messages.java --- src/org/eclipse/ecf/internal/presence/ui/Messages.java 27 Jul 2007 22:05:01 -0000 1.24 +++ src/org/eclipse/ecf/internal/presence/ui/Messages.java 28 Jul 2007 03:05:08 -0000 @@ -234,6 +234,8 @@ public static String MessageRenderer_DEFAULT_TIME_FORMAT; public static String ChatRoomPreferencePage_CHATROOM_SHOW_USER_PRESENCE_TEXT; + public static String ChatRoomPreferencePage_CHATROOM_HYPERLINK_BUG_URL; + public static String ChatRoomPreferencePage_CHATROOM_HYPERLINK_BUG_URL_ERROR; static { NLS.initializeMessages(BUNDLE_NAME, Messages.class); Index: src/org/eclipse/ecf/internal/presence/ui/messages.properties =================================================================== RCS file: /cvsroot/technology/org.eclipse.ecf/plugins/org.eclipse.ecf.presence.ui/src/org/eclipse/ecf/internal/presence/ui/messages.properties,v retrieving revision 1.26 diff -u -r1.26 messages.properties --- src/org/eclipse/ecf/internal/presence/ui/messages.properties 27 Jul 2007 22:05:01 -0000 1.26 +++ src/org/eclipse/ecf/internal/presence/ui/messages.properties 28 Jul 2007 03:05:09 -0000 @@ -143,4 +143,5 @@ MessageRenderer_DEFAULT_DATETIME_FORMAT=({0}) ChatRoomPreferencePage_CHATROOM_SHOW_USER_PRESENCE_TEXT=&Show user entry messages - \ No newline at end of file +ChatRoomPreferencePage_CHATROOM_HYPERLINK_BUG_URL=&URL for hyperlink bugs: +ChatRoomPreferencePage_CHATROOM_HYPERLINK_BUG_URL_ERROR=Bug URL must contain: "{0}"