2626import com .techsenger .tabshell .material .icon .FontIconView ;
2727import com .techsenger .tabshell .material .style .StyleClasses ;
2828import java .util .List ;
29- import javafx .collections .ListChangeListener ;
3029import javafx .scene .Cursor ;
3130import javafx .scene .control .Button ;
32- import javafx .scene .control .Tab ;
3331import javafx .scene .control .Tooltip ;
3432import javafx .scene .input .MouseDragEvent ;
3533
@@ -43,6 +41,17 @@ public class TabDockFxView<P extends TabDockPresenter<?>> extends TabHostFxView<
4341
4442 public class Composer extends TabHostFxView <P >.Composer implements TabDockView .Composer {
4543
44+ private final TabDockFxView <P > view = TabDockFxView .this ;
45+
46+ @ Override
47+ public void removeTab (TabFxView <?> tab ) {
48+ super .removeTab (tab );
49+ if (view .getNode ().getTabs ().isEmpty ()
50+ && getPresenter ().getTransitionState () != TabDockTransitionState .TO_MINIMIZED ) {
51+ dockHost .getComposer ().removeTabDock (view );
52+ }
53+ }
54+
4655 @ Override
4756 public void remove () {
4857 dockHost .getComposer ().removeTabDock (TabDockFxView .this );
@@ -137,18 +146,6 @@ protected void build() {
137146
138147 }
139148
140- @ Override
141- protected void addListeners () {
142- super .addListeners ();
143- var tabPane = getNode ();
144- tabPane .getTabs ().addListener ((ListChangeListener <Tab >) change -> {
145- if (tabPane .getTabs ().isEmpty ()
146- && getPresenter ().getTransitionState () != TabDockTransitionState .TO_MINIMIZED ) {
147- dockHost .getComposer ().removeTabDock (this );
148- }
149- });
150- }
151-
152149 @ Override
153150 protected void addHandlers () {
154151 super .addHandlers ();
0 commit comments