Libraryless. Click here for Pure Java version (6461L/45K/143K).
1 | !752 |
2 | |
3 | static Action lastAction; |
4 | |
5 | concepts. |
6 | |
7 | concept History {
|
8 | new RefL events; |
9 | } |
10 | |
11 | abstract concept Input {
|
12 | } |
13 | |
14 | Input > TextInput {
|
15 | S line; |
16 | |
17 | *() {}
|
18 | *(S *line) { change(); }
|
19 | } |
20 | |
21 | abstract concept Action {
|
22 | Bool good; // true, false or null |
23 | } |
24 | |
25 | Action > NoAction {}
|
26 | |
27 | Action > PrintAction {
|
28 | S text; |
29 | |
30 | *() {}
|
31 | *(S *text) { change(); }
|
32 | } |
33 | |
34 | static History historyObj() { ret uniq(History); }
|
35 | |
36 | static L<Concept> history() { ret historyObj().events; }
|
37 | static void historyAdd(Concept event) { historyObj().events.add(event); }
|
38 | |
39 | p-awt {
|
40 | concepts(); |
41 | |
42 | showControls(jcenteredLine( |
43 | jbutton("Good!", "good"),
|
44 | jbutton("Bad!", "bad")));
|
45 | |
46 | makeBot(); |
47 | } |
48 | |
49 | synchronized answer {
|
50 | historyAdd(new TextInput(s)); |
51 | if "hello" {
|
52 | S answer = "Hello!"; |
53 | historyAdd(new PrintAction(answer)); |
54 | ret answer; |
55 | } |
56 | } |
57 | |
58 | static Action lastAction() {
|
59 | Concept last = last(history()); |
60 | if (!last << Action) {
|
61 | historyAdd(last = new NoAction); |
62 | print("I'm assuming you mean my lack of action?");
|
63 | } |
64 | ret last/Action; |
65 | } |
66 | |
67 | svoid good {
|
68 | Action action = lastAction(); |
69 | if (action == null) ret; |
70 | if (isTrue(action.good)) |
71 | print("Thanks, I know! :-)");
|
72 | else {
|
73 | cset(action, good := true); |
74 | print("Thanks, saved!");
|
75 | } |
76 | } |
77 | |
78 | svoid bad {
|
79 | Action action = lastAction(); |
80 | if (action == null) ret; |
81 | if (isFalse(action.good)) |
82 | print("I heard that before...");
|
83 | else {
|
84 | cset(action, good := false); |
85 | print("I don't know what I did wrong yet, but I'll save this feedback!");
|
86 | } |
87 | } |
download show line numbers debug dex old transpilations
Travelled to 14 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, gwrvuhgaqvyk, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, sawdedvomwva, tslmcundralx, tvejysmllsmz, vouqrxazstgt
No comments. add comment
| Snippet ID: | #1005922 |
| Snippet name: | User Feedback [dev.] |
| Eternal ID of this version: | #1005922/1 |
| Text MD5: | f4856e8869a0cfeec21c391df58d1805 |
| Transpilation MD5: | fddc347947c34d29f0fa83ff91d9e62a |
| Author: | stefan |
| Category: | javax / gui |
| Type: | JavaX source code |
| Public (visible to everyone): | Yes |
| Archived (hidden from active list): | No |
| Created/modified: | 2016-12-12 20:01:13 |
| Source code size: | 1585 bytes / 87 lines |
| Pitched / IR pitched: | No / No |
| Views / Downloads: | 844 / 954 |
| Referenced in: | [show references] |