⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 systemtraygui.java

📁 这是linux下ssl vpn的实现程序
💻 JAVA
字号:
/*
 *  SSL-Explorer
 *
 *  Copyright (C) 2003-2006 3SP LTD. All Rights Reserved
 *
 *  This program is free software; you can redistribute it and/or
 *  modify it under the terms of the GNU General Public License
 *  as published by the Free Software Foundation; either version 2 of
 *  the License, or (at your option) any later version.
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public
 *  License along with this program; if not, write to the Free Software
 *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */
			
package com.sslexplorer.vpn.client;

import snoozesoft.systray4j.*;
import java.net.*;
import java.awt.Component;
import java.awt.event.*;

import com.sslexplorer.vpn.util.BrowserLauncher;

public class SystemTrayGUI implements VPNClientGUI {

  final int IDLE_ICON = 0;
  final int TX_ICON = 1;
  final int RX_ICON = 2;
  final int TXRX_ICON = 3;
  final int DISCONNECTED_ICON = 4;

  SysTrayMenuIcon[] icons;
  SysTrayMenu systemTray;

  VPNClientGUIListener listener;

  public SystemTrayGUI() {

  }

  public void init(VPNClientGUIListener listener) {


    icons = new SysTrayMenuIcon[5];

    URL url = getClass().getResource("/images/idle.ico");
    icons[IDLE_ICON] = new SysTrayMenuIcon(url);

    url = getClass().getResource("/images/tx.ico");
    icons[TX_ICON] = new SysTrayMenuIcon(url);

    url = getClass().getResource("/images/rx.ico");
    icons[RX_ICON] = new SysTrayMenuIcon(url);

    url = getClass().getResource("/images/txrx.ico");
    icons[TXRX_ICON] = new SysTrayMenuIcon(url);

    url = getClass().getResource("/images/disconnected.ico");
    icons[DISCONNECTED_ICON] = new SysTrayMenuIcon(url);

    systemTray = new SysTrayMenu(icons[IDLE_ICON]);

    this.listener = listener;


    SysTrayMenuItem exit = new SysTrayMenuItem("Exit");
      exit.addSysTrayMenuListener(new SysTrayMenuAdapter() {
        public void menuItemSelected(SysTrayMenuEvent evt) {
          SystemTrayGUI.this.listener.exit();
        }
      });

    SysTrayMenuItem open = new SysTrayMenuItem("Open Browser");
      open.addSysTrayMenuListener(new SysTrayMenuAdapter() {
        public void menuItemSelected(SysTrayMenuEvent evt) {
          SystemTrayGUI.this.listener.open();
        }
      });  	      
      
    /* DEBUG */SysTrayMenuItem console = new SysTrayMenuItem("Debug Console");
    /* DEBUG */console.addSysTrayMenuListener(new SysTrayMenuAdapter() {
   	/* DEBUG */ public void menuItemSelected(SysTrayMenuEvent evt) {
   	/* DEBUG */      SystemTrayGUI.this.listener.console();
   	/* DEBUG */ }
   	/* DEBUG */});         
      
    SysTrayMenuItem ports = new SysTrayMenuItem("Tunnel Monitor");
    ports.addSysTrayMenuListener(new SysTrayMenuAdapter() {
        public void menuItemSelected(SysTrayMenuEvent evt) {
          SystemTrayGUI.this.listener.ports();
        }
      });

    systemTray.addItem(exit);
    systemTray.addSeparator();
    systemTray.addItem(open);
    systemTray.addItem(ports);
    /* DEBUG */systemTray.addItem(console);
  }


  public void addMenuItem(final AgentAction action) {
	  
	    SysTrayMenuItem item = new SysTrayMenuItem(action.getAction());
		item.addSysTrayMenuListener(new SysTrayMenuAdapter() {
			public void menuItemSelected(SysTrayMenuEvent evt) {
				action.actionPerformed();
			}
		});	  
  }
  
  public void showIdle() {
    systemTray.setIcon(icons[IDLE_ICON]);
  }

  public void showDisconnected() {
    systemTray.setIcon(icons[DISCONNECTED_ICON]);
  }

  public void showTx() {
    systemTray.setIcon(icons[TX_ICON]);
  }

  public void showRx() {
    systemTray.setIcon(icons[RX_ICON]);
  }

  public void showTxRx() {
    systemTray.setIcon(icons[TXRX_ICON]);
  }

  public void setInfo(String info) {
    systemTray.setToolTip(info);
  }

  /* (non-Javadoc)
   * @see com.sslexplorer.vpn.client.VPNClientGUI#getGUIComponent()
   */
  public Component getGUIComponent() {
    return null;
  }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -