static editJavaXSnippet_Editor editJavaXSnippet(fS snippetID) { ret (editJavaXSnippet_Editor) swingAndWait(func { new editJavaXSnippet_Editor(snippetID) }); } sclass editJavaXSnippet_Editor { S snippetID; JTextArea textArea; JButton btnSave, btnTranspile, btnMTranspile, btnReload, btnEleuReload; L<JButton> buttons; int snippetType; JLabel lblStatus; *(S _snippetID) { snippetID = formatSnippetID(_snippetID); showFrame(snippetID, centerAndSouth(textArea = typeWriterTextArea(), lblStatus = jlabel())); frameIcon(textArea, #1004655); 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); }); btnReload = new JButton("Reload"); btnReload.addActionListener(actionListener { reload(); }); btnEleuReload = new JButton("Eleu-Reload"); btnEleuReload.addActionListener(actionListener { eleuReload(); }); 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<Bool, S> 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()); } }
Began life as a copy of #1003437
download show line numbers debug dex old transpilations
Travelled to 17 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, ddnzoavkxhuk, gwrvuhgaqvyk, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, onxytkatvevr, pyentgdyhuwx, pzhvpgtvlbxg, sawdedvomwva, tslmcundralx, tvejysmllsmz, vouqrxazstgt, wtqryiryparv
No comments. add comment
Snippet ID: | #1004360 |
Snippet name: | editJavaXSnippet [Swing] using JTextArea |
Eternal ID of this version: | #1004360/11 |
Text MD5: | f7a2042f5a79abe4ceb5188348b57b42 |
Author: | stefan |
Category: | javax / gui |
Type: | JavaX fragment (include) |
Public (visible to everyone): | Yes |
Archived (hidden from active list): | No |
Created/modified: | 2018-05-02 09:30:38 |
Source code size: | 3648 bytes / 126 lines |
Pitched / IR pitched: | No / No |
Views / Downloads: | 629 / 631 |
Version history: | 10 change(s) |
Referenced in: | [show references] |