Skip to content

Commit 8eab3d5

Browse files
committed
Adapt to API changes in TabShell
1 parent 23853c5 commit 8eab3d5

4 files changed

Lines changed: 48 additions & 45 deletions

File tree

weaverbird-assembly/weaverbird-assembly-maven-plugin/src/main/resources/com/techsenger/weaverbird/assembly/maven/plugin/framework.bat

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ java -agentlib:jdwp=transport=dt_socket,address=7700,server=y,suspend=n ^
2525
-Djava.net.preferIPv4Stack=true ^
2626
-Djava.io.tmpdir=%ROOT_PATH%\temp ^
2727
-Dfile.encoding=UTF-8 ^
28+
-Djavafx.enablePreview=true ^
2829
--add-modules ALL-DEFAULT ^
2930
--add-modules org.apache.logging.log4j,org.apache.logging.log4j.jul ^
3031
--add-opens java.base/java.time=com.techsenger.weaverbird.core ^

weaverbird-assembly/weaverbird-assembly-maven-plugin/src/main/resources/com/techsenger/weaverbird/assembly/maven/plugin/framework.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ java -agentlib:jdwp=transport=dt_socket,address=7700,server=y,suspend=n \
2626
-Djava.net.preferIPv4Stack=true \
2727
-Djava.io.tmpdir="$ROOT_PATH/temp" \
2828
-Dfile.encoding=UTF-8 \
29+
-Djavafx.enablePreview=true \
2930
--add-modules ALL-DEFAULT \
3031
--add-modules org.apache.logging.log4j,org.apache.logging.log4j.jul \
3132
--add-opens java.base/java.time=com.techsenger.weaverbird.core \

weaverbird-gui/src/main/java/com/techsenger/weaverbird/gui/menu/FileMenu.java

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,8 @@
1717
package com.techsenger.weaverbird.gui.menu;
1818

1919
import com.techsenger.tabshell.material.menu.DefaultMenuGroupName;
20-
import com.techsenger.tabshell.material.menu.DefaultMenuItemName;
2120
import com.techsenger.tabshell.material.menu.DefaultMenuName;
2221
import com.techsenger.tabshell.material.menu.MenuGroupName;
23-
import com.techsenger.tabshell.material.menu.MenuItemName;
2422
import com.techsenger.tabshell.material.menu.MenuName;
2523

