Author: nextgens
Date: 2006-08-16 16:21:34 +0000 (Wed, 16 Aug 2006)
New Revision: 10121
Added:
trunk/apps/blueBunny/src/freenet/systray/resources/logo_connected.jpg
trunk/apps/blueBunny/src/freenet/systray/resources/logo_disconnected.jpg
Removed:
trunk/apps/blueBunny/src/freenet/systray/resources/logo.jpg
Modified:
trunk/apps/blueBunny/src/freenet/systray/Systray.java
Log:
Some artwork on the bunny :XD
Modified: trunk/apps/blueBunny/src/freenet/systray/Systray.java
===================================================================
--- trunk/apps/blueBunny/src/freenet/systray/Systray.java 2006-08-16
15:42:22 UTC (rev 10120)
+++ trunk/apps/blueBunny/src/freenet/systray/Systray.java 2006-08-16
16:21:34 UTC (rev 10121)
@@ -1,6 +1,7 @@
package freenet.systray;
import java.awt.AWTException;
+import java.awt.Color;
import java.awt.Image;
import java.awt.MenuItem;
import java.awt.PopupMenu;
@@ -13,14 +14,33 @@
import java.awt.event.MouseListener;
import java.io.File;
import java.io.IOException;
+import java.net.Socket;
+import java.net.SocketException;
+import java.net.SocketTimeoutException;
import freenet.config.FilePersistentConfig;
public class Systray {
- private boolean isNodeAlive;
+ private boolean isConnected;
private static FilePersistentConfig cfg;
+ private final TrayIcon trayIcon;
+ MenuItem startItem;
+ MenuItem stopItem;
+ private final Image _imageConnected =
Toolkit.getDefaultToolkit().getImage(this.getClass().getResource("/freenet/systray/resources/logo_connected.jpg"));
+ private final Image _imageDisconnected =
Toolkit.getDefaultToolkit().getImage(this.getClass().getResource("/freenet/systray/resources/logo_disconnected.jpg"));
+ Image image = _imageDisconnected;
+
+ private final int _port = 9184;
+ private final String _host = "127.0.0.1";
+
public static void main(String[] args) {
+
+ if(!SystemTray.isSupported()){
+ System.err.println("Systray isn't supported on your
system.");
+ System.exit(0);
+ }
+
// Load the config
File configFilename = new File("systray.ini");
try{
@@ -34,110 +54,151 @@
cfg.store();
//SubConfig loggingConfig = new SubConfig("node", cfg);
-
Systray s = new Systray();
}
Systray(){
- this.isNodeAlive = true;
-
- if (SystemTray.isSupported()) {
- final TrayIcon trayIcon;
- SystemTray tray = SystemTray.getSystemTray();
- Image image =
Toolkit.getDefaultToolkit().getImage(this.getClass().getResource("/freenet/systray/resources/logo.jpg"));
+ //TODO: detect properly and REMOVE
+ this.isConnected = isConnected();
+ // trayIcon.displayMessage("Freenet 0.7", isNodeAlive ?
"Connected to FRED !" : "Unable to connect to FRED on "+_host+":"+_port,
+ // TrayIcon.MessageType.INFO);
+
+ SystemTray tray = SystemTray.getSystemTray();
+ PopupMenu popup = new PopupMenu();
+ trayIcon = new TrayIcon(image, "Freenet 0.7", popup);
- MouseListener mouseListener = new MouseListener() {
+ MouseListener mouseListener = new MouseListener() {
- public void mouseClicked(MouseEvent e) {
- System.out.println("Tray Icon - Mouse
clicked!");
- if(isNodeAlive && (e.getButton() == 1))
-
BareBonesBrowserLaunch.launch("http://127.0.0.1:8888/");
- }
-
- public void mouseEntered(MouseEvent e) {
- System.out.println("Tray Icon - Mouse
entered!");
- }
-
- public void mouseExited(MouseEvent e) {
- System.out.println("Tray Icon - Mouse
exited!");
- }
-
- public void mousePressed(MouseEvent e) {
- System.out.println("Tray Icon - Mouse
pressed!");
- }
-
- public void mouseReleased(MouseEvent e) {
- System.out.println("Tray Icon - Mouse
released!");
- }
- };
-
- ActionListener exitListener = new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- System.out.println("Exiting...");
- System.exit(0);
- }
- };
-
- ActionListener openFproxyListener = new
ActionListener() {
- public void actionPerformed(ActionEvent e) {
+ public void mouseClicked(MouseEvent e) {
+ System.out.println("Tray Icon - Mouse
clicked!");
+ if(isConnected && (e.getButton() == 1))
+ System.out.println("Starting the
browser");
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 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.addSeparator();
- popup.add(openFproxyItem);
- popup.add(openWebsiteItem);
- popup.addSeparator();
- popup.add(openConfigItem);
- popup.setLabel("Freenet 0.7");
+ public void mouseEntered(MouseEvent e) {}
+ public void mouseExited(MouseEvent e) {}
+ public void mousePressed(MouseEvent e) {}
+ public void mouseReleased(MouseEvent e) {}
+ };
- trayIcon = new TrayIcon(image, "Freenet 0.7", popup);
+ ActionListener exitListener = new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ System.out.println("Exiting...");
+ cfg.store();
+ System.exit(0);
+ }
+ };
+
+ ActionListener startListener = new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ connect();
+ }
+ };
+
+ ActionListener stopListener = new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ disconnect();
+ }
+ };
- ActionListener actionListener = new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- trayIcon.displayMessage("Action Event",
- "An Action Event Has
Been Peformed!",
-
TrayIcon.MessageType.INFO);
- }
- };
-
- trayIcon.setImage(image);
- trayIcon.setImageAutoSize(true);
- trayIcon.addActionListener(actionListener);
- trayIcon.addMouseListener(mouseListener);
+ ActionListener openFproxyListener = new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+
BareBonesBrowserLaunch.launch("http://127.0.0.1:8888/");
+ }
+ };
- try {
- tray.add(trayIcon);
- } catch (AWTException e) {
- System.err.println("TrayIcon could not be
added.");
+ 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/");
+ }
+ };
+
+ startItem = new MenuItem("Start the node up!");
+ stopItem = new MenuItem("Shut the node down!");
+ 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);
+ startItem.addActionListener(startListener);
+ stopItem.addActionListener(stopListener);
+ openFproxyItem.addActionListener(openFproxyListener);
+ openWebsiteItem.addActionListener(openWebsiteListener);
+ openConfigItem.addActionListener(openConfigListener);
+ openConfigItem.setEnabled(false);
+ popup.add(startItem);
+ popup.add(stopItem);
+ popup.add(exitItem);
+ popup.addSeparator();
+ popup.add(openFproxyItem);
+ popup.add(openWebsiteItem);
+ popup.addSeparator();
+ popup.add(openConfigItem);
+ popup.setLabel("Freenet 0.7");
+
+ refresh();
+
+ ActionListener actionListener = new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ trayIcon.displayMessage("Action Event",
+ "An Action Event Has Been
Peformed!",
+ TrayIcon.MessageType.INFO);
+ }
+ };
- } else {
- System.err.println("Systray isn't supported on your
system.");
+ trayIcon.addActionListener(actionListener);
+ trayIcon.addMouseListener(mouseListener);
+
+ try {
+ tray.add(trayIcon);
+ } catch (AWTException e) {
+ System.err.println("TrayIcon could not be added.");
}
}
+
+ private boolean isConnected(){
+ Socket pingSocket;
+ try{
+ pingSocket = new Socket(_host, _port);
+ pingSocket.setSoTimeout(500);
+ // FIXME: verify we are talking to fred
+ pingSocket.close();
+ } catch(SocketTimeoutException ste){
+ return true;
+ } catch(SocketException e){
+ return false;
+ } catch (IOException ie){
+ return false;
+ }
+ return true;
+ }
+
+ private void disconnect(){
+ isConnected = true;
+ System.out.println("Stop...");
+ trayIcon.displayMessage("Freenet 0.7", "Unable to connect to
FRED on "+_host+":"+_port,TrayIcon.MessageType.WARNING);
+ refresh();
+ }
+
+ private void connect(){
+ isConnected = false;
+ System.out.println("Start...");
+ trayIcon.displayMessage("Freenet 0.7", "Connected to FRED on
"+_host+":"+_port,TrayIcon.MessageType.INFO);
+ refresh();
+ }
+
+ private void refresh(){
+ startItem.setEnabled(isConnected);
+ stopItem.setEnabled(!isConnected);
+ image = !isConnected ? _imageConnected : _imageDisconnected;
+ trayIcon.setImage(image);
+ trayIcon.setImageAutoSize(true);
+ }
}
Deleted: trunk/apps/blueBunny/src/freenet/systray/resources/logo.jpg
===================================================================
(Binary files differ)
Copied: trunk/apps/blueBunny/src/freenet/systray/resources/logo_connected.jpg
(from rev 10068, trunk/apps/blueBunny/src/freenet/systray/resources/logo.jpg)
Added: trunk/apps/blueBunny/src/freenet/systray/resources/logo_disconnected.jpg
===================================================================
(Binary files differ)
Property changes on:
trunk/apps/blueBunny/src/freenet/systray/resources/logo_disconnected.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream