예제 #1
0
 /**
  * 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);
   }
 }
예제 #2
0
 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);
   }
 }
예제 #3
0
 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());
 }
예제 #4
0
  /**
   * 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);
  }
예제 #5
0
 public PicklistFilterSetting() {
   insertMode = new IntegerParameter(null);
   insertMode.setValue(INSERT_MODE_FRONT);
   selection = new ObjectParameter();
   selection.setValue(new LinkedHashSet<String>());
 }
예제 #6
0
 public final void unbind() {
   super.unbind();
   // unbind internal:
   insertMode.unbind();
   selection.unbind();
 }
예제 #7
0
 public final void bind(Subset2 subset) {
   super.bind(subset);
   // bind internal:
   insertMode.bind(subset);
   selection.bind(subset);
 }
예제 #8
0
 public final void reset() {
   removeAllElements();
   insertMode.setValue(INSERT_MODE_MERGE);
 }
예제 #9
0
 public void focusGained(FocusEvent e) {
   getParentPanel().setMessage(param.getDescription(), Color.black);
 }