package net.sourceforge.pmd.eclipse.ui.preferences.editors; import net.sourceforge.pmd.NumericPropertyDescriptor; import net.sourceforge.pmd.PropertySource; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Spinner; /** * * @author Brian Remedios */ public abstract class AbstractRealNumberEditor extends AbstractNumericEditorFactory { protected static final int digits = 3; protected static final double scale = Math.pow(10, digits); protected AbstractRealNumberEditor() { } protected Spinner newSpinnerFor(Composite parent, PropertySource source, NumericPropertyDescriptor<?> numDesc) { Spinner spinner = newSpinnerFor(parent, digits); int min = (int)(numDesc.lowerLimit().doubleValue() * scale); int max = (int)(numDesc.upperLimit().doubleValue() * scale); spinner.setMinimum(min); spinner.setMaximum(max); Number value = ((Number)valueFor(source, numDesc)); if (value != null) { int intVal = (int)(value.doubleValue() * scale); spinner.setSelection(intVal); } return spinner; } }