!7 cmodule2 ExtraFrame { S mainModuleID; transient JComponent visualization; bool deleteOnMainReload; // delete when main module is reloaded bool deleteOnReboot; // delete when OS is rebooted bool usePreferredSizeInitially; visual visualization; start { componentFieldsToKeep = litset("visualization"); if (deleteOnReboot && dm_isBooting()) dm_deleteModule(); // delete this module when main module is deleted dm_vmBus_onMessage_enter moduleDeleted(voidfunc(O mod) { if (dm_sameModule(mod, mainModuleID)) dm_deleteModule(); }); dm_vmBus_onMessage_enter moduleReloaded(voidfunc(O mod) { if (deleteOnMainReload && dm_sameModule(mod, mainModuleID)) dm_deleteModule(); }); } JComponent _getReloadData() { ret visualization; } void _setReloadData(JComponent data) { this.visualization = data; } bool _usePreferredSizeInitially() { ret usePreferredSizeInitially; } }