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

38
LINES

< > BotCompany Repo | #1014701 // showFormTitled (+ showForm_makePanel) - show input form [Swing, v1 with hvgrid]

JavaX fragment (include)

//please include function withMargin.

static int showForm_defaultGap = 4;

static JPanel showFormTitled(fS title, fO... _parts) {
  ret swing(func -> JPanel {
    final new Var<JFrame> frame;
    JPanel panel = showForm_makePanel(frame, _parts);
    frame.set(handleEscapeKey(minFrameWidth(showPackedFrame(title, withMargin(panel)), 400)));
    ret panel;
  });
}

static JPanel showForm_makePanel(final Var<JFrame> frame, O... _parts) {
  new L<L> l;
  L parts = asList(_parts);
  Runnable submit = null;
  for (int i = 0; i < l(parts); i++) {
    final O o = parts.get(i), next = get(parts, i+1);
    if (o instanceof Component || o instanceof S || next instanceof Component) { // smartAdd accepts strings
      l.add(ll(o == null ? new JPanel : o, next));
      if (next instanceof JButton && submit == null)
        submit = r { ((JButton) next).doClick() };
      i++;
    } else if (isRunnable(o))
      l.add(ll(null, jbutton(showFormSubmitButtonName(), submit = r {
        O result = call(o);
        if (neq(Boolean.FALSE, result))
          disposeFrame(frame.get());
      })));
    else print("showForm: Unknown element type: " + getClassName(o));
  }
  JPanel panel = hvgrid((L) l, showForm_defaultGap);
  if (submit != null)
    for (JTextField textField : childrenOfType(panel, JTextField.class))
      onEnter(textField, submit);
  ret panel;
}

Author comment

Began life as a copy of #1004442

download  show line numbers  debug dex  old transpilations   

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

No comments. add comment

Snippet ID: #1014701
Snippet name: showFormTitled (+ showForm_makePanel) - show input form [Swing, v1 with hvgrid]
Eternal ID of this version: #1014701/1
Text MD5: 5405cf81dec6cede53a25c9409fdc411
Author: stefan
Category: javax / gui
Type: JavaX fragment (include)
Public (visible to everyone): Yes
Archived (hidden from active list): No
Created/modified: 2018-04-30 17:24:40
Source code size: 1399 bytes / 38 lines
Pitched / IR pitched: No / No
Views / Downloads: 376 / 425
Referenced in: [show references]