!7 sclass ModuleLibrary extends DynSCP { L list; transient DynamicVStack buttons; transient ButtonImageLoader imageLoader; JComponent visualize2() { if (buttons == null) { buttons = makeNiceButtons(); updateButtons(); } if (imageLoader == null) imageLoader = new ButtonImageLoader(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(); } }