svoid stefansOS_addDynamicModuleDialog() { selectDynModuleID(voidfunc(fS snippetID) { temp tempBusyAnimation("Loading Module"); final Class c = hotwireModule(snippetID); L names = (L) callOpt(c, 'myInnerClasses); if (names == null) names = map getClassDeclarationName(innerClassesOfMain(getServerTranspiledWithoutLibs(snippetID))); // only show the usable ones try { names = shortClassNames(nonAbstractClassesInRealmImplementing(c, _getClass(c, "main$DynModule"), names)); } catch print e { names = null; } if (empty(names)) showModule(DynamicModule(snippetID, null, c)); else if (l(names) == 1) showModule(DynamicModule(snippetID, "main$" + first(names), c)); else selectFromList("Class to use", concatLists(ll("None"), names), voidfunc(S className) { showModule(DynamicModule(snippetID, eq(className, "None") ? null : "main$" + className, c)); }); }); }