Warning: session_start(): open(/var/lib/php/sessions/sess_j885kbpr0v5mauqnr8knlj1bla, 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
srecord noeq JG22NetworkElement(G22Utils g22utils, JG22Network parent, G22NetworkElement element) is Swingable {
JExtendedTabbedPane tabs;
JLeftArrowScriptIDE ide;
SingleComponentPanel scpContent = scp();
cachedVisualize {
ide = g22utils.leftArrowIDE();
ide.withResultPanel(false);
ide.lvScript(element.varCode());
ide.runScript = -> {
var result = ide.freshCompileResult();
if (result.runnable()) {
var parsedScript = result!;
var visualizeFunction = parsedScript.getFunction("visualize");
Component visualized = null;
if (visualizeFunction != null) {
// TODO: timeout?
var value = runResultWithTimestamps(-> wrap(visualizeFunction.call(new FlexibleVarContext));
ide.showScriptResult(value);
if (value.isOK())
visualized = value!;
else
visualized = jErrorView(value.error());
}
scpContent.set(visualized);
selectTabComponent(tabs, scpContent);
}
};
tabs = jExtendedTabs(
"Code", northAndCenter(
withLabel("Node identifier:", jVarTextField(element.varIdentifier())),
ide.visualize()),
"Content", scpContent);
var box = tabs.visualize();
tabs.setComponentBesideTabs(
withRightMargin(jfullcenter(
jPopDownButton_noText(
"Delete node" := rThread deleteElement
))));
jMinSize(80, 50, box);
setOpaqueBackground(Color.white, box);
setBorder(box, BorderFactory.createLineBorder(Color.green, 10);
onMouseDown(tabs.tabs, event -> {
if (!mouseEventIsInBorder(event))
new ComponentDragger(event.getComponent(), event);
});
new ComponentResizeDragger(box, box);
var bounds = or(element.bounds, rect(50, 50, 400, 300));
setBounds(box, bounds);
onBoundsChange(box, r {
element.bounds(toRect(getBounds(box)));
element.network.change();
parent.mainPanel.revalidateMe();
});
ret box;
}
void deleteElement {
parent.deleteElement(this);
}
}