mirror of
https://github.com/angryip/ipscan.git
synced 2025-10-26 11:18:17 +00:00
Butify MainMenu 2
This commit is contained in:
parent
ecc07c3bed
commit
2fda94028d
@ -40,21 +40,20 @@ public class MainMenu {
|
||||
|
||||
parent.setMenuBar(mainMenu);
|
||||
|
||||
addMenuItem(mainMenu, scanMenu, "menu.scan");
|
||||
addMenuItem(mainMenu, gotoMenu, "menu.goto");
|
||||
addMenuItem(mainMenu, commandsMenu, "menu.commands");
|
||||
addMenuItem(mainMenu, favoritesMenu, "menu.favorites");
|
||||
addMenuItem(mainMenu, toolsMenu, "menu.tools");
|
||||
addMenuItem(mainMenu, helpMenu, "menu.help");
|
||||
addMenuItem(mainMenu, scanMenu);
|
||||
addMenuItem(mainMenu, gotoMenu);
|
||||
addMenuItem(mainMenu, commandsMenu);
|
||||
addMenuItem(mainMenu, favoritesMenu);
|
||||
addMenuItem(mainMenu, toolsMenu);
|
||||
addMenuItem(mainMenu, helpMenu);
|
||||
|
||||
stateMachine.addTransitionListener(new MenuEnablerDisabler(mainMenu));
|
||||
stateMachine.addTransitionListener(new MenuEnablerDisabler(resultsContextMenu));
|
||||
}
|
||||
|
||||
private void addMenuItem(Menu mainMenu, Menu menu, String name) {
|
||||
private void addMenuItem(Menu mainMenu, AbstractMenu menu) {
|
||||
MenuItem menuItem = new MenuItem(mainMenu, SWT.CASCADE);
|
||||
menuItem.setText(Labels.getLabel(name));
|
||||
|
||||
menuItem.setText(Labels.getLabel(menu.getId()));
|
||||
menuItem.setMenu(menu);
|
||||
}
|
||||
|
||||
|
||||
@ -1,43 +1,13 @@
|
||||
package net.azib.ipscan.gui.menu;
|
||||
|
||||
import net.azib.ipscan.config.Labels;
|
||||
import org.eclipse.swt.SWT;
|
||||
import org.eclipse.swt.widgets.Listener;
|
||||
import org.eclipse.swt.widgets.Menu;
|
||||
import org.eclipse.swt.widgets.MenuItem;
|
||||
import org.eclipse.swt.widgets.Shell;
|
||||
|
||||
abstract class AbstractMenu extends Menu {
|
||||
public abstract class AbstractMenu extends ExtendableMenu {
|
||||
|
||||
public AbstractMenu(Shell parent, int style) {
|
||||
super(parent, style);
|
||||
public AbstractMenu(Shell parent) {
|
||||
super(parent, SWT.DROP_DOWN);
|
||||
}
|
||||
|
||||
static MenuItem initMenuItem(Menu parent, String label, String acceleratorText, Integer accelerator, Listener listener) {
|
||||
return initMenuItem(parent, label, acceleratorText, accelerator, listener, false);
|
||||
}
|
||||
|
||||
static MenuItem initMenuItem(Menu parent, String label, String acceleratorText, Integer accelerator, Listener listener, boolean disableDuringScanning) {
|
||||
MenuItem menuItem = new MenuItem(parent, label == null ? SWT.SEPARATOR : SWT.PUSH);
|
||||
|
||||
if (label != null)
|
||||
menuItem.setText(Labels.getLabel(label) + (acceleratorText != null ? "\t" + acceleratorText : ""));
|
||||
|
||||
if (accelerator != null)
|
||||
menuItem.setAccelerator(accelerator);
|
||||
|
||||
if (listener != null)
|
||||
menuItem.addListener(SWT.Selection, listener);
|
||||
else
|
||||
menuItem.setEnabled(false);
|
||||
|
||||
if (disableDuringScanning) {
|
||||
menuItem.setData("disableDuringScanning", true);
|
||||
}
|
||||
|
||||
return menuItem;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void checkSubclass() { } // allow extending of Menu class
|
||||
public abstract String getId();
|
||||
}
|
||||
|
||||
@ -12,7 +12,7 @@ import javax.inject.Singleton;
|
||||
* This is the menu when clicking on a column header.
|
||||
*/
|
||||
@Singleton
|
||||
public class ColumnsMenu extends AbstractMenu {
|
||||
public class ColumnsMenu extends ExtendableMenu {
|
||||
|
||||
@Inject
|
||||
public ColumnsMenu(Shell parent,
|
||||
|
||||
@ -22,7 +22,7 @@ public class CommandsMenu extends AbstractMenu {
|
||||
CommandsMenuActions.CopyIPDetails copyIPDetails,
|
||||
OpenersMenu openersMenu) {
|
||||
|
||||
super(parent, SWT.DROP_DOWN);
|
||||
super(parent);
|
||||
|
||||
initMenuItem(this, "menu.commands.details", null, null, details);
|
||||
initMenuItem(this, null, null, null, null);
|
||||
@ -34,9 +34,14 @@ public class CommandsMenu extends AbstractMenu {
|
||||
initMenuItem(this, null, null, null, null);
|
||||
|
||||
MenuItem openersMenuItem = new MenuItem(this, SWT.CASCADE);
|
||||
openersMenuItem.setText(Labels.getLabel("menu.commands.open"));
|
||||
openersMenuItem.setText(Labels.getLabel(openersMenu.getId()));
|
||||
openersMenuItem.setMenu(openersMenu);
|
||||
|
||||
// initMenuItem(subMenu, "menu.commands.show", null, initListener());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getId() {
|
||||
return "menu.commands";
|
||||
}
|
||||
}
|
||||
|
||||
43
src/net/azib/ipscan/gui/menu/ExtendableMenu.java
Normal file
43
src/net/azib/ipscan/gui/menu/ExtendableMenu.java
Normal file
@ -0,0 +1,43 @@
|
||||
package net.azib.ipscan.gui.menu;
|
||||
|
||||
import net.azib.ipscan.config.Labels;
|
||||
import org.eclipse.swt.SWT;
|
||||
import org.eclipse.swt.widgets.Listener;
|
||||
import org.eclipse.swt.widgets.Menu;
|
||||
import org.eclipse.swt.widgets.MenuItem;
|
||||
import org.eclipse.swt.widgets.Shell;
|
||||
|
||||
class ExtendableMenu extends Menu {
|
||||
|
||||
public ExtendableMenu(Shell parent, int style) {
|
||||
super(parent, style);
|
||||
}
|
||||
|
||||
static MenuItem initMenuItem(Menu parent, String label, String acceleratorText, Integer accelerator, Listener listener) {
|
||||
return initMenuItem(parent, label, acceleratorText, accelerator, listener, false);
|
||||
}
|
||||
|
||||
static MenuItem initMenuItem(Menu parent, String label, String acceleratorText, Integer accelerator, Listener listener, boolean disableDuringScanning) {
|
||||
MenuItem menuItem = new MenuItem(parent, label == null ? SWT.SEPARATOR : SWT.PUSH);
|
||||
|
||||
if (label != null)
|
||||
menuItem.setText(Labels.getLabel(label) + (acceleratorText != null ? "\t" + acceleratorText : ""));
|
||||
|
||||
if (accelerator != null)
|
||||
menuItem.setAccelerator(accelerator);
|
||||
|
||||
if (listener != null)
|
||||
menuItem.addListener(SWT.Selection, listener);
|
||||
else
|
||||
menuItem.setEnabled(false);
|
||||
|
||||
if (disableDuringScanning) {
|
||||
menuItem.setData("disableDuringScanning", true);
|
||||
}
|
||||
|
||||
return menuItem;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void checkSubclass() { } // allow extending of Menu class
|
||||
}
|
||||
@ -9,8 +9,6 @@ import javax.inject.Singleton;
|
||||
|
||||
/**
|
||||
* FavoritesMenu wrapper for type-safety
|
||||
*
|
||||
* @author Andriy Kryvtsun
|
||||
*/
|
||||
@Singleton
|
||||
public class FavoritesMenu extends AbstractMenu {
|
||||
@ -21,7 +19,7 @@ public class FavoritesMenu extends AbstractMenu {
|
||||
FavoritesMenuActions.Edit editListener,
|
||||
FavoritesMenuActions.ShowMenu showFavoritesMenuListener) {
|
||||
|
||||
super(parent, SWT.DROP_DOWN);
|
||||
super(parent);
|
||||
|
||||
initMenuItem(this, "menu.favorites.add", "Ctrl+D", SWT.MOD1 | 'D', addListener);
|
||||
initMenuItem(this, "menu.favorites.edit", null, null, editListener);
|
||||
@ -29,4 +27,9 @@ public class FavoritesMenu extends AbstractMenu {
|
||||
|
||||
addListener(SWT.Show, showFavoritesMenuListener);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getId() {
|
||||
return "menu.favorites";
|
||||
}
|
||||
}
|
||||
|
||||
@ -7,9 +7,6 @@ import org.eclipse.swt.widgets.Shell;
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Singleton;
|
||||
|
||||
/**
|
||||
* @author Andriy Kryvtsun
|
||||
*/
|
||||
@Singleton
|
||||
public class GotoMenu extends AbstractMenu {
|
||||
|
||||
@ -23,7 +20,7 @@ public class GotoMenu extends AbstractMenu {
|
||||
GotoMenuActions.PrevDeadHost prevDeadHost,
|
||||
GotoMenuActions.Find find) {
|
||||
|
||||
super(parent, SWT.DROP_DOWN);
|
||||
super(parent);
|
||||
|
||||
initMenuItem(this, "menu.goto.next.aliveHost", "Ctrl+H", SWT.MOD1 | 'H', nextAliveHost);
|
||||
initMenuItem(this, "menu.goto.next.openPort", "Ctrl+J", SWT.MOD1 | 'J', nextHostWithInfo);
|
||||
@ -35,4 +32,9 @@ public class GotoMenu extends AbstractMenu {
|
||||
initMenuItem(this, null, null, null, null);
|
||||
initMenuItem(this, "menu.goto.find", "Ctrl+F", SWT.MOD1 | 'F', find);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getId() {
|
||||
return "menu.goto";
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,21 +1,13 @@
|
||||
package net.azib.ipscan.gui.menu;
|
||||
|
||||
import dagger.Module;
|
||||
import dagger.Provides;
|
||||
import net.azib.ipscan.config.Platform;
|
||||
import net.azib.ipscan.gui.actions.HelpMenuActions;
|
||||
import org.eclipse.swt.SWT;
|
||||
import org.eclipse.swt.widgets.Decorations;
|
||||
import org.eclipse.swt.widgets.Menu;
|
||||
import org.eclipse.swt.widgets.Shell;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Named;
|
||||
import javax.inject.Singleton;
|
||||
|
||||
/**
|
||||
* @author Andriy Kryvtsun
|
||||
*/
|
||||
@Singleton
|
||||
public class HelpMenu extends AbstractMenu {
|
||||
|
||||
@ -29,7 +21,7 @@ public class HelpMenu extends AbstractMenu {
|
||||
HelpMenuActions.CheckVersion checkVersion,
|
||||
HelpMenuActions.About about) {
|
||||
|
||||
super(parent, SWT.DROP_DOWN);
|
||||
super(parent);
|
||||
|
||||
initMenuItem(this, "menu.help.gettingStarted", !Platform.MAC_OS ? "F1" : null, Platform.MAC_OS ? SWT.HELP : SWT.F1, gettingStarted);
|
||||
initMenuItem(this, null, null, null, null);
|
||||
@ -47,4 +39,9 @@ public class HelpMenu extends AbstractMenu {
|
||||
initMenuItem(this, "menu.help.about", null, null, about);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getId() {
|
||||
return "menu.help";
|
||||
}
|
||||
}
|
||||
|
||||
@ -19,7 +19,7 @@ public class OpenersMenu extends AbstractMenu {
|
||||
CommandsMenuActions.EditOpeners editOpenersListener,
|
||||
CommandsMenuActions.ShowOpenersMenu showOpenersMenuListener) {
|
||||
|
||||
super(parent, SWT.DROP_DOWN);
|
||||
super(parent);
|
||||
|
||||
initMenuItem(this, "menu.commands.open.edit", null, null, editOpenersListener);
|
||||
initMenuItem(this, null, null, null, null);
|
||||
@ -31,4 +31,9 @@ public class OpenersMenu extends AbstractMenu {
|
||||
e.widget = this;
|
||||
showOpenersMenuListener.handleEvent(e);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getId() {
|
||||
return "menu.commands.open";
|
||||
}
|
||||
}
|
||||
|
||||
@ -10,7 +10,7 @@ import javax.inject.Singleton;
|
||||
* CommandsMenu wrapper for type-safety
|
||||
*/
|
||||
@Singleton
|
||||
public class ResultsContextMenu extends AbstractMenu {
|
||||
public class ResultsContextMenu extends ExtendableMenu {
|
||||
|
||||
@Inject
|
||||
public ResultsContextMenu(Shell parent) {
|
||||
|
||||
@ -8,9 +8,6 @@ import org.eclipse.swt.widgets.Shell;
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Singleton;
|
||||
|
||||
/**
|
||||
* @author Andriy Kryvtsun
|
||||
*/
|
||||
@Singleton
|
||||
public class ScanMenu extends AbstractMenu {
|
||||
|
||||
@ -21,7 +18,7 @@ public class ScanMenu extends AbstractMenu {
|
||||
ScanMenuActions.SaveSelection saveSelection,
|
||||
ScanMenuActions.Quit quit) {
|
||||
|
||||
super(parent, SWT.DROP_DOWN);
|
||||
super(parent);
|
||||
|
||||
// initMenuItem(subMenu, "menu.scan.newWindow", "Ctrl+N", new Integer(SWT.MOD1 | 'N'), initListener(FileActions.NewWindow.class));
|
||||
// initMenuItem(subMenu, null, null, null, null);
|
||||
@ -36,4 +33,9 @@ public class ScanMenu extends AbstractMenu {
|
||||
initMenuItem(this, "menu.scan.quit", "Ctrl+Q", SWT.MOD1 | 'Q', quit);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getId() {
|
||||
return "menu.scan";
|
||||
}
|
||||
}
|
||||
|
||||
@ -11,9 +11,6 @@ import org.eclipse.swt.widgets.Shell;
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Singleton;
|
||||
|
||||
/**
|
||||
* @author Andriy Kryvtsun
|
||||
*/
|
||||
@Singleton
|
||||
public class ToolsMenu extends AbstractMenu {
|
||||
|
||||
@ -28,7 +25,7 @@ public class ToolsMenu extends AbstractMenu {
|
||||
ToolsActions.SelectWithoutPorts selectWithoutPorts,
|
||||
ToolsActions.SelectInvert selectInvert) {
|
||||
|
||||
super(parent, SWT.DROP_DOWN);
|
||||
super(parent);
|
||||
|
||||
initMenuItem(this, "menu.tools.preferences", "Ctrl+Shift+P", SWT.MOD1 | (Platform.MAC_OS ? ',' : SWT.MOD2 | 'P'), preferences, true);
|
||||
initMenuItem(this, "menu.tools.fetchers", "Ctrl+Shift+O", SWT.MOD1 | SWT.MOD2 | (Platform.MAC_OS ? ',' : 'O'), chooseFetchers, true);
|
||||
@ -53,4 +50,9 @@ public class ToolsMenu extends AbstractMenu {
|
||||
|
||||
return subMenu;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getId() {
|
||||
return "menu.tools";
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user