1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package io.github.tonywasher.joceanus.tethys.javafx.button;
18
19 import io.github.tonywasher.joceanus.oceanus.event.OceanusEventRegistrar;
20 import javafx.geometry.Side;
21 import io.github.tonywasher.joceanus.tethys.api.base.TethysUIEvent;
22 import io.github.tonywasher.joceanus.tethys.core.button.TethysUICoreListButtonManager;
23 import io.github.tonywasher.joceanus.tethys.core.factory.TethysUICoreFactory;
24 import io.github.tonywasher.joceanus.tethys.javafx.base.TethysUIFXNode;
25 import io.github.tonywasher.joceanus.tethys.javafx.menu.TethysUIFXScrollMenu;
26
27
28
29
30
31
32 public final class TethysUIFXListButtonManager<T extends Comparable<? super T>>
33 extends TethysUICoreListButtonManager<T> {
34
35
36
37
38
39 TethysUIFXListButtonManager(final TethysUICoreFactory<?> pFactory) {
40
41 super(pFactory);
42 }
43
44 @Override
45 public TethysUIFXNode getNode() {
46 return (TethysUIFXNode) super.getNode();
47 }
48
49 @Override
50 public void setVisible(final boolean pVisible) {
51 getNode().setManaged(pVisible);
52 getNode().setVisible(pVisible);
53 }
54
55 @Override
56 protected void registerListeners() {
57
58 final OceanusEventRegistrar<TethysUIEvent> myRegistrar = getMenu().getEventRegistrar();
59 myRegistrar.addEventListener(TethysUIEvent.NEWVALUE, e -> handleToggleItem());
60 myRegistrar.addEventListener(TethysUIEvent.WINDOWCLOSED, e -> handleMenuClosed());
61 }
62
63 @Override
64 public TethysUIFXScrollMenu<T> getMenu() {
65 return (TethysUIFXScrollMenu<T>) super.getMenu();
66 }
67
68 @Override
69 protected void showMenu() {
70 getMenu().showMenuAtPosition(getNode().getNode(), Side.BOTTOM);
71 }
72
73 @Override
74 public void setPreferredWidth(final Integer pWidth) {
75 getNode().setPreferredWidth(pWidth);
76 }
77
78 @Override
79 public void setPreferredHeight(final Integer pHeight) {
80 getNode().setPreferredHeight(pHeight);
81 }
82
83 @Override
84 public void setBorderPadding(final Integer pPadding) {
85 super.setBorderPadding(pPadding);
86 getNode().createWrapperPane(getBorderTitle(), getBorderPadding());
87 }
88
89 @Override
90 public void setBorderTitle(final String pTitle) {
91 super.setBorderTitle(pTitle);
92 getNode().createWrapperPane(getBorderTitle(), getBorderPadding());
93 }
94 }