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()); }
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()); } }
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); }
public Strings getContents() { return (list.getContents()); }