package tk.eclipse.plugin.htmleditor.gefutils; import org.eclipse.jface.preference.FieldEditor; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Spinner; /** * The FieldEditor implementation for int values. * This FieldEditor edits int value using {@link org.eclipse.swt.widgets.Spinner}. * * @author Naoki Takezoe */ public class SpinnerFieldEditor extends FieldEditor { private int min; private int max; private Spinner spinner; public SpinnerFieldEditor() { super(); } public SpinnerFieldEditor(String name, String labelText, int min, int max, Composite parent) { this.min = min; this.max = max; init(name, labelText); createControl(parent); } @Override protected void adjustForNumColumns(int numColumns) { } @Override protected void doFillIntoGrid(Composite parent, int numColumns) { getLabelControl(parent); getSpinnerControl(parent); } @Override protected void doLoad() { spinner.setSelection( getPreferenceStore().getInt(getPreferenceName())); } @Override protected void doLoadDefault() { spinner.setSelection( getPreferenceStore().getDefaultInt(getPreferenceName())); } @Override protected void doStore() { getPreferenceStore().setValue(getPreferenceName(), spinner.getSelection()); } @Override public int getNumberOfControls() { return 2; } protected Spinner getSpinnerControl(Composite parent){ if(spinner==null){ spinner = new Spinner(parent, SWT.BORDER); spinner.setMinimum(min); spinner.setMaximum(max); } return spinner; } }