package com.tibco.as.spacebar.ui.preferences; import org.eclipse.jface.preference.BooleanFieldEditor; import org.eclipse.jface.preference.ColorFieldEditor; import org.eclipse.jface.preference.ComboFieldEditor; import org.eclipse.jface.preference.FieldEditorPreferencePage; import org.eclipse.jface.preference.IntegerFieldEditor; import org.eclipse.jface.preference.StringFieldEditor; import org.eclipse.swt.widgets.Composite; import org.eclipse.ui.IWorkbench; import org.eclipse.ui.IWorkbenchPreferencePage; import com.tibco.as.spacebar.ui.SpaceBarPlugin; public abstract class AbstractPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage { public AbstractPreferencePage() { super(GRID); setPreferenceStore(SpaceBarPlugin.getDefault().getPreferenceStore()); } @Override public void init(IWorkbench workbench) { } @Override protected void createFieldEditors() { createFieldEditors(getFieldEditorParent()); } protected abstract void createFieldEditors(Composite parent); protected void setToolTip(BooleanFieldEditor field, Composite parent, String toolTip) { field.getDescriptionControl(parent).setToolTipText(toolTip); } protected void setToolTip(StringFieldEditor field, Composite parent, String toolTip) { field.getLabelControl(parent).setToolTipText(toolTip); field.getTextControl(parent).setToolTipText(toolTip); } protected void setToolTip(ComboFieldEditor field, Composite parent, String toolTip) { field.getLabelControl(parent).setToolTipText(toolTip); } protected BooleanFieldEditor addBooleanField(String name, String label, Composite parent, String toolTip) { BooleanFieldEditor field = new BooleanFieldEditor(name, label, parent); setToolTip(field, parent, toolTip); addField(field); return field; } protected IntegerFieldEditor addIntegerField(String name, String label, Composite parent, String toolTip) { IntegerFieldEditor field = new IntegerFieldEditor(name, label, parent); setToolTip(field, parent, toolTip); addField(field); return field; } protected IntegerFieldEditor addIntegerField(String name, String label, Composite parent, String toolTip, int min, int max) { IntegerFieldEditor field = addIntegerField(name, label, parent, toolTip); field.setValidRange(min, max); return field; } protected ComboFieldEditor addComboField(String name, String labelText, String[][] entryNamesAndValues, Composite parent, String toolTip) { ComboFieldEditor field = new ComboFieldEditor(name, labelText, entryNamesAndValues, parent); setToolTip(field, parent, toolTip); addField(field); return field; } protected StringFieldEditor addCharField(String name, String label, Composite parent, String toolTip, boolean emptyStringAllowed) { StringFieldEditor field = new StringFieldEditor(name, label, parent); field.setTextLimit(1); field.setEmptyStringAllowed(emptyStringAllowed); setToolTip(field, parent, toolTip); addField(field); return field; } protected StringFieldEditor addStringField(String name, String labelText, Composite parent, String toolTip) { StringFieldEditor field = new StringFieldEditor(name, labelText, parent); setToolTip(field, parent, toolTip); addField(field); return field; } protected ColorFieldEditor addColorField(String name, String labelText, Composite parent, String toolTip) { ColorFieldEditor field = new ColorFieldEditor(name, labelText, parent); field.getLabelControl(parent).setToolTipText(toolTip); field.getColorSelector().getButton().setToolTipText(toolTip); addField(field); return field; } }