Ejemplo n.º 1
0
  public void setValue(String value) {
    if (value != null) {
      value = MiSystem.getProperty(value, value);
    }

    if (Utility.isEqualTo(value, textField.getValue())) {
      return;
    }

    if (restrictingValuesToThoseInList) {
      if ((list.getIndexOfItem(value, restrictionIgnoresCase) == -1)
          && (list.getNumberOfItems() > 0)) {
        if (restrictionWarnsOnly) {
          textField.setValue(value);
          list.getSelectionManager().deSelectAll();
        } else {
          throw new IllegalArgumentException(
              MiDebug.getMicaClassName(this)
                  + ": Rejecting value: \""
                  + value
                  + "\" because it is not present in list"
                  + " (see MiComboBox.setRestrictingValuesToThoseInList()).\n"
                  + "Values present in list are: "
                  + getContents());
        }
      }
    }
    textField.setValue(value);
    if (!list.getContents().contains(value)) list.getSelectionManager().deSelectAll();
    else list.setValue(textField.getValue());
  }
Ejemplo n.º 2
0
 public void setContents(Strings contents) {
   list.setContents(contents);
   String value = textField.getValue();
   if (restrictingValuesToThoseInList) {
     if ((!contents.contains(value)) && (contents.size() > 0)) {
       textField.setValue(contents.elementAt(0));
       list.setValue(textField.getValue());
     }
   } else {
     if (!list.getContents().contains(value)) list.getSelectionManager().deSelectAll();
     else list.setValue(textField.getValue());
   }
 }
Ejemplo n.º 3
0
  public boolean processAction(MiiAction action) {
    // MiDebug.println(this + " proecssAction: " + action);
    if (action.hasActionType(Mi_ITEM_SELECTED_ACTION)) {
      textField.setValue(list.getSelectedItem());
      dispatchAction(Mi_VALUE_CHANGED_ACTION);
      menu.popdown();
    } else if (action.hasActionType(Mi_LOST_KEYBOARD_FOCUS_ACTION | Mi_REQUEST_ACTION_PHASE)) {
      if (restrictingValuesToThoseInList) {
        String value = textField.getValue();
        if ((list.getIndexOfItem(value) == -1) && (list.getNumberOfItems() > 0)) {
          if (restrictionWarnsOnly) {
            dispatchAction(Mi_INVALID_VALUE_ACTION);
          } else {
            action.veto();
            dispatchAction(Mi_INVALID_VALUE_ACTION);
            if (MiDebug.debug
                && MiDebug.isTracing(null, MiDebug.TRACE_KEYBOARD_FOCUS_DISPATCHING)) {
              MiDebug.println(
                  MiDebug.getMicaClassName(this)
                      + ": Rejecting loss of keyboard focus because "
                      + "isRestrictingValuesToThoseInList() == true.");
            }
            return (true);
          }
        }
      }
      dispatchAction(Mi_VALUE_CHANGED_ACTION);
    } else if ((action.hasActionType(Mi_LOST_KEYBOARD_FOCUS_ACTION))
        || (action.hasActionType(Mi_ENTER_KEY_ACTION))) {
      dispatchAction(Mi_VALUE_CHANGED_ACTION);

      if (!list.getContents().contains(textField.getValue()))
        list.getSelectionManager().deSelectAll();
      else list.setValue(textField.getValue());
    } else if (action.hasActionType(Mi_TEXT_CHANGE_ACTION)) {
      dispatchAction(Mi_TEXT_CHANGE_ACTION);
    } else if (action.hasActionType(Mi_VISIBLE_ACTION)) {
      MiSize prefSize = menu.getPreferredSize(new MiSize());
      if (prefSize.getWidth() < getWidth() - getMargins(new MiMargins()).getWidth()) {
        prefSize.setWidth(getWidth() - getMargins(new MiMargins()).getWidth());
        menu.setPreferredSize(prefSize);
        menu.setSize(prefSize);
        menu.validateLayout();
      }
    }
    return (true);
  }
Ejemplo n.º 4
0
 public Strings getContents() {
   return (list.getContents());
 }