/* * Copyright (c) 2012 Data Harmonisation Panel * * All rights reserved. This program and the accompanying materials are made * available under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation, either version 3 of the License, * or (at your option) any later version. * * You should have received a copy of the GNU Lesser General Public License * along with this distribution. If not, see <http://www.gnu.org/licenses/>. * * Contributors: * HUMBOLDT EU Integrated Project #030962 * Data Harmonisation Panel <http://www.dhpanel.eu> */ package eu.esdihumboldt.hale.ui.common.editors; import org.eclipse.swt.SWT; import org.eclipse.swt.events.ModifyEvent; import org.eclipse.swt.events.ModifyListener; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Spinner; import eu.esdihumboldt.hale.common.align.model.ParameterValue; /** * Attribute editor for integers. * * @author Simon Templer */ public class IntegerEditor extends AbstractAttributeEditor<Integer> { private Integer value; private final Spinner spinner; /** * Create a boolean attribute editor * * @param parent the parent composite * @param max the maximum value * @param min the minimum value * @param increment the increment step size * @param pageIncrement the page increment step size */ public IntegerEditor(Composite parent, int max, int min, int increment, int pageIncrement) { super(); spinner = new Spinner(parent, SWT.BORDER); spinner.setIncrement(increment); spinner.setPageIncrement(pageIncrement); spinner.setDigits(0); spinner.setMinimum(min); spinner.setMaximum(max); spinner.setSelection(min); value = min; spinner.addModifyListener(new ModifyListener() { @Override public void modifyText(ModifyEvent e) { int newValue = spinner.getSelection(); fireValueChanged(VALUE, value, newValue); value = newValue; } }); } @Override public String getAsText() { return getValue().toString(); } @Override public Control getControl() { return spinner; } @Override public Integer getValue() { return spinner.getSelection(); } @Override public void setAsText(String text) { setValue(Integer.parseInt(text)); } @Override public void setValue(Integer value) { spinner.setSelection(value); } @Override public boolean isValid() { return true; } @Override public String getValueType() { return ParameterValue.DEFAULT_TYPE; } }