2624
/**
@@ -33,12 +31,6 @@ public interface FileMenu {
3331

3432
MenuGroupName MAIN = new DefaultMenuGroupName("Main");
3533

36-
MenuItemName CONSOLE = new DefaultMenuItemName();
37-
38-
MenuItemName DIAGRAM = new DefaultMenuItemName();
39-
40-
MenuItemName SETTINGS = new DefaultMenuItemName();
41-
4234
// MenuKey NEW = new MenuKey();
4335
//
4436
// MenuItemKey XML_FILE = new MenuItemKey();

weaverbird-gui/src/main/java/com/techsenger/weaverbird/gui/menu/FileMenuRegistrar.java

Lines changed: 46 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,16 @@
1616

1717
package com.techsenger.weaverbird.gui.menu;
1818

19+
import com.techsenger.tabshell.core.ShellFxView;
20+
import com.techsenger.tabshell.core.menu.AbstractMenuItemHandler;
21+
import com.techsenger.tabshell.core.menu.MenuItemHandler;
22+
import com.techsenger.tabshell.core.registry.AbstractControlRegistrar;
23+
import com.techsenger.tabshell.core.registry.ControlFactory;
24+
import com.techsenger.tabshell.layout.tabhost.TabHostFxView;
25+
import com.techsenger.tabshell.material.icon.FontIconView;
26+
import com.techsenger.tabshell.material.menu.ManagedMenu;
27+
import com.techsenger.tabshell.material.menu.ManagedMenuGroup;
28+
import com.techsenger.tabshell.material.menu.ManagedMenuItem;
1929
import com.techsenger.weaverbird.core.api.Framework;
2030
import com.techsenger.weaverbird.gui.console.ConsoleTabFxView;
2131
import com.techsenger.weaverbird.gui.console.ConsoleTabPresenter;
@@ -24,15 +34,6 @@
2434
import com.techsenger.weaverbird.gui.style.ConsoleIcons;
2535
import com.techsenger.weaverbird.net.client.api.ClientService;
2636
import com.techsenger.weaverbird.net.client.api.ClientServiceFactory;
27-
import com.techsenger.tabshell.core.CoreComponents;
28-
import com.techsenger.tabshell.core.ShellFxView;
29-
import com.techsenger.tabshell.core.registry.AbstractControlRegistrar;
30-
import com.techsenger.tabshell.core.registry.ControlFactory;
31-
import com.techsenger.tabshell.layout.tabhost.TabHostFxView;
32-
import com.techsenger.tabshell.material.icon.FontIconView;
33-
import com.techsenger.tabshell.material.menu.NamedMenu;
34-
import com.techsenger.tabshell.material.menu.NamedMenuGroup;
35-
import com.techsenger.tabshell.material.menu.NamedMenuItem;
3637
import javafx.scene.input.KeyCode;
3738
import javafx.scene.input.KeyCodeCombination;
3839
import javafx.scene.input.KeyCombination;
@@ -65,53 +66,61 @@ public void register() {
6566
}
6667

6768
protected void registerMenu() {
68-
ControlFactory<NamedMenu> f = (v) -> {
69-
return new NamedMenu(FileMenu.NAME, "_File", 0);
69+
ControlFactory<ShellFxView<?>, ManagedMenu> f = (v) -> {
70+
return new ManagedMenu(FileMenu.NAME, "_File", 0);
7071
};
71-
addRegistration(getRegistry().registerMenu(CoreComponents.SHELL, null, f));
72+
addRegistration(getRegistry().mainMenu().registerMenu(null, f));
7273
}
7374

7475
private void registerMainGroup() {
75-
ControlFactory<NamedMenuGroup> f = (v) -> new NamedMenuGroup(FileMenu.MAIN, 100);
76-
addRegistration(getRegistry().registerMenuGroup(CoreComponents.SHELL, FileMenu.NAME, f));
76+
ControlFactory<ShellFxView<?>, ManagedMenuGroup> f = (v) -> new ManagedMenuGroup(FileMenu.MAIN, 100);
77+
addRegistration(getRegistry().mainMenu().registerMenuGroup(FileMenu.NAME, f));
7778
}
7879

7980
private void registerConsoleItem() {
80-
ControlFactory<NamedMenuItem> f = (v) -> {
81-
var item = new NamedMenuItem(FileMenu.CONSOLE, false, false, false, "C_onsole", 100);
81+
ControlFactory<ShellFxView<?>, ManagedMenuItem> f = (v) -> {
82+
var item = new ManagedMenuItem("C_onsole", 100);
8283
item.setGraphic(new FontIconView(ConsoleIcons.CONSOLE));
8384
item.setAccelerator(new KeyCodeCombination(KeyCode.S, KeyCombination.CONTROL_DOWN));
84-
item.setOnAction((e) -> {
85-
var shell = (ShellFxView<?>) v;
86-
var consoleView = new ConsoleTabFxView<>(shell);
87-
var consolePresenter = new ConsoleTabPresenter<>(consoleView, framework, client, null);
88-
consolePresenter.initialize();
89-
TabHostFxView<?> workspace = (TabHostFxView<?>) shell.getComposer().getWorkspace();
90-
workspace.getComposer().addTab(consoleView);
91-
});
92-
return item;
85+
var handler = new AbstractMenuItemHandler<ShellFxView<?>>(item, shell) {
9386

87+
@Override
88+
public void onAction() {
89+
var shell = getComponent();
90+
var consoleView = new ConsoleTabFxView<>(shell);
91+
var consolePresenter = new ConsoleTabPresenter<>(consoleView, framework, client, null);
92+
consolePresenter.initialize();
93+
TabHostFxView<?> workspace = (TabHostFxView<?>) shell.getComposer().getWorkspace();
94+
workspace.getComposer().addTab(consoleView);
95+
}
96+
};
97+
MenuItemHandler.setHandler(item, handler);
98+
return item;
9499
};
95-
addRegistration(getRegistry().registerMenuItem(CoreComponents.SHELL, FileMenu.MAIN, f));
100+
addRegistration(getRegistry().mainMenu().registerMenuItem(FileMenu.MAIN, f));
96101
}
97102

98103
private void registerDiagramItem() {
99-
ControlFactory<NamedMenuItem> f = (v) -> {
100-
var item = new NamedMenuItem(FileMenu.DIAGRAM, false, false, false, "D_iagrams", 200);
104+
ControlFactory<ShellFxView<?>, ManagedMenuItem> f = (v) -> {
105+
var item = new ManagedMenuItem("D_iagrams", 200);
101106
item.setGraphic(new FontIconView(ConsoleIcons.DIAGRAMS));
102107
item.setAccelerator(new KeyCodeCombination(KeyCode.D, KeyCombination.CONTROL_DOWN));
103-
item.setOnAction((e) -> {
104-
var shell = (ShellFxView<?>) v;
105-
var diagramView = new DiagramTabFxView<>(shell);
106-
var diagramPresenter = new DiagramTabPresenter<>(diagramView, framework, client, null);
107-
diagramPresenter.initialize();
108-
TabHostFxView<?> workspace = (TabHostFxView<?>) shell.getComposer().getWorkspace();
109-
workspace.getComposer().addTab(diagramView);
110-
});
108+
var handler = new AbstractMenuItemHandler<ShellFxView<?>>(item, shell) {
109+
@Override
110+
public void onAction() {
111+
var shell = getComponent();
112+
var diagramView = new DiagramTabFxView<>(shell);
113+
var diagramPresenter = new DiagramTabPresenter<>(diagramView, framework, client, null);
114+
diagramPresenter.initialize();
115+
TabHostFxView<?> workspace = (TabHostFxView<?>) shell.getComposer().getWorkspace();
116+
workspace.getComposer().addTab(diagramView);
117+
}
118+
};
119+
MenuItemHandler.setHandler(item, handler);
111120
return item;
112121

113122
};
114-
addRegistration(getRegistry().registerMenuItem(CoreComponents.SHELL, FileMenu.MAIN, f));
123+
addRegistration(getRegistry().mainMenu().registerMenuItem(FileMenu.MAIN, f));
115124
}
116125

117126
// private void registerSettingsItem() {

0 commit comments

Comments
 (0)