Warning: session_start(): open(/var/lib/php/sessions/sess_hr8aamcong911320jjpebi6cvm, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
sclass InterestingString extends Module {
S theString;
transient SimpleLiveValue lv = new(S);
void update { lv.set(theString); }
JComponent visualize() {
ret centerLabel(jLiveValueLabel(lv));
}
}
sclass UpdateCycles extends Module {
long value;
transient SimpleLiveValue lv = new(S);
void update { value = updateCycles; lv.set(str(value)); }
JComponent visualize() {
ret onLeftClick(centerLabel(makeBold(setFontSize(40, jLiveValueLabel(lv)))), rst);
}
void enhanceFrame(JInternalFrame f) {
internalFrameTitlePopupMenuItem(f, "Update", rst);
}
}
sclass InputToInterestingString extends Module {
transient java.util.Timer timer;
void start {
timer = doEvery(1000, r {
Hello h = findModule(Hello);
if (h == null) ret;
S s = h.tf != null ? getTextTrim(h.tf) : trim(h.text);
startModule(csetAndReturn(uniq(InterestingString), theString := s));
});
}
void cleanMeUp() { cancelTimer(timer); }
}
sclass ModuleCount extends Module {
transient JLabel label;
void update {
if (label != null) setText(label, lstr(onModules()));
}
JComponent visualize() {
ret label = setFontSize(30, jcenteredlabel(lstr(onModules())));
}
void unvisualize2() { label = null; }
}
sclass ModuleList extends DynCalculatedList {
Module getModule(S item) {
ret getConcept(Module, parseFirstLong(item));
}
JList visualize() {
JList list = super.visualize();
onDoubleClickOrEnter(list, voidfunc(fS s) { showModule(getModule(s)) });
ret listPopupMenuItemsThreaded(list,
"Delete", voidfunc(fS s) { removeConcept(getModule(s)) },
"Show", voidfunc(fS s) { showModule(getModule(s)) },
"Hide", voidfunc(fS s) { hideModule(getModule(s)) });
}
L calc() {
ret map(func(Module m) -> S { renderConcept(m) /* contains id as first int */ }, modulesToList());
}
L modulesToList() { ret onModules(); }
}
sclass InvisibleModules extends ModuleList {
L modulesToList() { ret filterByField(onModules(), visible := false); }
}
sclass ModuleClasses extends Module {
transient L> classes;
void start() {
classes = myNonAbstractClassesImplementing(Module);
}
JComponent visualize() {
JList list = jlist(map shortClassName(classes));
VF1 instantiate = voidfunc(fS s) {
showModule((Module) nu(classForName("main$" + s)));
};
VF1 defaultAction = voidfunc(fS s) {
Class extends Module> c = classForName("main$" + s);
final L extends Module> l = staticModulesOfType(c);
showModule(empty(l) ? nu(c) : first(l));
};
listPopupMenuItemsThreaded(list, "Instantiate", instantiate);
listPopupMenu(list, voidfunc(JPopupMenu menu, S item) {
Class extends Module> c = classForName("main$" + item);
final L extends Module> l = staticModulesOfType(c);
if (nempty(l))
addMenuItem(menu, l(l) == 1 ? "Show instance" : "Show all " + l(l) + " instances", r-thread { showModules(l) });
});
ret onDoubleClickThreaded(list, defaultAction);
}
}
sclass DynamicModuleMaker extends Module {
JComponent visualize() {
ret jfullcenter(jbutton("Add dynamic module...", r {
selectSnippetID(voidfunc(fS snippetID) {
final Class c = hotwireDependent(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));
});
});
}));
}
}
sclass Hello extends Module {
S text = "class main {}";
transient JTextField tf;
JComponent visualize() {
ret tf = setFontSize(20, jcenteredtextfield(text));
}
void unvisualize2() {
if (tf != null) cset(this, text := getText(tf));
tf = null;
}
void enhanceFrame(JInternalFrame f) {
packInternalFrameVertically(700, f);
centerInternalFrame(f);
f.setLocation(f.getX(), 40);
}
}