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.");
                }


Reply via email to