19 package org.sleuthkit.autopsy.timeline.ui.listvew;
21 import javafx.scene.control.Menu;
22 import javafx.scene.control.MenuItem;
23 import javafx.scene.control.SeparatorMenuItem;
24 import javax.swing.JMenu;
25 import javax.swing.JMenuItem;
26 import javax.swing.JPopupMenu;
27 import javax.swing.MenuElement;
28 import javax.swing.SwingUtilities;
34 class SwingFXMenuUtils {
36 private SwingFXMenuUtils() {
46 public static MenuItem createFXMenu(MenuElement jMenuElement) {
47 if (jMenuElement == null) {
49 return new SeparatorMenuItem();
50 }
else if (jMenuElement instanceof JMenu) {
51 return new MenuAdapter((JMenu) jMenuElement);
52 }
else if (jMenuElement instanceof JPopupMenu) {
53 return new MenuAdapter((JPopupMenu) jMenuElement);
55 return new MenuItemAdapter((JMenuItem) jMenuElement);
65 super(jMenuItem.getText());
66 setDisable(jMenuItem.isEnabled() ==
false);
67 setOnAction(actionEvent -> SwingUtilities.invokeLater(jMenuItem::doClick));
83 super(jMenu.getText());
84 setDisable(jMenu.isEnabled() ==
false);
94 super(jPopupMenu.getLabel());
95 setDisable(jPopupMenu.isEnabled() ==
false);
106 for (MenuElement menuElement : menu.getSubElements()) {
107 if (menuElement == null) {
109 getItems().add(
new SeparatorMenuItem());
111 }
else if (menuElement instanceof JMenuItem) {
112 getItems().add(SwingFXMenuUtils.createFXMenu(menuElement));
114 }
else if (menuElement instanceof JPopupMenu) {
118 throw new UnsupportedOperationException(
"Unown MenuElement subclass: " + menuElement.getClass().getName());