/** * Check if current value set in spinner is correct and set it to bound parameter object (mainly * used in change listeners). */ private void setFromSpinner() { NullableSpinnerModel numberModel = (NullableSpinnerModel) spinner.getModel(); Integer value = numberModel.getNumber(); if (value == null && !param.isOptional()) { setState(ParameterInputComponent.INPUT_IS_REQUIRED_AND_EMPTY); } else if (param.checkValidityOf(value) == true) { param.setValue(value); setState(ParameterInputComponent.INPUT_IS_VALID); } else { setState(ParameterInputComponent.INPUT_IS_OUT_OF_BOUNDS); } }
private void setState(int newState) { String message = null; this.state = newState; switch (state) { case ParameterInputComponent.INPUT_IS_VALID: field.setBackground(ParameterInputComponent.BG_VALID); message = param.getDescription(); getParentPanel().setMessage(message, Color.black); break; case ParameterInputComponent.INPUT_IS_OUT_OF_BOUNDS: field.setBackground(ParameterInputComponent.BG_INVALID); message = "Value for " + param.getID() + " must be between " + param.getMinValue() + " and " + param.getMaxValue() + "."; getParentPanel().setMessage(message, Color.red); break; case ParameterInputComponent.INPUT_IS_INCOMPREHENSIBLE: field.setBackground(ParameterInputComponent.BG_INVALID); message = "Value for " + param.getID() + " must be a valid integer."; getParentPanel().setMessage(message, Color.red); break; case ParameterInputComponent.INPUT_IS_REQUIRED_AND_EMPTY: field.setBackground(ParameterInputComponent.BG_INVALID); message = "Parameter " + param.getID() + " is required and " + "can not be empty."; getParentPanel().setMessage(message, Color.red); } }
private void assertCorrectValues() { assertEquals(Boolean.TRUE, b1.getValue()); assertEquals(B2_DEFAULT, b2.value()); assertEquals(B3_DEFAULT, b3.value()); assertEquals(1, i1.value()); assertEquals(I2_DEFAULT, i2.value()); assertEquals(I3_DEFAULT, i3.value()); assertEquals(Arrays.asList(new String[] {"hello", "world"}), Arrays.asList(sa1.value())); assertEquals(Arrays.asList(SA2_DEFAULT), Arrays.asList(sa2.value())); assertEquals(s1.value(), "goodnight"); assertEquals(s2.value(), S2_DEFAULT); assertEquals(cmdLine.getArguments(), Arrays.asList(new String[] {"arg1", "arg2"})); assertEquals(Boolean.TRUE.toString(), b1.toString()); assertEquals(S2_DEFAULT, s2.toString()); final String expected = getClass().getName() + "{?=false" + ", b1=true, b2=true, b3=false" + ", i1=1, i2=2, i3=-1" + ", s1=goodnight, s2=s2-default" + ", sa1=[hello, world], sa2=[1, 2, 3]}" + "[arg1, arg2]"; assertEquals(expected, cmdLine.toString()); }
/** * Creates a new IntegerInputComponent. * * @param param The IntegerParameter to be controlled. * @param parameterPanel The ParameterPanel to which this component is to be placed. */ public IntegerInputComponent(IntegerParameter param, ParameterPanel parameterPanel) { super(parameterPanel); this.param = param; this.state = ParameterInputComponent.INPUT_IS_INITIALIZED; SpinnerModel model = new NullableSpinnerModel(); model.setValue(param.getValue()); this.spinner = new JSpinner(model); spinner.addFocusListener(this); spinner.setPreferredSize(ParameterInputComponent.PREFERRED_SIZE); // The second parameter of NumberEditor constructor is number format // The string "0" means that it is a digit without any thousand separators // or decimals spinner.setEditor(new NullableSpinnerEditor(spinner, "0")); spinner.addChangeListener(this); field = ((JSpinner.DefaultEditor) spinner.getEditor()).getTextField(); field.addCaretListener(this); field.setBackground(BG_VALID); this.add(spinner, BorderLayout.CENTER); }
public PicklistFilterSetting() { insertMode = new IntegerParameter(null); insertMode.setValue(INSERT_MODE_FRONT); selection = new ObjectParameter(); selection.setValue(new LinkedHashSet<String>()); }
public final void unbind() { super.unbind(); // unbind internal: insertMode.unbind(); selection.unbind(); }
public final void bind(Subset2 subset) { super.bind(subset); // bind internal: insertMode.bind(subset); selection.bind(subset); }
public final void reset() { removeAllElements(); insertMode.setValue(INSERT_MODE_MERGE); }
public void focusGained(FocusEvent e) { getParentPanel().setMessage(param.getDescription(), Color.black); }