!7 sclass ModuleList extends DynCalculatedList { O getModule(S item) { ret callCreator('getModuleByID, item); } JComponent visualize() { JList list = (JList) super.visualize(); onDoubleClickOrEnter(list, voidfunc(fS s) { dm_showModule(getModule(s)) }); ret listPopupMenuItemsThreaded(list, "Delete", voidfunc(fS s) { dm_deleteModule(getModule(s)) }, "Show", voidfunc(fS s) { dm_showModule(getModule(s)) }, "Hide", voidfunc(fS s) { dm_hideModule(getModule(s)) }); } L calc() { ret map(func(final O m) -> S { "[" + m.id + "] " + or2(pcallF(func -> S { dm_moduleName(m) }), "?") }, modulesToList()); } L modulesToList() { ret dm_listStems(); } }