Not logged in.  Login/Logout/Register | List snippets | | Create snippet | Upload image | Upload data

46
LINES

< > BotCompany Repo | #1020937 // DynDialogWithUser

JavaX fragment (include)

1  
abstract sclass DynDialogWithUser > DynModule {
2  
  L<DialogItem> dialog = synchroList();
3  
  S input;
4  
  
5  
  transient JTextArea taDialog;
6  
  transient JTextField tfInput;
7  
  transient L onUserInput;
8  
9  
  sclass DialogItem {
10  
    S author, line;
11  
    long timestamp = now();
12  
    
13  
    toString { ret "[" + localTimeWithSeconds(timestamp) + "] " + author + ": " + line; }
14  
  }
15  
  
16  
  visualize {
17  
    tfInput = dm_fieldTextField('input);
18  
    onEnter(tfInput, rThread sendInput);
19  
    ret centerAndSouthWithMargins(
20  
      jSection("Dialog", taDialog = setDisabledTextColor(Color.black, makeUneditable(jLiveValueWordWrapTypeWriterTextArea_autoScroll(
21  
      dm_calculatedLiveValue(S, func -> S { dialogToString() }))))),
22  
      withLabel("Your input:", tfInput));
23  
  }
24  
  
25  
  void sendInput {
26  
    S input = this.input;
27  
    addLine('User, input);
28  
    selectAll(tfInput);
29  
    pcallFAll(onUserInput, input);
30  
  }
31  
  
32  
  void onUserInput(VF1<S> r) {
33  
    onUserInput = createOrAddToSyncList(onUserInput, r);
34  
  }
35  
36  
  // API
37  
  
38  
  S dialogToString() {
39  
    ret lines_rtrim(allToString(cloneList(dialog)));
40  
  }
41  
  
42  
  void addLine(S author, S line) {
43  
    dialog.add(nu(DialogItem.class, +author, +line));
44  
    change();
45  
  }
46  
}

download  show line numbers  debug dex  old transpilations   

Travelled to 8 computer(s): bhatertpkbcr, cfunsshuasjs, gwrvuhgaqvyk, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, tvejysmllsmz, vouqrxazstgt

No comments. add comment

Snippet ID: #1020937
Snippet name: DynDialogWithUser
Eternal ID of this version: #1020937/16
Text MD5: 07c6e70424bc7766556caf899bf81060
Author: stefan
Category: javax
Type: JavaX fragment (include)
Public (visible to everyone): Yes
Archived (hidden from active list): No
Created/modified: 2019-01-12 15:33:09
Source code size: 1228 bytes / 46 lines
Pitched / IR pitched: No / No
Views / Downloads: 289 / 833
Version history: 15 change(s)
Referenced in: [show references]