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

40
LINES

< > BotCompany Repo | #1015842 // SavedSessions (Static module)

JavaX fragment (include)

sclass SavedSessions extends Module {
  transient SS sessions;
  transient JTable table;
  transient new Var<Bool> changed;
  
  void start {
    sessions = new FileBasedStringMap(javaxSavedSessionsDir());
  }
  
  void triggerUpdate {
    changed.set(true); super.triggerUpdate();
  }
  
  JComponent visualize() {
    table = sexyTable();
    VF1<Int> restore = voidfunc(int row) {
      S name = (S) getTableCell(table, row, 0);
      S text = sessions.get(name);
      if (text != null)
        restoreModulesSession(text);
    };
    tablePopupMenuItemsThreaded(table, "Restore", restore);
    onDoubleClickThreaded(table, restore);
    triggerUpdate();
    
    ret centerAndSouthWithMargins(table, jbutton("Save session...", r {
      inputText("Save session as", voidfunc(S name) {
        fS text = modulesSessionGrab();
        sessions.put(or2(trim(name), "Unnamed Session") + " [" + localDateWithSeconds() + ", " + computerID() + ", OS: " + programID() + "]", text);
        triggerUpdate();
      });
    }));
  }
  void unvisualize2() { table = null; }
  
  void update() {
    if (atomicFlipVarToFalse(changed))
      dataToTable_uneditable(table, listToMapsWithSingleKey("Session Name", sortedKeys(sessions)));
  }
}

download  show line numbers  debug dex  old transpilations   

Travelled to 19 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, gwrvuhgaqvyk, ishqpsrjomds, jcllbfdqhrgy, lpdgvwnxivlt, mqqgnosmbjvj, omdjrrnzbjjv, onxytkatvevr, pyentgdyhuwx, pzhvpgtvlbxg, snaazhdonpnp, tslmcundralx, tvejysmllsmz, vouqrxazstgt, whxojlpjdney, xrpafgyirdlv

No comments. add comment

Snippet ID: #1015842
Snippet name: SavedSessions (Static module)
Eternal ID of this version: #1015842/23
Text MD5: ca2cfb85dd091b49f8d7f445f19c2d18
Author: stefan
Category: javax
Type: JavaX fragment (include)
Public (visible to everyone): Yes
Archived (hidden from active list): No
Created/modified: 2021-09-05 09:35:13
Source code size: 1271 bytes / 40 lines
Pitched / IR pitched: No / No
Views / Downloads: 468 / 3190
Version history: 22 change(s)
Referenced in: #1015808 - Stefan's OS v1 [OK]
#1015871 - Stefan's OS v2 [OK, with new dyn modules]
#1016478 - Stefan's OS v6
#1022729 - Stefan's OS v6 - copy for transpiler test
#1024932 - Stefan's OS v7 [LIVE]
#1031320 - Stefan's OS v7 [backup before allowing dynamic main classes]