mirror of
https://github.com/angryip/ipscan.git
synced 2025-10-26 11:18:17 +00:00
Platform class introduced to hold OS detections.
MainMenu made more compatible with Mac, all accelerator texts moved from Labels.txt to the code. git-svn-id: https://ipscan.svn.sourceforge.net/svnroot/ipscan/trunk/ipscan@87 375186e5-ef17-0410-b0b6-91563547dcda
This commit is contained in:
parent
4ab9b6386b
commit
eeece5bb01
13
.classpath
13
.classpath
@ -10,17 +10,10 @@
|
||||
<attribute name="org.eclipse.jdt.launching.CLASSPATH_ATTR_LIBRARY_PATH_ENTRY" value="ipscan/ext/rocksaw/lib"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="lib" path="/swt/swt-win32.jar" sourcepath="/swt/src">
|
||||
<attributes>
|
||||
<attribute name="org.eclipse.jdt.launching.CLASSPATH_ATTR_LIBRARY_PATH_ENTRY" value="swt/lib"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="lib" path="/swt/swt-gtk.jar" sourcepath="/swt/src">
|
||||
<attributes>
|
||||
<attribute name="org.eclipse.jdt.launching.CLASSPATH_ATTR_LIBRARY_PATH_ENTRY" value="swt/lib"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="lib" path="/swt/swt-win32.jar" sourcepath="/swt/src-win32"/>
|
||||
<classpathentry kind="lib" path="/swt/swt-gtk.jar" sourcepath="/swt/src-gtk"/>
|
||||
<classpathentry kind="lib" path="ext/picocontainer/picocontainer-1.0.jar" sourcepath="ext/picocontainer/src"/>
|
||||
<classpathentry combineaccessrules="false" kind="src" path="/swt"/>
|
||||
<classpathentry kind="lib" path="/swt/swt-mac.jar" sourcepath="/swt/src-mac"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
||||
|
||||
@ -1,41 +1,41 @@
|
||||
icon=images/icon.gif
|
||||
encoding=ISO-8859-1
|
||||
menu.file=&File
|
||||
menu.file.saveAll=Export &results... Ctrl+S
|
||||
menu.file.saveSelection=Export &selected results...
|
||||
menu.file.saveAll=&Save...
|
||||
menu.file.saveSelection=Save se&lection...
|
||||
menu.file.exportOptions=Export &options...
|
||||
menu.file.importOptions=&Import options...
|
||||
menu.file.exit=E&xit Alt+F4
|
||||
menu.file.exit=E&xit
|
||||
menu.goto=&Go to
|
||||
menu.goto.aliveHost=Next alive &host Ctrl+Shift+H
|
||||
menu.goto.deadHost=Next d&ead host Ctrl+Shift+D
|
||||
menu.goto.openPort=Next open &port Ctrl+Shift+P
|
||||
menu.goto.find=Find... Ctrl+F
|
||||
menu.goto.aliveHost=Next alive &host
|
||||
menu.goto.deadHost=Next d&ead host
|
||||
menu.goto.openPort=Next open &port
|
||||
menu.goto.find=Find...
|
||||
menu.commands=&Commands
|
||||
menu.commands.details=&Show details Dbl-Clk
|
||||
menu.commands.rescan=&Rescan IP(s) Ctrl+R
|
||||
menu.commands.delete=&Delete IP(s) Del
|
||||
menu.commands.copy=&Copy IP Ctrl+C
|
||||
menu.commands.details=&Show details
|
||||
menu.commands.rescan=&Rescan IP(s)
|
||||
menu.commands.delete=&Delete IP(s)
|
||||
menu.commands.copy=&Copy IP
|
||||
menu.commands.copyDetails=Co&py details
|
||||
menu.commands.show=Show
|
||||
menu.commands.open=Open
|
||||
menu.commands.open.edit=Edit openers...
|
||||
menu.favorites=Fa&vorites
|
||||
menu.favorites.add=Add current... Ctrl+D
|
||||
menu.favorites.add=Add current...
|
||||
menu.favorites.edit=Manage favorites...
|
||||
menu.tools=&Tools
|
||||
menu.tools.options=&Options... Ctrl+O
|
||||
menu.tools.options=&Options...
|
||||
menu.tools.fetchers=Select &fetchers...
|
||||
menu.tools.delete=Delete from list
|
||||
menu.tools.lastInfo=Show last scan &info Ctrl+I
|
||||
menu.tools.lastInfo=Show last scan &info
|
||||
menu.help=&Help
|
||||
menu.help.gettingStarted=Getting &Started F1
|
||||
menu.help.gettingStarted=Getting &Started
|
||||
menu.help.website=Official Website
|
||||
menu.help.forum=Forum
|
||||
menu.help.plugins=Download plugins
|
||||
menu.help.cmdLine=Command-line usage
|
||||
menu.help.checkVersion=Check for newer version...
|
||||
menu.help.about=&About... F12
|
||||
menu.help.about=&About...
|
||||
menu.columns.sortBy=Sort by
|
||||
menu.columns.sortDirection=Change sort direction
|
||||
menu.columns.info=Fetcher info
|
||||
|
||||
19
src/net/azib/ipscan/config/Platform.java
Executable file
19
src/net/azib/ipscan/config/Platform.java
Executable file
@ -0,0 +1,19 @@
|
||||
/**
|
||||
*
|
||||
*/
|
||||
package net.azib.ipscan.config;
|
||||
|
||||
/**
|
||||
* This class provides constants for distingushing between various platforms.
|
||||
* However, platform-specific behaviour must be kept at minimum.
|
||||
*
|
||||
* @author Anton Keks
|
||||
*/
|
||||
public class Platform {
|
||||
/** Mac OS detection :-) */
|
||||
public static final boolean MAC_OS = System.getProperty("mrj.version") != null;
|
||||
|
||||
/** Any Windows version */
|
||||
public static final boolean WINDOWS = System.getProperty("os.name").startsWith("Windows");
|
||||
|
||||
}
|
||||
@ -16,7 +16,7 @@ public class Version {
|
||||
|
||||
public static final String FULL_NAME = NAME + " " + VERSION;
|
||||
|
||||
public static final String COPYLEFT = "(C) 1998-2006 Anton Keks";
|
||||
public static final String COPYLEFT = "(C) 1998-2007 Anton Keks";
|
||||
|
||||
public static final String WEBSITE = "http://www.azib.net/ipscan/";
|
||||
|
||||
@ -26,5 +26,5 @@ public class Version {
|
||||
|
||||
public static final String PLUGINS_URL = "http://www.azib.net/ipscan/plugins/";
|
||||
|
||||
public static final String LATEST_VERSION_URL = "http://www.azib.net/ipscan/IPSCAN.VERSION";
|
||||
public static final String LATEST_VERSION_URL = "http://www.azib.net/ipscan/IPSCAN.VERSION";
|
||||
}
|
||||
|
||||
@ -4,6 +4,7 @@
|
||||
package net.azib.ipscan.gui;
|
||||
|
||||
import net.azib.ipscan.config.Labels;
|
||||
import net.azib.ipscan.config.Platform;
|
||||
import net.azib.ipscan.gui.actions.ColumnsActions;
|
||||
import net.azib.ipscan.gui.actions.CommandsActions;
|
||||
import net.azib.ipscan.gui.actions.FavoritesActions;
|
||||
@ -60,20 +61,22 @@ public class MainMenu {
|
||||
private void createMainMenuItems(Menu menu) {
|
||||
|
||||
Menu subMenu = initMenu(menu, "menu.file");
|
||||
initMenuItem(subMenu, "menu.file.saveAll", new Integer(SWT.CONTROL | 'S'), initListener(FileActions.SaveAll.class));
|
||||
initMenuItem(subMenu, "menu.file.saveSelection", null, initListener(FileActions.SaveSelection.class));
|
||||
initMenuItem(subMenu, null, null, null);
|
||||
initMenuItem(subMenu, "menu.file.exportOptions", null, null);
|
||||
initMenuItem(subMenu, "menu.file.importOptions", null, null);
|
||||
initMenuItem(subMenu, null, null, null);
|
||||
initMenuItem(subMenu, "menu.file.exit", null, initListener(FileActions.Exit.class));
|
||||
initMenuItem(subMenu, "menu.file.saveAll", "Ctrl+S", new Integer(SWT.MOD1 | 'S'), initListener(FileActions.SaveAll.class));
|
||||
initMenuItem(subMenu, "menu.file.saveSelection", null, null, initListener(FileActions.SaveSelection.class));
|
||||
initMenuItem(subMenu, null, null, null, null);
|
||||
initMenuItem(subMenu, "menu.file.exportOptions", null, null, null);
|
||||
initMenuItem(subMenu, "menu.file.importOptions", null, null, null);
|
||||
if (!Platform.MAC_OS) {
|
||||
initMenuItem(subMenu, null, null, null, null);
|
||||
initMenuItem(subMenu, "menu.file.exit", !Platform.MAC_OS ? "Alt+F4" : null, null, initListener(FileActions.Exit.class));
|
||||
}
|
||||
|
||||
subMenu = initMenu(menu, "menu.goto");
|
||||
initMenuItem(subMenu, "menu.goto.aliveHost", new Integer(SWT.CONTROL | SWT.SHIFT | 'H'), initListener(GotoActions.NextAliveHost.class));
|
||||
initMenuItem(subMenu, "menu.goto.deadHost", new Integer(SWT.CONTROL | SWT.SHIFT | 'D'), initListener(GotoActions.NextDeadHost.class));
|
||||
initMenuItem(subMenu, "menu.goto.openPort", new Integer(SWT.CONTROL | SWT.SHIFT | 'P'), initListener(GotoActions.NextHostWithInfo.class));
|
||||
initMenuItem(subMenu, null, null, null);
|
||||
initMenuItem(subMenu, "menu.goto.find", new Integer(SWT.CONTROL | 'F'), initListener(GotoActions.Find.class));
|
||||
initMenuItem(subMenu, "menu.goto.aliveHost", "Ctrl+Shift+H", new Integer(SWT.MOD1 | SWT.MOD2 | 'H'), initListener(GotoActions.NextAliveHost.class));
|
||||
initMenuItem(subMenu, "menu.goto.deadHost", "Ctrl+Shift+D", new Integer(SWT.MOD1 | SWT.MOD2 | 'D'), initListener(GotoActions.NextDeadHost.class));
|
||||
initMenuItem(subMenu, "menu.goto.openPort", "Ctrl+Shift+P", new Integer(SWT.MOD1 | SWT.MOD2 | 'P'), initListener(GotoActions.NextHostWithInfo.class));
|
||||
initMenuItem(subMenu, null, null, null, null);
|
||||
initMenuItem(subMenu, "menu.goto.find", "Ctrl+F", new Integer(SWT.MOD1 | 'F'), initListener(GotoActions.Find.class));
|
||||
|
||||
subMenu = initMenu(menu, "menu.commands");
|
||||
createCommandsMenuItems(subMenu);
|
||||
@ -81,35 +84,35 @@ public class MainMenu {
|
||||
createFavoritesMenu(menu);
|
||||
|
||||
subMenu = initMenu(menu, "menu.tools");
|
||||
initMenuItem(subMenu, "menu.tools.options", new Integer(SWT.CONTROL | 'O'), initListener(ToolsActions.Options.class));
|
||||
initMenuItem(subMenu, "menu.tools.fetchers", null, initListener(ToolsActions.SelectFetchers.class));
|
||||
initMenuItem(subMenu, null, null, null);
|
||||
initMenuItem(subMenu, "menu.tools.delete", null, null);
|
||||
initMenuItem(subMenu, "menu.tools.lastInfo", new Integer(SWT.CONTROL | 'I'), null);
|
||||
initMenuItem(subMenu, "menu.tools.options", Platform.MAC_OS ? "Ctrl+," : "Ctrl+O", new Integer(SWT.MOD1 | (Platform.MAC_OS ? ',' : 'O')), initListener(ToolsActions.Options.class));
|
||||
initMenuItem(subMenu, "menu.tools.fetchers", null, null, initListener(ToolsActions.SelectFetchers.class));
|
||||
initMenuItem(subMenu, null, null, null, null);
|
||||
initMenuItem(subMenu, "menu.tools.delete", null, null, null);
|
||||
initMenuItem(subMenu, "menu.tools.lastInfo", "Ctrl+I", new Integer(SWT.MOD1 | 'I'), null);
|
||||
|
||||
subMenu = initMenu(menu, "menu.help");
|
||||
initMenuItem(subMenu, "menu.help.gettingStarted", new Integer(SWT.F1), initListener(HelpActions.GettingStarted.class));
|
||||
initMenuItem(subMenu, null, null, null);
|
||||
initMenuItem(subMenu, "menu.help.website", null, initListener(HelpActions.Website.class));
|
||||
initMenuItem(subMenu, "menu.help.forum", null, initListener(HelpActions.Forum.class));
|
||||
initMenuItem(subMenu, "menu.help.plugins", null, initListener(HelpActions.Plugins.class));
|
||||
initMenuItem(subMenu, null, null, null);
|
||||
initMenuItem(subMenu, "menu.help.cmdLine", null, null);
|
||||
initMenuItem(subMenu, null, null, null);
|
||||
initMenuItem(subMenu, "menu.help.checkVersion", null, initListener(HelpActions.CheckVersion.class));
|
||||
initMenuItem(subMenu, null, null, null);
|
||||
initMenuItem(subMenu, "menu.help.about", new Integer(SWT.F12), initListener(HelpActions.About.class));
|
||||
initMenuItem(subMenu, "menu.help.gettingStarted", !Platform.MAC_OS ? "F1" : null, new Integer(Platform.MAC_OS ? SWT.HELP : SWT.F1), initListener(HelpActions.GettingStarted.class));
|
||||
initMenuItem(subMenu, null, null, null, null);
|
||||
initMenuItem(subMenu, "menu.help.website", null, null, initListener(HelpActions.Website.class));
|
||||
initMenuItem(subMenu, "menu.help.forum", null, null, initListener(HelpActions.Forum.class));
|
||||
initMenuItem(subMenu, "menu.help.plugins", null, null, initListener(HelpActions.Plugins.class));
|
||||
initMenuItem(subMenu, null, null, null, null);
|
||||
initMenuItem(subMenu, "menu.help.cmdLine", null, null, null);
|
||||
initMenuItem(subMenu, null, null, null, null);
|
||||
initMenuItem(subMenu, "menu.help.checkVersion", null, null, initListener(HelpActions.CheckVersion.class));
|
||||
initMenuItem(subMenu, null, null, null, null);
|
||||
initMenuItem(subMenu, "menu.help.about", null, null, initListener(HelpActions.About.class));
|
||||
}
|
||||
|
||||
private void createCommandsMenuItems(Menu menu) {
|
||||
initMenuItem(menu, "menu.commands.details", null, initListener(CommandsActions.Details.class));
|
||||
initMenuItem(menu, null, null, null);
|
||||
initMenuItem(menu, "menu.commands.rescan", new Integer(SWT.CONTROL | 'R'), null);
|
||||
initMenuItem(menu, "menu.commands.delete", new Integer(SWT.DEL), initListener(CommandsActions.Delete.class));
|
||||
initMenuItem(menu, null, null, null);
|
||||
initMenuItem(menu, "menu.commands.copy", new Integer(SWT.CONTROL | 'C'), initListener(CommandsActions.CopyIP.class));
|
||||
initMenuItem(menu, "menu.commands.copyDetails", null, initListener(CommandsActions.CopyIPDetails.class));
|
||||
initMenuItem(menu, null, null, null);
|
||||
initMenuItem(menu, "menu.commands.details", null, null, initListener(CommandsActions.Details.class));
|
||||
initMenuItem(menu, null, null, null, null);
|
||||
initMenuItem(menu, "menu.commands.rescan", "Ctrl+R", new Integer(SWT.MOD1 | 'R'), null);
|
||||
initMenuItem(menu, "menu.commands.delete", "Del", new Integer(SWT.DEL), initListener(CommandsActions.Delete.class));
|
||||
initMenuItem(menu, null, null, null, null);
|
||||
initMenuItem(menu, "menu.commands.copy", "Ctrl+C", new Integer(SWT.MOD1 | 'C'), initListener(CommandsActions.CopyIP.class));
|
||||
initMenuItem(menu, "menu.commands.copyDetails", null, null, initListener(CommandsActions.CopyIPDetails.class));
|
||||
initMenuItem(menu, null, null, null, null);
|
||||
createOpenersMenu(menu);
|
||||
// initMenuItem(subMenu, "menu.commands.show", null, initListener());
|
||||
}
|
||||
@ -146,11 +149,11 @@ public class MainMenu {
|
||||
return (Listener) container.getComponentInstance(listenerClass);
|
||||
}
|
||||
|
||||
private static MenuItem initMenuItem(Menu parent, String label, Integer accelerator, Listener listener) {
|
||||
private static MenuItem initMenuItem(Menu parent, String label, String acceleratorText, Integer accelerator, Listener listener) {
|
||||
MenuItem menuItem = new MenuItem(parent, label == null ? SWT.SEPARATOR : SWT.PUSH);
|
||||
|
||||
if (label != null)
|
||||
menuItem.setText(Labels.getLabel(label));
|
||||
menuItem.setText(Labels.getLabel(label) + (acceleratorText != null ? "\t" + acceleratorText : ""));
|
||||
|
||||
if (accelerator != null)
|
||||
menuItem.setAccelerator(accelerator.intValue());
|
||||
@ -180,8 +183,8 @@ public class MainMenu {
|
||||
public OpenersMenu(Decorations parent, CommandsActions.EditOpeners editOpenersListener, CommandsActions.ShowOpenersMenu showOpenersMenuListener) {
|
||||
super(parent, SWT.DROP_DOWN);
|
||||
|
||||
initMenuItem(this, "menu.commands.open.edit", null, editOpenersListener);
|
||||
initMenuItem(this, null, null, null);
|
||||
initMenuItem(this, "menu.commands.open.edit", null, null, editOpenersListener);
|
||||
initMenuItem(this, null, null, null, null);
|
||||
|
||||
addListener(SWT.Show, showOpenersMenuListener);
|
||||
|
||||
@ -200,9 +203,9 @@ public class MainMenu {
|
||||
public FavoritesMenu(Decorations parent, FavoritesActions.Add addListener, FavoritesActions.Edit editListener, FavoritesActions.ShowMenu showFavoritesMenuListener) {
|
||||
super(parent, SWT.DROP_DOWN);
|
||||
|
||||
initMenuItem(this, "menu.favorites.add", new Integer(SWT.CONTROL | 'D'), addListener);
|
||||
initMenuItem(this, "menu.favorites.edit", null, editListener);
|
||||
initMenuItem(this, null, null, null);
|
||||
initMenuItem(this, "menu.favorites.add", "Ctrl+D", new Integer(SWT.MOD1 | 'D'), addListener);
|
||||
initMenuItem(this, "menu.favorites.edit", null, null, editListener);
|
||||
initMenuItem(this, null, null, null, null);
|
||||
|
||||
addListener(SWT.Show, showFavoritesMenuListener);
|
||||
}
|
||||
@ -217,9 +220,9 @@ public class MainMenu {
|
||||
public ColumnsMenu(Decorations parent, ColumnsActions.SortBy sortByListener) {
|
||||
super(parent, SWT.POP_UP);
|
||||
|
||||
initMenuItem(this, "menu.columns.sortBy", null, sortByListener);
|
||||
initMenuItem(this, "menu.columns.info", null, null);
|
||||
initMenuItem(this, "menu.columns.options", null, null);
|
||||
initMenuItem(this, "menu.columns.sortBy", null, null, sortByListener);
|
||||
initMenuItem(this, "menu.columns.info", null, null, null);
|
||||
initMenuItem(this, "menu.columns.options", null, null, null);
|
||||
}
|
||||
protected void checkSubclass() { } // allow extending of Menu class
|
||||
}
|
||||
|
||||
@ -5,6 +5,7 @@ package net.azib.ipscan.gui.actions;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
import net.azib.ipscan.config.Platform;
|
||||
import net.azib.ipscan.gui.UserErrorException;
|
||||
|
||||
/**
|
||||
@ -20,14 +21,12 @@ public class BrowserLauncher {
|
||||
* @param url
|
||||
*/
|
||||
public static void openURL(String url) {
|
||||
String osName = System.getProperty("os.name");
|
||||
|
||||
try {
|
||||
if (osName.startsWith("Windows")) {
|
||||
if (Platform.WINDOWS) {
|
||||
Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + url);
|
||||
}
|
||||
else
|
||||
if (osName.startsWith("Mac OS")) {
|
||||
if (Platform.MAC_OS) {
|
||||
Class fileMgr = Class.forName("com.apple.eio.FileManager");
|
||||
Method openURL = fileMgr.getDeclaredMethod("openURL", new Class[] { String.class });
|
||||
openURL.invoke(null, new Object[] { url });
|
||||
|
||||
@ -8,6 +8,7 @@ import java.io.FileWriter;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import net.azib.ipscan.config.Platform;
|
||||
import net.azib.ipscan.gui.UserErrorException;
|
||||
|
||||
/**
|
||||
@ -26,10 +27,9 @@ public class TerminalLauncher {
|
||||
* @param workingDir the working directory (or null)
|
||||
*/
|
||||
public static void launchInTerminal(String execString, File workingDir) {
|
||||
String osName = System.getProperty("os.name");
|
||||
|
||||
try {
|
||||
if (osName.startsWith("Windows")) {
|
||||
if (Platform.WINDOWS) {
|
||||
// generate a command file :-)
|
||||
File batFile = File.createTempFile("launch", ".cmd");
|
||||
batFile.deleteOnExit();
|
||||
|
||||
Loading…
Reference in New Issue
Block a user