!7 sclass ModuleLibrary extends DynSCP { L list; S mechListName = "Modules that should work"; transient DynamicVStack buttons; transient ButtonIconLoader iconLoader; start { dm_useLocalMechListCopies(); } JComponent visualize2() { if (buttons == null) { buttons = verticalNiceButtons(); updateButtons(); } if (iconLoader == null) iconLoader = new ButtonIconLoader(buttons); update(); ret jWiderScrollPane(jfullcenter(buttons)); } void update { if (setField(list := mL(mechListName))) updateButtons(); } void updateButtons { L l = moduleLibraryForNiceButtons(list, voidfunc(fS moduleID) { thread { //infoBox("Making module: " + moduleID); dm_makeOrShowModule(moduleID); } }); replaceNiceButtons(buttons, l); if (iconLoader != null) iconLoader.update(); } }