1 | static void calAddAutoLayoutSwitch(CirclesAndLines cal, final Canvas canvas, O modifyLayout, bool on) {
|
2 | calAddAutoLayoutSwitch(new Var(cal), canvas, modifyLayout, on); |
3 | } |
4 | |
5 | static double calAddAutoLayoutSwitch_scale = 100; |
6 | static new ThreadLocal<Bool> calAddAutoLayoutSwitch_center; |
7 | |
8 | static void calAddAutoLayoutSwitch(final Var<CirclesAndLines> cal, final Canvas canvas, final O modifyLayout, final bool on) {
|
9 | addToWindow(canvas, calAddAutoLayoutSwitch_make(cal, canvas, modifyLayout, on); |
10 | } |
11 | |
12 | static JPanel calAddAutoLayoutSwitch_make(final Var<CirclesAndLines> cal, final Canvas canvas, final O modifyLayout, final bool on) {
|
13 | final bool center = boolOptParam(calAddAutoLayoutSwitch_center); |
14 | |
15 | ret swing(func -> JPanel {
|
16 | // dummy for getting desiredLength |
17 | CALSpringLayout _layout = new CALSpringLayout(cal!); |
18 | if (l(cal->circles) <= 2) _layout.desiredLength = 0.45; |
19 | callF(modifyLayout, _layout); |
20 | |
21 | final JCheckBox cb = jcheckbox("Auto-Layout", on);
|
22 | final JButton btnNew = jbutton("Scramble", r {
|
23 | cal_scramble(cal!); |
24 | updateCanvas(canvas); |
25 | }); |
26 | final JCheckBox cb2 = jcheckbox("Center", center);
|
27 | final JSpinner lineLength = setSpinnerStepSize(5, jspinner(iround(_layout.desiredLength*calAddAutoLayoutSwitch_scale), 1, 50)); |
28 | JPanel panel = jcenteredline(cb, btnNew, cb2, jlabel("Line length:"), lineLength);
|
29 | awtCalcEvery2(canvas, 100, new Runnable {
|
30 | CALSpringLayout layout; |
31 | CirclesAndLines lastCAL = cal!; |
32 | bool lastOn; |
33 | |
34 | public void run() {
|
35 | bool x = false; |
36 | bool on = isChecked(cb); |
37 | if (on) {
|
38 | if (cal! != lastCAL || layout == null) {
|
39 | lastCAL = cal!; |
40 | layout = new CALSpringLayout(cal!); |
41 | layout.center = false; |
42 | callF(modifyLayout, layout); |
43 | } |
44 | layout.desiredLength = intFromSpinner(lineLength)/calAddAutoLayoutSwitch_scale; |
45 | if (!lastOn) layout.clear(); |
46 | layout.step(); |
47 | x = true; |
48 | } |
49 | lastOn = on; |
50 | if (isChecked(cb2)) {
|
51 | calCenterStepwise(cal!, 0.1); |
52 | x = true; |
53 | } |
54 | if (x) updateCanvas(canvas); |
55 | } |
56 | }); |
57 | ret panel; |
58 | }); |
59 | } |
Began life as a copy of #1009856
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: | #1009858 |
| Snippet name: | calAddAutoLayoutSwitch |
| Eternal ID of this version: | #1009858/30 |
| Text MD5: | 4c6f862f09d74b54476c4d5ac6aa4fe8 |
| Author: | stefan |
| Category: | javax / a.i. / gui |
| Type: | JavaX fragment (include) |
| Public (visible to everyone): | Yes |
| Archived (hidden from active list): | No |
| Created/modified: | 2017-09-19 22:33:01 |
| Source code size: | 2258 bytes / 59 lines |
| Pitched / IR pitched: | No / No |
| Views / Downloads: | 920 / 956 |
| Version history: | 29 change(s) |
| Referenced in: | [show references] |