Warning: session_start(): open(/var/lib/php/sessions/sess_e1qd91a82svddvnl02af54dco7, 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
static editJavaXSnippet_Editor editJavaXSnippet(fS snippetID) {
ret swingConstruct(editJavaXSnippet_Editor, snippetID);
}
sclass editJavaXSnippet_Editor {
S snippetID;
JTextArea textArea;
JButton btnSave, btnTranspile, btnMTranspile, btnReload, btnEleuReload;
L buttons;
int snippetType;
JLabel lblStatus;
*(S _snippetID) {
snippetID = formatSnippetID(_snippetID);
showFrame(snippetID,
centerAndSouth(textArea = typeWriterTextArea(),
lblStatus = jlabel()));
frameIcon(textArea, #1004655);
addFrameMenu(textArea, "File",
"Reload from server", r { reload() },
"Eleu-Reload on ai1.lol", r { eleuReload() });
addDirectMenuItem(textArea, "Run!", r { nohupJavax(snippetID) });
thread {
setFrameTitle(textArea, "E: " + getSnippetTitle(snippetID) + " [" + snippetID + "]");
}
// Customize text area
textArea.setTabSize(2);
lblStatus.setText("Loading...");
btnSave = new JButton("Save on server");
btnSave.addActionListener(actionListener { saveSnippet(null); });
btnTranspile = new JButton("Save & transpile");
btnTranspile.addActionListener(actionListener { transpile(false); });
btnMTranspile = new JButton("S & Multi-transpile");
btnMTranspile.addActionListener(actionListener { transpile(true); });
buttons = ll(btnReload, btnSave, btnTranspile);
jdisable(buttons);
// XXX cursor bug? textArea.setEditable(false); // still loading
snippetType = getSnippetType(snippetID);
JScrollPane bottom = new JScrollPane(
snippetType != 42
? jflowRight(btnSave, btnTranspile, btnMTranspile, btnReload, btnEleuReload)
: jflowRight(btnSave, btnReload));
addToWindow(textArea, bottom);
onUpdate(textArea, r {
jenable(buttons);
});
reload();
}
void saveSnippet(final Runnable next) {
final S text = textArea.getText();
jdisable(buttons);
lblStatus.setText("Saving...");
thread {
fS page = editSnippet(snippetID, text);
awt {
lblStatus.setText("Saved snippet: " + page);
jenable(buttons);
callF(next);
}
}
}
void transpile(final bool multi) {
saveSnippet(r {
lblStatus.setText("Transpiling...");
jdisable(btnEleuReload);
thread "Transpiling" {
try {
final Pair p = transpileOnServer(snippetID, multi ? "medium" : "quick");
awt {
if (p.a)
lblStatus.setText("Transpiled OK!");
else {
lblStatus.setText("Transpilation error. " + p.b);
showText("Transpilation Error", p.b);
}
}
} catch e {
printStackTrace(e);
lblStatus.setText("Transpilation problem. " + e);
}
jenable(btnEleuReload);
}
});
}
void reload() {
thread "Load Snippet" {
final S s = loadSnippet(snippetID);
awt {
lblStatus.setText("Loaded " + s.length() + " chars.");
textArea.setText(s);
//textArea.scrollRectToVisible(new Rectangle(0, 0, 1, 1));
textArea.setCaretPosition(0);
jenable(buttons);
textArea.setEditable(true);
textArea.requestFocus();
}
}
}
void eleuReload() {
time {
butterReload(snippetID);
}
infoBox("Reloaded in " + lastTiming_format100ms());
}
}