package com.sonatype.buildserver.eclipse.ui.prefs;
import org.eclipse.jface.preference.*;
import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.ui.IWorkbenchPreferencePage;
import org.eclipse.ui.IWorkbench;
import com.sonatype.buildserver.eclipse.ui.HudsonUIActivator;
extends FieldEditorPreferencePage
implements IWorkbenchPreferencePage {
private BooleanFieldEditor ed;
private StringFieldEditor subEd;
super(GRID);
setPreferenceStore(HudsonUIActivator.getDefault().getPreferenceStore());
setDescription("Hudson UI Preferences");
}
ed = new BooleanFieldEditor(
PreferenceConstants.PREF_TRIGGERED_BY_USER_ONLY,
"&Only notify incoming builds triggered by current user",
getFieldEditorParent());
addField( ed );
subEd = new StringFieldEditor(
PreferenceConstants.PREF_SCM_USERNAMES,
"Comma-separated list of scm user names to match:",
getFieldEditorParent()) {
@Override
int numColumns) {
super.doFillIntoGrid(parent, numColumns);
Label lbl = this.getLabelControl();
GridData gd = new GridData();
gd.horizontalIndent = 24;
lbl.setLayoutData(gd);
}
};
subEd.setEnabled( HudsonUIActivator.getDefault().getPreferenceStore().getBoolean(PreferenceConstants.PREF_TRIGGERED_BY_USER_ONLY), getFieldEditorParent());
addField (subEd );
addField(
new BooleanFieldEditor(
PreferenceConstants.PREF_SHOW_MESSAGE,
"&Show a messagebox for incoming builds when IDE not active",
getFieldEditorParent()) {
@Override
int numColumns) {
super.doFillIntoGrid(parent, numColumns);
Button lbl = this.getChangeControl(parent);
GridData gd = (GridData) lbl.getLayoutData();
gd.verticalIndent = 24;
}
});
}
@Override
super.propertyChange(event);
if (ed != null && !ed.getBooleanValue()) {
subEd.setEnabled( false, getFieldEditorParent());
}
if (ed != null && ed.getBooleanValue()) {
subEd.setEnabled( true, getFieldEditorParent());
}
}
public void init(IWorkbench workbench) {
}
}