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);
}
}