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

66
LINES

< > BotCompany Repo | #1016466 // General Definitions v3 [OK]

JavaX source code (Dynamic Module) [tags: use-pretranspiled] - run with: Stefan's OS

Uses 911K of libraries. Click here for Pure Java version (12040L/66K).

!7

cmodule GeneralDefinitions {
  transient S term;
  transient JPanel stack;
  transient OptionalInputPanel inputPanel;
  transient S listName = generalDefinitions_listName();
  transient int maxResults = 500;

  start {
    dm_useLocallyCopiedMechLists();
    dm_onTopInput(rstUpdate());
  }
  
  visualize {
    inputPanel = new OptionalInputPanel(this);
    onEnter(inputPanel.tfInput, r addADefinition);
    stack = dynamicVStack2();
    ret northCenterAndSouth(
      inputPanel.panel,
      jscroll_trackWidth(stack),
      withMargin(jcenteredbuttons("Add definition...", r addADefinition, "All definitions", r {
        showText("All definitions",
          ai_renderDefinitions(
            values(mechMultiMapPairsCI(listName)),
            values(mechMultiMapPairsCI("Unauthorized Appends | " + listName))))
      })));
  }
  
  void update {
    if (stack == null) ret;
    replaceAllComponents(stack, ll(fontSize(17,
      jCenteredMultiLineLabel(makeText(term = inputPanel.input())))));
  }
  
  S makeText(fS query) {
    if (empty(query)) ret "";
    MultiMap<S, Pair<S>> map = mechMultiMapPairsCI(listName);
    L<Pair<S>> answers = definitions_dropInvalidatedFromPairs(map.get(query));
    MultiMap<S, Pair<S>> map2 = mechMultiMapPairsCI("Unauthorized Appends | " + listName);
    L<Pair<S>> answers2 = definitions_dropInvalidatedFromPairs(map2.get(query));
    S text = trim(ai_renderDefinitions(answers, answers2)
      + "\n"
      + prependIfNempty("Possibly related:\n", lines(concatLists(
        scoredSearch2(maxResults, query, map(func(Pair<S> p) -> S { ai_renderDefinition(p.a, p.b, false) }, listMinusSet(definitions_dropInvalidatedFromPairs(values(map)), answers))),
        scoredSearch2(maxResults, query, map(func(Pair<S> p) -> S { ai_renderDefinition(p.a, p.b, true) }, listMinusSet(definitions_dropInvalidatedFromPairs(values(map2)), answers2)))))));
    
    ret empty(text) ? "No definitions found for " + quote(query) : text;
  }
  
  void addADefinition {
    temp enter();
    fS t = term;
    final JTextField tfWord = jtextfield(t), tfDefinition = jtextfield();
    showFormTitled("Add Definition",
      "Word/Phrase:", tfWord,
      "Definition:", tfDefinition,
      rThread {
        S word = gtt(tfWord), def = gtt(tfDefinition);
        Pair<Bool, S> p = generalDefinitions_add(word, def);
        infoBox(p.b);
        if (p.a) updateMe();
      });
    requestFocus(tfDefinition);
  }
}

Author comment

Began life as a copy of #1016431

download  show line numbers  debug dex  old transpilations   

Travelled to 15 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, gwrvuhgaqvyk, irmadwmeruwu, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, onxytkatvevr, pyentgdyhuwx, pzhvpgtvlbxg, tslmcundralx, tvejysmllsmz, vouqrxazstgt

No comments. add comment

Snippet ID: #1016466
Snippet name: General Definitions v3 [OK]
Eternal ID of this version: #1016466/45
Text MD5: 9326a3e303c1bb59bf866d36e775c376
Transpilation MD5: 2922a47448a243d503de9f722260adbe
Author: stefan
Category: javax / stefan's os
Type: JavaX source code (Dynamic Module)
Public (visible to everyone): Yes
Archived (hidden from active list): No
Created/modified: 2019-04-16 16:21:21
Source code size: 2503 bytes / 66 lines
Pitched / IR pitched: No / No
Views / Downloads: 559 / 6063
Version history: 44 change(s)
Referenced in: [show references]