super.processLowLevelEvent(action, values);
processKeyEvents(values);
    public void processLowLevelEvent(String action, String[] values) {        super.processLowLevelEvent(action, values);        // delay events...        getSelectionModel().setDelayEvents(true);        getSelectionModel().setValueIsAdjusting(true);        // in a form, we only get events for selected items, so for every        // selected item, which is not in values, deselect it...        if (getShowAsFormComponent()) {            ArrayList selectedIndices = new ArrayList();            for (int i = 0; i < values.length; i++) {                if (values[i].length() < 2) continue; // false format                String indexString = values[i].substring(1);                try {                    int index = Integer.parseInt(indexString);                                        // in a form all parameters are select parameters...                    if (values[i].charAt(0) == 'a') {                        selectedIndices.add(new Integer(index));                        addSelectionInterval(index, index);                    }                } catch (Exception ex) {                    // ignore, this is not the correct format...                }            }            // remove all selected indices, which are not explicitely selected            // by a parameter            for (int i = 0; i < getModel().getSize(); i++) {                if (isSelectedIndex(i) &&                        !selectedIndices.contains(new Integer(i))) {                    removeSelectionInterval(i, i);                }            }        } else {            for (int i = 0; i < values.length; i++) {                if (values[i].length() < 2) continue; // false format                // first char is select/deselect operator                String indexString = values[i].substring(1);                try {                    int index = Integer.parseInt(indexString);                    if (values[i].charAt(0) == 'a') {                        addSelectionInterval(index, index);                    } else if (values[i].charAt(0) == 'r') {                        removeSelectionInterval(index, index);                    } // else ignore, this is not the correct format...                } catch (Exception ex) {                }            }        }        getSelectionModel().setValueIsAdjusting(false);        getSelectionModel().setDelayEvents(false);        SForm.addArmedComponent(this);    }