Download Jar. Uses 3874K of libraries. Click here for Pure Java version (8870L/61K).
!7 static SingleComponentPanel scp; static int startIndex; concept Sentence { S text; S action; } p-substance { unswing { db(); indexConceptField(Sentence, "text"); L<S> sentences = toLinesFullTrim(loadSnippet(#1008606)); sentences = notStartingWith("\"", sentences); time { makeUniqueConcepts(Sentence, "text", sentences); } } showFrame(centerAndSouth(scp = new SingleComponentPanel, withTopMargin(20, jcenteredline( jbutton("Prev", r { makePanel(max(startIndex-10, 0)) }), jbutton("Next", r { if (startIndex+10 < countConcepts(Sentence)) makePanel(startIndex+10) }), jbutton("Random", r { makePanel(random(countConcepts(Sentence))/10*10) }))))); makePanel(0); } svoid makePanel(int startIndex) { main.startIndex = startIndex; JPanel panel = gridLayoutPanel_trackWidth_evenlySpacedCols(2); panel.add(jlabel("Sentence")); panel.add(jlabel("Action")); for (final Sentence s : takeFirst(10, dropFirst(startIndex, list(Sentence)))) { final JTextField tfText = jtextfield_caretLeft(s.text); panel.add(tfText); new Matches m; if (jmatch("subject=* (*/*)", s.action, m)) pcall { int from = parseInt($2), len = parseInt($3); tfText.select(from, from+len); } bool hasAction = nempty(s.action); final JTextField tf = jtextfield(or2(s.action, "screw it")); final new Var<JButton> reviseBtn, okBtn; okBtn.set(jbutton("OK", r { cset(s, action := getTextTrim(tf)); disableTextField(tf); replaceComponent(okBtn!, reviseBtn!); })); reviseBtn.set(jbutton("Revise", r { cset(s, action := null); enableTextField(tf); replaceComponent(reviseBtn!, okBtn!); })); if (hasAction) disableTextField(tf); panel.add(centerAndEast(tf, hasAction ? reviseBtn! : okBtn!)); onCaret(tfText, r { int i = trimIndexRight(s.text, tfText.getSelectionStart()); int j = trimIndexLeft(s.text, tfText.getSelectionEnd()); if (j > i && s.action == null) tf.setText("subject=" + quote(substring(s.text, i, j)) + " (" + i + "/" + (j-i) + ")"); }); } scp.setComponent(jscroll(panel)); }
download show line numbers debug dex old transpilations
Travelled to 14 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, gwrvuhgaqvyk, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, onxytkatvevr, pyentgdyhuwx, pzhvpgtvlbxg, tslmcundralx, tvejysmllsmz, vouqrxazstgt
No comments. add comment
Snippet ID: | #1008607 |
Snippet name: | Sentences to subject [dev.] |
Eternal ID of this version: | #1008607/60 |
Text MD5: | f8f9fe90470a7c5fd663569a8f02aab3 |
Transpilation MD5: | 3991358b1001f7da11da3d2ff7837c86 |
Author: | stefan |
Category: | javax / a.i. |
Type: | JavaX source code (desktop) |
Public (visible to everyone): | Yes |
Archived (hidden from active list): | No |
Created/modified: | 2017-05-26 16:59:22 |
Source code size: | 2224 bytes / 65 lines |
Pitched / IR pitched: | No / No |
Views / Downloads: | 813 / 2728 |
Version history: | 59 change(s) |
Referenced in: | [show references] |