Author: nextgens
Date: 2006-07-31 15:11:58 +0000 (Mon, 31 Jul 2006)
New Revision: 9838
Added:
trunk/apps/blueBunny/src/freenet/systray/BareBonesBrowserLaunch.java
Modified:
trunk/apps/blueBunny/src/freenet/systray/Systray.java
Log:
bluebunny: some code to test whether using BareBonesBrowserLaunch to spawn a
browser up is a good idea or not
Added: trunk/apps/blueBunny/src/freenet/systray/BareBonesBrowserLaunch.java
===================================================================
--- trunk/apps/blueBunny/src/freenet/systray/BareBonesBrowserLaunch.java
2006-07-31 13:31:39 UTC (rev 9837)
+++ trunk/apps/blueBunny/src/freenet/systray/BareBonesBrowserLaunch.java
2006-07-31 15:11:58 UTC (rev 9838)
@@ -0,0 +1,45 @@
+/////////////////////////////////////////////////////////
+//Bare Bones Browser Launch //
+//Version 1.5 //
+//December 10, 2005 //
+//Supports: Mac OS X, GNU/Linux, Unix, Windows XP //
+//Public Domain Software -- Free to Use as You Like //
+/////////////////////////////////////////////////////////
+package freenet.systray;
+
+import java.lang.reflect.Method;
+import javax.swing.JOptionPane;
+public class BareBonesBrowserLaunch {
+ private static final String errMsg = "Error attempting to launch web
browser";
+ public static void launch(String url) {
+ String osName = System.getProperty("os.name");
+ try {
+ if (osName.startsWith("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}
+ );
+ }
+ else if (osName.startsWith("Windows"))
Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + url);
+ else {
+ //assume Unix or Linux
+ String[] browsers = {"firefox", "opera",
"konqueror", "epiphany", "mozilla", "netscape" };
+ String browser = null;
+ for (int count = 0;
+ count < browsers.length && browser == null;
+ count++) if (Runtime.getRuntime().exec( new
String[] {
+ "which", browsers[count]}
+ ).waitFor() == 0) browser = browsers[count];
+ if (browser == null) throw new Exception("Could
not find web browser");
+ else Runtime.getRuntime().exec(new String[] {
+ browser, url}
+ );
+ }
+ }
+ catch (Exception e) {
+ JOptionPane.showMessageDialog(null, errMsg + ":\n" +
e.getLocalizedMessage());
+ }
+ }
+}
+
Modified: trunk/apps/blueBunny/src/freenet/systray/Systray.java
===================================================================
--- trunk/apps/blueBunny/src/freenet/systray/Systray.java 2006-07-31
13:31:39 UTC (rev 9837)
+++ trunk/apps/blueBunny/src/freenet/systray/Systray.java 2006-07-31
15:11:58 UTC (rev 9838)
@@ -13,18 +13,26 @@
import java.awt.event.MouseListener;
public class Systray {
- private static TrayIcon trayIcon;
-
+ private boolean isNodeAlive;
+
public static void main(String[] args) {
+ Systray s = new Systray();
+ }
+
+ Systray(){
+ this.isNodeAlive = true;
+
if (SystemTray.isSupported()) {
-
+ final TrayIcon trayIcon;
SystemTray tray = SystemTray.getSystemTray();
- Image image =
Toolkit.getDefaultToolkit().getImage("freenet/systray/resources/logo.jpg");
+ Image image =
Toolkit.getDefaultToolkit().getImage("logo.jpg");
MouseListener mouseListener = new MouseListener() {
public void mouseClicked(MouseEvent e) {
- System.out.println("Tray Icon - Mouse
clicked!");
+ System.out.println("Tray Icon - Mouse
clicked!");
+ if(isNodeAlive && (e.getButton() ==
MouseEvent.BUTTON1))
+
BareBonesBrowserLaunch.launch("http://127.0.0.1:8888/");
}
public void mouseEntered(MouseEvent e) {
@@ -50,11 +58,39 @@
System.exit(0);
}
};
+
+ ActionListener openFproxyListener = new
ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+
BareBonesBrowserLaunch.launch("http://127.0.0.1:8888/");
+ }
+ };
+
+ ActionListener openWebsiteListener = new
ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+
BareBonesBrowserLaunch.launch("http://freenetproject.org/");
+ }
+ };
+
+ ActionListener openConfigListener = new
ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+
BareBonesBrowserLaunch.launch("http://127.0.0.1:8888/config/");
+ }
+ };
PopupMenu popup = new PopupMenu();
- MenuItem defaultItem = new MenuItem("Exit");
- defaultItem.addActionListener(exitListener);
- popup.add(defaultItem);
+ MenuItem exitItem = new MenuItem("Exit");
+ MenuItem openFproxyItem = new MenuItem("Browse
Freenet");
+ MenuItem openWebsiteItem = new MenuItem("Browse the
Freenet's project website");
+ MenuItem openConfigItem = new MenuItem("Configure the
node");
+ exitItem.addActionListener(exitListener);
+ openFproxyItem.addActionListener(openFproxyListener);
+ openWebsiteItem.addActionListener(openWebsiteListener);
+ openConfigItem.addActionListener(openConfigListener);
+ openConfigItem.setEnabled(false);
+ popup.add(exitItem);
+ popup.add(openFproxyItem);
+ popup.add(openWebsiteItem);
+ popup.add(openConfigItem);
trayIcon = new TrayIcon(image, "Tray Demo", popup);
@@ -65,7 +101,8 @@
TrayIcon.MessageType.INFO);
}
};
-
+
+ trayIcon.setImage(image);
trayIcon.setImageAutoSize(true);
trayIcon.addActionListener(actionListener);
trayIcon.addMouseListener(mouseListener);
@@ -76,6 +113,7 @@
System.err.println("TrayIcon could not be
added.");
}
+
} else {
System.err.println("Systray isn't supported on your
system.");
}