sclass ConceptsComboBox extends JComboBox { Concepts concepts; Class conceptClass; AWTOnConceptChanges updater; settable bool allowNull; *(Concepts *concepts, Class *conceptClass) { updateItems(); updater = new AWTOnConceptChanges(concepts, this, l0 updateItems); updater.install(); } void updateItems { var l = sortTheList(asList(freshList()); if (allowNull) l = nullPlus(l); setComboBoxItems_notifyListeners(this, l); } swappable Cl freshList() { ret main list(concepts, conceptClass); } swappable L sortTheList(L l) { ret sortConceptsByID(l); } A get() { ret getSelectedItem_typed(this); } void select(long conceptID) { main setSelectedItem(this, getConcept(concepts, conceptClass, conceptID)); } }