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

📄 mainwindow.java

📁 aglet的部分源码
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
package com.ibm.aglets.tahiti;/* * @(#)MainWindow.java *  * IBM Confidential-Restricted *  * OCO Source Materials *  * 03L7246 (c) Copyright IBM Corp. 1996, 1998 *  * The source code for this program is not published or otherwise * divested of its trade secrets, irrespective of what has been * deposited with the U.S. Copyright Office. */import com.ibm.aglet.Aglet;import com.ibm.aglet.AgletInfo;import com.ibm.aglet.Message;import com.ibm.aglet.InvalidAgletException;import com.ibm.aglet.AgletException;import com.ibm.aglet.AgletID;import com.ibm.aglet.AgletProxy;import com.ibm.aglet.system.ContextEvent;import com.ibm.aglet.system.AgletRuntime;import com.ibm.awb.misc.Resource;// import com.ibm.aglets.agletbox.AgletBox;import java.security.AccessController;import java.security.PrivilegedAction;import java.security.PrivilegedExceptionAction;import java.security.cert.Certificate;import java.awt.*;import java.awt.event.*;import java.util.Date;import java.util.Enumeration;import java.util.Vector;import java.util.Hashtable;import java.util.ResourceBundle;import java.util.StringTokenizer;import java.net.URL;import java.io.InputStream;import java.io.DataInputStream;import java.io.IOException;/** * The <tt>MainWindow</tt> represents the main window for the Tahiti aglet * viewer. *  * @version     1.08    $Date: 2002/01/09 05:25:37 $ * @author      Danny B. Lange * @author      Mitsuru Oshima * @author      Yoshiaki Mima *//* * Aglets List *  * Ordered by Keys "Creation time", "Class name" *  */final class MainWindow extends Frame implements ItemListener, ActionListener {	static ResourceBundle bundle = null;	static {		bundle = 			(ResourceBundle)AccessController				.doPrivileged(new PrivilegedAction() {			public Object run() {				return ResourceBundle.getBundle("tahiti");			} 		});	} 	/*	 * Aglet menu - menu items and shortcut buttons.	 */	private MenuItem _dialogMenuItem = new MenuItem();	private MenuItem _disposeMenuItem = new MenuItem();	private MenuItem _cloneMenuItem = new MenuItem();	private MenuItem _infoMenuItem = new MenuItem();	private MenuItem _killMenuItem = new MenuItem();	// 	private Button _disposeButton = new Button();	private Button _dialogButton = new Button();	private Button _cloneButton = new Button();	private Button _infoButton = new Button();	/*	 * Mobility menu - menu items and shortcut buttons.	 */	private MenuItem _dispatchMenuItem = new MenuItem();	private Button _dispatchButton = new Button();	// 	private MenuItem _deactivateMenuItem = new MenuItem();	private MenuItem _activateMenuItem = new MenuItem();	// 	private MenuItem _javaConsoleMenuItem = new MenuItem();	// 	private Tahiti _tahiti = null;	// 	private Vector _itemList = new Vector();	Hashtable text = new Hashtable();	// 	Panel _buttonPanel = new Panel();	List _agletList = new List(0, false);	boolean shrink = false;	/* display options */	static final int ORDER_CREATIONTIME = 0;	static final int ORDER_CLASSNAME = 1;	// 	private int viewOrder = ORDER_CREATIONTIME;	private boolean isAscent = true;	private boolean isCompact = false;	/* package */	LogWindow logWindow = new LogWindow();	/*	 * Tahiti event constants	 */	static final int TAHITI_EVENT = 10000;	static final int CLONE = TAHITI_EVENT + 1;	static final int CREATE = TAHITI_EVENT + 2;	static final int DISPOSE = TAHITI_EVENT + 3;	static final int DISPATCH = TAHITI_EVENT + 4;	static final int RETRACT = TAHITI_EVENT + 5;	static final int KILL = TAHITI_EVENT + 6;	static final int DEACTIVATE = TAHITI_EVENT + 7;	static final int ACTIVATE = TAHITI_EVENT + 8;	static final int DIALOG = TAHITI_EVENT + 9;	static final int GET_AGLETS = TAHITI_EVENT + 10;	// 	static final int EXIT = TAHITI_EVENT + 15;	static final int SHUTDOWN = TAHITI_EVENT + 16;	static final int REBOOT = TAHITI_EVENT + 17;	// 	static final int AGLET_INFO = TAHITI_EVENT + 20;	static final int SHOW_LOG = TAHITI_EVENT + 21;	static final int MEMORY_USAGE = TAHITI_EVENT + 22;	static final int GC = TAHITI_EVENT + 23;	static final int SHOW_THREADS = TAHITI_EVENT + 24;	static final int SHOW_DEBUG = TAHITI_EVENT + 25;	static final int SHOW_REFTABLE = TAHITI_EVENT + 26;	static final int SHOW_JAVACON = TAHITI_EVENT + 27;	// 	static final int PREFERENCE1 = TAHITI_EVENT + 30;	static final int PREFERENCE2 = TAHITI_EVENT + 31;	static final int PREFERENCE3 = TAHITI_EVENT + 32;	static final int PREFERENCE4 = TAHITI_EVENT + 33;	// 	static final int ABOUT_AGLETS = TAHITI_EVENT + 35;	static final int ABOUT_TAHITI = TAHITI_EVENT + 36;	// 	static final int SHRINK = TAHITI_EVENT + 40;	// 	static final int TAHITI_LAST_EVENT = TAHITI_EVENT + 41;	// 	class URLOpener implements ActionListener {		private String url;		URLOpener(String u) {			url = u;		}		public void actionPerformed(ActionEvent ev) {			showURL(url);		} 	}	;	class EventIssuer implements ActionListener {		private int _type = 0;		EventIssuer(int t) {			_type = t;		}		public void actionPerformed(ActionEvent ev) {			switch (_type) {			case SHRINK:				Button b = (Button)ev.getSource();				if (shrink) {					shrink = false;					b.setLabel("><");					showButtons();					updateProxyList();					_agletList.setVisible(true);					restoreSize();					doLayout();					_buttonPanel.doLayout();				} else {					b.setLabel("<>");					saveSize();					hideButtons();					_agletList.setVisible(false);					setSize(350, 							getBounds().height 							- _agletList.getBounds().height);					doLayout();					_buttonPanel.doLayout();					shrink = true;				} 				break;			case GC:				System.gc();				break;			case DIALOG:				dialog(getSelectedProxy());				break;			case SHOW_THREADS:				showThreads();				break;			case SHOW_DEBUG:				com.ibm.awb.misc.Debug.list(System.err);			case SHOW_REFTABLE:				com.ibm.aglets.RemoteAgletRef.showRefTable(System.err);				break;			case GET_AGLETS:				getAglets();				break;			case ACTIVATE:				activateAglet(getSelectedProxy());				break;			case KILL:				AgletProxy p = getSelectedProxy();				if (p != null) {					try {						AgletRuntime.getAgletRuntime().killAglet(p);					} catch (Exception ex) {						ex.printStackTrace();					} 				} 				break;			}		} 	}	class DialogOpener implements ActionListener {		private int _type = 0;		DialogOpener(int type) {			_type = type;		}		public void actionPerformed(ActionEvent ev) {			final AgletProxy p = getSelectedProxy();			AccessController.doPrivileged(new PrivilegedAction() {				public Object run() {					TahitiDialog d = null;					switch (_type) {					case CREATE:						d = CreateAgletDialog.getInstance(MainWindow.this);						d.popupAtCenterOfParent();						break;					case RETRACT:						d = RetractAgletDialog.getInstance(MainWindow.this);						d.popupAtCenterOfParent();						break;					case DISPOSE:						AgletProxy pp[] = new AgletProxy[1];						pp[0] = p;						d = new DisposeAgletDialog(MainWindow.this, pp);						d.popupAtCenterOfParent();						break;					case CLONE:						d = new CloneAgletDialog(MainWindow.this, p);						d.popupAtCenterOfParent();						break;					case DISPATCH:						d = new DispatchAgletDialog(MainWindow.this, p);						d.popupAtCenterOfParent();						break;					case DEACTIVATE:						d = new DeactivateAgletDialog(MainWindow.this, p);						d.popupAtCenterOfParent();						break;					case AGLET_INFO:						d = new PropertiesDialog(MainWindow.this, 												 getSelectedProxy());						d.popupAtCenterOfParent();						break;					case MEMORY_USAGE:						d = MemoryUsageDialog.getInstance(MainWindow.this);						d.popupAtCenterOfParent();						break;					case SHOW_LOG:						logWindow.pack();						if (logWindow.getLocation().x == 0 								&& logWindow.getLocation().y == 0) {							Dimension dim = getToolkit().getScreenSize();							Dimension size = logWindow.getSize();							logWindow								.setLocation((dim.width - size.width) / 2, 											 (dim.height - size.height) / 2);						} 						logWindow.show();						break;					case SHOW_JAVACON:						if (com.ibm.awb.launcher.Agletsd.console != null) {							com.ibm.awb.launcher.Agletsd.console.show();						} 						break;					case PREFERENCE1:						d = GeneralConfigDialog.getInstance(MainWindow.this);						d.popupAtCenterOfParent();						break;					case PREFERENCE2:						d = NetworkConfigDialog.getInstance(MainWindow.this);						d.popupAtCenterOfParent();						break;					case PREFERENCE3:						d = SecurityConfigDialog.getInstance(MainWindow.this);						d.popupAtCenterOfParent();						break;					case PREFERENCE4:						d = ServerPrefsDialog.getInstance(MainWindow.this);						d.popupAtCenterOfParent();						break;					case ABOUT_TAHITI:						Resource res = Resource.getResourceFor("tahiti");						ResourceBundle bundle = null;						bundle = ResourceBundle.getBundle("tahiti");						d = 							TahitiDialog								.message(MainWindow.this, 										 bundle.getString("title.about_tahiti"), 										 res.getString("tahiti.version") 										 + "\n" 										 + bundle											 .getString("message.copyright"));						d.popupAtCenterOfParent();						break;					case ABOUT_AGLETS:						res = Resource.getResourceFor("aglets");						String msg = "Aglets Version : " 									 + res.getString("aglets.version") + "\n" 									 + "Aglets API : " + Aglet.MAJOR_VERSION 									 + "." + Aglet.MINOR_VERSION + "\n" 									 + "Aglet Transfer Format : " 									 + res.getString("aglets.stream.version") 									 + "\n" + "\n" 									 + res.getString("aglets.copyright");						d = TahitiDialog.message(MainWindow.this, 												 "About Aglets", msg);						d.popupAtCenterOfParent();						break;					case EXIT:						d = ShutdownDialog.getInstance(MainWindow.this);						d.popupAtCenterOfParent();						break;					}					return null;				} 			});		} 	}	// -------------------------------------------------------------------	// -- Message line	// Size of message line.--	// 	private int _messageLineSize = 60;	// The message line.	// 	private TextField _messageLine = new TextField(_messageLineSize);	public class TahitiEventHandler implements Runnable {		int _type;		AgletProxy _proxy;		long _time;		String _remoteURL;		String _codebase;		String _name;		boolean _reload;		TahitiEventHandler(int type, AgletProxy p) {			_type = type;			_proxy = p;		}		TahitiEventHandler(AgletProxy p, long time) {			_type = DEACTIVATE;			_proxy = p;			_time = time;		}		TahitiEventHandler(AgletProxy p, String dest) {			_type = DISPATCH;			_proxy = p;			_remoteURL = dest;		}		TahitiEventHandler(String codebase, String name, boolean reload) {			_type = CREATE;			_codebase = codebase;			_name = name;			_reload = reload;		}		public void run() {			com.ibm.awb.misc.Debug.start();			com.ibm.awb.misc.Debug.check();			try {				perform();			} catch (Error ex) {				ex.printStackTrace();				TahitiDialog					.message(MainWindow.this, "Error", ex.getClass()						.getName() + "\n" + ex.getMessage())							.popupAtCenterOfParent();			} catch (Exception ex) {				ex.printStackTrace();				TahitiDialog					.message(MainWindow.this, "Exception", ex.getClass()						.getName() + "\n" + ex.getMessage())							.popupAtCenterOfParent();			} 			finally {				com.ibm.awb.misc.Debug.end();			} 		} 		private void perform() throws Exception {			switch (_type) {			case CLONE:				_proxy.clone();				break;			case DISPOSE:				_proxy.dispose();				break;			case CREATE:				if (!"".equals(_codebase)) {					while (_codebase.toLowerCase().startsWith("http://") 

⌨️ 快捷键说明

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