1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package io.github.tonywasher.joceanus.tethys.core.pane;
18
19 import java.util.ArrayList;
20 import java.util.Iterator;
21 import java.util.List;
22
23 import io.github.tonywasher.joceanus.tethys.api.base.TethysUIComponent;
24 import io.github.tonywasher.joceanus.tethys.api.pane.TethysUIBoxPaneManager;
25 import io.github.tonywasher.joceanus.tethys.core.base.TethysUICoreComponent;
26 import io.github.tonywasher.joceanus.tethys.core.factory.TethysUICoreFactory;
27 import io.github.tonywasher.joceanus.tethys.core.factory.TethysUICoreFactory.TethysUIParentComponent;
28
29
30
31
32 public abstract class TethysUICoreBoxPaneManager
33 extends TethysUICoreComponent
34 implements TethysUIBoxPaneManager, TethysUIParentComponent {
35
36
37
38 private static final int STRUT_SIZE = 4;
39
40
41
42
43 private final Integer theId;
44
45
46
47
48 private final TethysUICoreFactory<?> theFactory;
49
50
51
52
53 private final List<TethysUIComponent> theNodeList;
54
55
56
57
58 private Integer theGap;
59
60
61
62
63
64
65 protected TethysUICoreBoxPaneManager(final TethysUICoreFactory<?> pFactory) {
66 theFactory = pFactory;
67 theId = theFactory.getNextId();
68 theNodeList = new ArrayList<>();
69 theGap = STRUT_SIZE;
70 }
71
72 @Override
73 public Integer getId() {
74 return theId;
75 }
76
77 @Override
78 public Integer getGap() {
79 return theGap;
80 }
81
82 @Override
83 public void setGap(final Integer pGap) {
84 theGap = pGap;
85 }
86
87
88
89
90
91
92 protected void addSpacerNode(final TethysUIComponent pNode) {
93 theNodeList.add(pNode);
94 }
95
96 @Override
97 public void addNode(final TethysUIComponent pNode) {
98 theNodeList.add(pNode);
99 theFactory.registerChild(this, pNode);
100 }
101
102 @Override
103 public void setEnabled(final boolean pEnabled) {
104 for (TethysUIComponent myNode : theNodeList) {
105 myNode.setEnabled(pEnabled);
106 }
107 }
108
109 @Override
110 public Iterator<TethysUIComponent> iterator() {
111 return theNodeList.iterator();
112 }
113 }
114