📄 systemtraygui.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 + -