!7 sclass ModuleLibrary extends DynSCP { L list; transient DynamicVStack buttons; transient ButtonIconLoader imageLoader; JComponent visualize2() { if (buttons == null) { buttons = verticalNiceButtons(); updateButtons(); } if (imageLoader == null) imageLoader = new ButtonIconLoader(buttons); ret jWiderScrollPane(jfullcenter(buttons)); } void update { if (setField(list := mL("Used Modules")) updateButtons(); } void updateButtons { L l = moduleLibraryForNiceButtons(list, voidfunc(S moduleID) { infoBox("Making module: " + moduleID); }); replaceNiceButtons(buttons, l); if (imageLoader != null) imageLoader.update(); } }