1 | sclass FormInFlight {
|
2 | Conversation conversation; |
3 | S hashTag; |
4 | new L<FormStep> steps; |
5 | int stepIndex; // in steps list |
6 | |
7 | S handleInput(S s) { null; }
|
8 | |
9 | FormStep currentStep() {
|
10 | ret get(steps, stepIndex); |
11 | } |
12 | |
13 | void update(Runnable onChange) {
|
14 | if (currentStep() != null) currentStep().update(onChange); |
15 | } |
16 | |
17 | S complete() { ret "Form complete"; }
|
18 | S cancel() { ret "Request cancelled"; }
|
19 | |
20 | FormStep byKey(S key) {
|
21 | ret objectWhere(steps, +key); |
22 | } |
23 | |
24 | S getValue(S key) {
|
25 | FormStep step = byKey(key); |
26 | ret step?.value; |
27 | } |
28 | |
29 | SS allValues() {
|
30 | SS map = litorderedmap(); |
31 | for (FormStep step : steps) |
32 | map.put(step.key, step.value); |
33 | ret map; |
34 | } |
35 | |
36 | bool allowGeneralOverride() { false; }
|
37 | |
38 | Conversation cancelMe() {
|
39 | Conversation conv = conversation; |
40 | print("cancelMe called");
|
41 | // TODO: conversation.cancelForm(); |
42 | ret conv; |
43 | } |
44 | |
45 | void change {
|
46 | if (conversation != null) conversation.change(); |
47 | } |
48 | } |
49 | |
50 | abstract concept BotShowForm > BotStep {
|
51 | abstract FormInFlight makeForm(); |
52 | |
53 | bool run(Conversation conv) {
|
54 | Form form = makeForm(); |
55 | true; |
56 | } |
download show line numbers debug dex old transpilations
Travelled to 4 computer(s): bhatertpkbcr, mqqgnosmbjvj, pyentgdyhuwx, vouqrxazstgt
No comments. add comment
| Snippet ID: | #1029912 |
| Snippet name: | Form wrapper for DynNewBot2 [dev.] |
| Eternal ID of this version: | #1029912/1 |
| Text MD5: | da88932ce16ebfea96822918f454083f |
| Author: | stefan |
| Category: | javax / html |
| Type: | JavaX fragment (include) |
| Public (visible to everyone): | Yes |
| Archived (hidden from active list): | No |
| Created/modified: | 2020-10-03 12:24:50 |
| Source code size: | 1183 bytes / 56 lines |
| Pitched / IR pitched: | No / No |
| Views / Downloads: | 380 / 435 |
| Referenced in: | [show references] |