///******************************************************************************* // * Copyright (c) 2003, 2006 IBM Corporation and others. // * All rights reserved. This program and the accompanying materials // * are made available under the terms of the Eclipse Public License v1.0 // * which accompanies this distribution, and is available at // * http://www.eclipse.org/legal/epl-v10.html // * // * Contributors: // * IBM Corporation - initial API and implementation // *******************************************************************************/ //package org.eclipse.jface.preference; // //import org.eclipse.swt.SWT; //import org.eclipse.swt.events.DisposeEvent; //import org.eclipse.swt.events.DisposeListener; //import org.eclipse.swt.events.SelectionAdapter; //import org.eclipse.swt.events.SelectionEvent; //import org.eclipse.swt.layout.GridData; //import org.eclipse.swt.widgets.Composite; //import org.eclipse.swt.widgets.Control; //import org.eclipse.swt.widgets.Scale; // ///** // * A field editor for an integer type preference. This class may be used as is, // * or subclassed as required. // * // * @since 1.0 // */ //public class ScaleFieldEditor extends FieldEditor { // // /** // * Value that will feed Scale.setIncrement(int). // */ // private int incrementValue; // // /** // * Value that will feed Scale.setMaximum(int). // */ // private int maxValue; // // /** // * Value that will feed Scale.setMinimum(int). // */ // private int minValue; // // /** // * Old integer value. // */ // private int oldValue; // // /** // * Value that will feed Scale.setPageIncrement(int). // */ // private int pageIncrementValue; // // /** // * The scale, or <code>null</code> if none. // */ // protected Scale scale; // // /** // * Creates a scale field editor. // * // * @param name // * the name of the preference this field editor works on // * @param labelText // * the label text of the field editor // * @param parent // * the parent of the field editor's control // */ // public ScaleFieldEditor(String name, String labelText, Composite parent) { // super(name, labelText, parent); // setDefaultValues(); // } // // /** // * Creates a scale field editor with particular scale values. // * // * @param name // * the name of the preference this field editor works on // * @param labelText // * the label text of the field editor // * @param parent // * the parent of the field editor's control // * @param min // * the value used for Scale.setMinimum(int). // * @param max // * the value used for Scale.setMaximum(int). // * @param increment // * the value used for Scale.setIncrement(int). // * @param pageIncrement // * the value used for Scale.setPageIncrement(int). // */ // public ScaleFieldEditor(String name, String labelText, Composite parent, // int min, int max, int increment, int pageIncrement) { // super(name, labelText, parent); // setValues(min, max, increment, pageIncrement); // } // // /* // * (non-Javadoc) // * // * @see org.eclipse.jface.preference.FieldEditor#adjustForNumColumns(int) // */ // protected void adjustForNumColumns(int numColumns) { // ((GridData) scale.getLayoutData()).horizontalSpan = numColumns - 1; // } // // /* // * (non-Javadoc) // * // * @see org.eclipse.jface.preference.FieldEditor#doFillIntoGrid(org.eclipse.swt.widgets.Composite, // * int) // */ // protected void doFillIntoGrid(Composite parent, int numColumns) { // Control control = getLabelControl(parent); // GridData gd = new GridData(); // control.setLayoutData(gd); // // scale = getScaleControl(parent); // gd = new GridData(GridData.FILL_HORIZONTAL); // gd.verticalAlignment = GridData.FILL; // gd.horizontalSpan = numColumns - 1; // gd.grabExcessHorizontalSpace = true; // scale.setLayoutData(gd); // updateScale(); // } // // /* // * (non-Javadoc) // * // * @see org.eclipse.jface.preference.FieldEditor#doLoad() // */ // protected void doLoad() { // if (scale != null) { // int value = getPreferenceStore().getInt(getPreferenceName()); // scale.setSelection(value); // oldValue = value; // } // } // // /* // * (non-Javadoc) // * // * @see org.eclipse.jface.preference.FieldEditor#doLoadDefault() // */ // protected void doLoadDefault() { // if (scale != null) { // int value = getPreferenceStore().getDefaultInt(getPreferenceName()); // scale.setSelection(value); // } // valueChanged(); // } // // /* // * (non-Javadoc) // * // * @see org.eclipse.jface.preference.FieldEditor#doStore() // */ // protected void doStore() { // getPreferenceStore() // .setValue(getPreferenceName(), scale.getSelection()); // } // // /** // * Returns the value that will be used for Scale.setIncrement(int). // * // * @return the value. // * @see org.eclipse.swt.widgets.Scale#setIncrement(int) // */ // public int getIncrement() { // return incrementValue; // } // // /** // * Returns the value that will be used for Scale.setMaximum(int). // * // * @return the value. // * @see org.eclipse.swt.widgets.Scale#setMaximum(int) // */ // public int getMaximum() { // return maxValue; // } // // /** // * Returns the value that will be used for Scale.setMinimum(int). // * // * @return the value. // * @see org.eclipse.swt.widgets.Scale#setMinimum(int) // */ // public int getMinimum() { // return minValue; // } // // /* // * (non-Javadoc) // * // * @see org.eclipse.jface.preference.FieldEditor#getNumberOfControls() // */ // public int getNumberOfControls() { // return 2; // } // // /** // * Returns the value that will be used for Scale.setPageIncrement(int). // * // * @return the value. // * @see org.eclipse.swt.widgets.Scale#setPageIncrement(int) // */ // public int getPageIncrement() { // return pageIncrementValue; // } // // /** // * Returns this field editor's scale control. // * // * @return the scale control, or <code>null</code> if no scale field is // * created yet // */ // public Scale getScaleControl() { // return scale; // } // // /** // * Returns this field editor's scale control. The control is created if it // * does not yet exist. // * // * @param parent // * the parent // * @return the scale control // */ // private Scale getScaleControl(Composite parent) { // if (scale == null) { // scale = new Scale(parent, SWT.HORIZONTAL); // scale.setFont(parent.getFont()); // scale.addSelectionListener(new SelectionAdapter() { // public void widgetSelected(SelectionEvent event) { // valueChanged(); // } // }); // scale.addDisposeListener(new DisposeListener() { // public void widgetDisposed(DisposeEvent event) { // scale = null; // } // }); // } else { // checkParent(scale, parent); // } // return scale; // } // // /** // * Set default values for the various scale fields. These defaults are:<br> // * <ul> // * <li>Minimum = 0 // * <li>Maximim = 10 // * <li>Increment = 1 // * <li>Page Increment = 1 // * </ul> // */ // private void setDefaultValues() { // setValues(0, 10, 1, 1); // } // // /* // * (non-Javadoc) // * // * @see org.eclipse.jface.preference.FieldEditor#setFocus() // */ // public void setFocus() { // if (scale != null && !scale.isDisposed()) { // scale.setFocus(); // } // } // // /** // * Set the value to be used for Scale.setIncrement(int) and update the // * scale. // * // * @param increment // * a value greater than 0. // * @see org.eclipse.swt.widgets.Scale#setIncrement(int) // */ // public void setIncrement(int increment) { // this.incrementValue = increment; // updateScale(); // } // // /** // * Set the value to be used for Scale.setMaximum(int) and update the // * scale. // * // * @param max // * a value greater than 0. // * @see org.eclipse.swt.widgets.Scale#setMaximum(int) // */ // public void setMaximum(int max) { // this.maxValue = max; // updateScale(); // } // // /** // * Set the value to be used for Scale.setMinumum(int) and update the // * scale. // * // * @param min // * a value greater than 0. // * @see org.eclipse.swt.widgets.Scale#setMinimum(int) // */ // public void setMinimum(int min) { // this.minValue = min; // updateScale(); // } // // /** // * Set the value to be used for Scale.setPageIncrement(int) and update the // * scale. // * // * @param pageIncrement // * a value greater than 0. // * @see org.eclipse.swt.widgets.Scale#setPageIncrement(int) // */ // public void setPageIncrement(int pageIncrement) { // this.pageIncrementValue = pageIncrement; // updateScale(); // } // // /** // * Set all Scale values. // * // * @param min // * the value used for Scale.setMinimum(int). // * @param max // * the value used for Scale.setMaximum(int). // * @param increment // * the value used for Scale.setIncrement(int). // * @param pageIncrement // * the value used for Scale.setPageIncrement(int). // */ // private void setValues(int min, int max, int increment, int pageIncrement) { // this.incrementValue = increment; // this.maxValue = max; // this.minValue = min; // this.pageIncrementValue = pageIncrement; // updateScale(); // } // // /** // * Update the scale particulars with set values. // */ // private void updateScale() { // if (scale != null && !scale.isDisposed()) { // scale.setMinimum(getMinimum()); // scale.setMaximum(getMaximum()); // scale.setIncrement(getIncrement()); // scale.setPageIncrement(getPageIncrement()); // } // } // // /** // * Informs this field editor's listener, if it has one, about a change to // * the value (<code>VALUE</code> property) provided that the old and new // * values are different. // * <p> // * This hook is <em>not</em> called when the scale is initialized (or // * reset to the default value) from the preference store. // * </p> // */ // protected void valueChanged() { // setPresentsDefaultValue(false); // // int newValue = scale.getSelection(); // if (newValue != oldValue) { // fireStateChanged(IS_VALID, false, true); // fireValueChanged(VALUE, new Integer(oldValue), // new Integer(newValue)); // oldValue = newValue; // } // } //}