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

📄 mainwindow.java

📁 aglet的部分源码
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
						   && _codebase.endsWith("/")) {						_codebase = _codebase.substring(0, 														_codebase.length() 														- 1);					} 				} 				URL url = !_codebase.equals("") ? new URL(_codebase) : null;				if (_reload) {					Tahiti.CONTEXT.clearCache(null);				} 				Tahiti.CONTEXT.createAglet(url, _name, null);				// itrptWin.waitForDisplay();				// itrptWin.dispose();				// update list				break;			case DISPATCH:				// String key = _remoteURL + " " +				// _proxy.getAgletClassName() + " " +				// (new Date()).toString().substring(0, 20).trim();				// String aid_str = _proxy.getAgletID().toString();				_proxy.dispatch(new URL(_remoteURL));				// itrptWin.waitForDisplay();				// itrptWin.dispose();				break;			case RETRACT:				AgletInfo info = _proxy.getAgletInfo();				// System.out.println(info);				Tahiti.CONTEXT.retractAglet(new URL(_proxy.getAddress()), 											info.getAgletID());				// itrptWin.waitForDisplay();				// itrptWin.dispose();				break;			case DEACTIVATE:				_proxy.deactivate(_time * 1000);				break;			case ACTIVATE:				if (_proxy != null && _proxy.isValid() 						&& _proxy.isActive() == false) {					_proxy.activate();				} 				break;			default:			}		} 	}	/*	 * Constructs the instance of the main window for the	 * Tahiti Aglet viewer.	 */	MainWindow(Tahiti tahiti) {		_tahiti = tahiti;		Util.setFont(this);		Util.setBackground(this);		Util.setFixedFont(_agletList);		TahitiItem.init();		_agletList.setBackground(Color.white);        _agletList.setForeground(Color.black);		// Makes the menu bar.		setMenuBar(makeMenuBar());		// Creates the panels.		GridBagLayout grid = new GridBagLayout();		GridBagConstraints cns = new GridBagConstraints();		setLayout(grid);		cns.gridwidth = GridBagConstraints.REMAINDER;		cns.fill = GridBagConstraints.NONE;		cns.anchor = GridBagConstraints.WEST;		cns.weightx = 1.0;		cns.weighty = 0.0;		Panel p = makeButtonPanel();		grid.setConstraints(p, cns);		add(p);		cns.weighty = 1.0;		cns.fill = GridBagConstraints.BOTH;		cns.anchor = GridBagConstraints.CENTER;		grid.setConstraints(_agletList, cns);		addListeners();		add(_agletList);		Resource tahiti_res = Resource.getResourceFor("tahiti");		shrink = tahiti_res.getBoolean("tahiti.window.shrinked", false);		if (shrink) {			_agletList.setVisible(false);		} 		cns.gridwidth = GridBagConstraints.REMAINDER;		cns.weightx = 1.0;		cns.weighty = 0.0;		cns.fill = GridBagConstraints.HORIZONTAL;		grid.setConstraints(_messageLine, cns);		add(_messageLine);		_messageLine.setText("Tahiti - The Aglet Viewer is Running...");		_messageLine.setBackground(Color.lightGray);		_messageLine.setEditable(false);		updateGUIState();		AgletRuntime runtime = AgletRuntime.getAgletRuntime();		String hosting = runtime.getServerAddress();		String ownerName = runtime.getOwnerName();		if (ownerName == null) {			ownerName = "NO USER";		} 		Resource aglets_res = Resource.getResourceFor("aglets");		boolean bsecure = aglets_res.getBoolean("aglets.secure", true);		Resource atp_res = Resource.getResourceFor("atp");		boolean brunning = true;		if (atp_res != null) {			brunning = atp_res.getBoolean("atp.server", false);		} 		setTitle("Tahiti: The Aglet Viewer [" + hosting + " (" + ownerName 				 + ")" + (brunning ? "" : " : NOT RUNNING") + " ]" 				 + (bsecure ? "" : " - << UNSECURE MODE >>"));	}	public void actionPerformed(ActionEvent ev) {		int selected[] = _agletList.getSelectedIndexes();		for (int i = 0; i < selected.length; i++) {			AgletProxy p = 				((TahitiItem)_itemList.elementAt(selected[i]))					.getAgletProxy();			if (p.isState(Aglet.INACTIVE)) {				activateAglet(p);			} else if (p.isState(Aglet.ACTIVE)) {				dialog(p);			} 		} 	}	public void activateAglet(AgletProxy p) {		new Thread(new TahitiEventHandler(ACTIVATE, p)).start();	}	private void addListeners() {		addWindowListener(new WindowAdapter() {			public void windowClosing(WindowEvent e) {				TahitiDialog dialog = 					ShutdownDialog.getInstance(MainWindow.this);				dialog.popupAtCenterOfParent();			} 		});		_agletList.addItemListener(this);		_agletList.addActionListener(this);	}	// Clears the message line.	// 	private void clearMessage() {		_messageLine.setText("");	}	public void cloneAglet(AgletProxy p) {		new Thread(new TahitiEventHandler(CLONE, p)).start();	}	public void createAglet(String codebase, String name, boolean reload) {		new Thread(new TahitiEventHandler(codebase, name, reload)).start();	}	public void deactivateAglet(AgletProxy p, long time) {		new Thread(new TahitiEventHandler(p, time)).start();	}	void dialog(AgletProxy proxy) {		try {			proxy.sendAsyncMessage(new Message("dialog"));		} catch (InvalidAgletException ex) {			setMessage(ex.getMessage());		} 	}	public void dispatchAglet(AgletProxy p, String dest) {		new Thread(new TahitiEventHandler(p, dest)).start();	}	public void disposeAglet(AgletProxy p) {		new Thread(new TahitiEventHandler(DISPOSE, p)).start();	}	/*	 * Retract aglets from an Aglet box	 */	void getAglets() {		/*		 * try {		 * AgletBox.update(Tahiti.CONTEXT);		 * } catch (Exception e) {		 * setMessage("AgletBox: " + e.getMessage());		 * }		 */	}	// Returns an Aglet's item text line for the Aglet list.	// 	/*	 * private String getItemText(AgletProxy proxy) {	 * StringBuffer buffer = new StringBuffer();	 * try {	 * AgletInfo info = proxy.getAgletInfo();	 * if (proxy.isValid() == false) {	 * return "InvalidAglet";	 * }	 * if (proxy.isActive() == false) {	 * buffer.append("[deactivated]");	 * }	 * buffer.append(new Date(info.getCreationTime()));	 * buffer.append(" " + info.getAgletClassName() + ' ');	 * String s = (String) text.get(proxy);	 * buffer.append(" " + (s == null ? " " : s));	 * } catch (InvalidAgletException ex) {	 * return "InvalidAglet";	 * } catch (RuntimeException ex) {	 * ex.printStackTrace();	 * } finally {	 * }	 * return buffer.toString();	 * }	 */	private String getItemText(TahitiItem tahitiItem) {		StringBuffer buffer = new StringBuffer();		buffer.append(tahitiItem.getText());		AgletProxy proxy = tahitiItem.getAgletProxy();		String s = (String)text.get(proxy);		buffer.append(" " + (s == null ? " " : s));		return buffer.toString();	}	public Dimension getPreferredSize() {		Resource res = Resource.getResourceFor("tahiti");		if (!shrink) {			return new Dimension(res.getInteger("tahiti.window.width", 545), 								 res.getInteger("tahiti.window.height", 350));		} else {			return new Dimension(res.getInteger("tahiti.window.s_width", 545), 								 res.getInteger("tahiti.window.s_height", 												350));		} 	}	AgletProxy[] getSelectedProxies() {		int selected[] = _agletList.getSelectedIndexes();		AgletProxy p[] = new AgletProxy[selected.length];		for (int i = 0; i < p.length; i++) {			p[i] = 				((TahitiItem)_itemList.elementAt(selected[i]))					.getAgletProxy();		} 		return p;		/*		 * if (selected != -1)		 * return (AgletProxy)_proxyList.elementAt(selected);		 * else		 * return null;		 */	}	AgletProxy getSelectedProxy() {		int selected = _agletList.getSelectedIndex();		if (selected != -1) {			return ((TahitiItem)_itemList.elementAt(selected))				.getAgletProxy();		} else {			return null;		} 	}	void hideButtons() {		_dialogButton.setVisible(false);		_infoButton.setVisible(false);		_disposeButton.setVisible(false);		_cloneButton.setVisible(false);		_dispatchButton.setVisible(false);	}	/*	 * synchronized void updateViewItems() {	 * for (int i = 0; i < _itemList.size(); i++) {	 * TahitiItem tahitiItem = (TahitiItem)_itemList.elementAt(i);	 * _agletList.replaceItem(getItemText(tahitiItem), i);	 * }	 * }	 */	synchronized void insertProxyToList(AgletProxy proxy) {		if (shrink) {			return;		} 		TahitiItem tahitiItem = new TahitiItem(proxy);		int index = -1;		for (int i = 0; i < _itemList.size(); i++) {			if (tahitiItem.compareTo((TahitiItem)_itemList.elementAt(i)) 					<= 0) {				index = i;				break;			} 		} 		if (index >= 0) {			_itemList.insertElementAt(tahitiItem, index);			_agletList.add(getItemText(tahitiItem), index);		} else {			_itemList.addElement(tahitiItem);			_agletList.add(getItemText(tahitiItem));		} 		// updateGUIState();	}	public void itemStateChanged(ItemEvent ev) {		updateGUIState();		if (TahitiItem.isNeedUpdate()) {			updateProxyList();		} 	}	// Builds the button panel.	// @return the button panel.	// 	private Panel makeButtonPanel() {		_buttonPanel = new Panel();		_buttonPanel.setLayout(new FlowLayout(FlowLayout.LEFT));		// ADD LISTENER		Button b = new Button("><");		b.addActionListener(new EventIssuer(SHRINK));		_buttonPanel.add(b);		b = new Button(bundle.getString("button.create"));		b.addActionListener(new DialogOpener(CREATE));		_buttonPanel.add(b);		_dialogButton.setLabel(bundle.getString("button.dialog"));		_dialogButton.addActionListener(new EventIssuer(DIALOG));		_buttonPanel.add(_dialogButton);		_infoButton.setLabel(bundle.getString("button.info"));		_infoButton.addActionListener(new DialogOpener(AGLET_INFO));		_buttonPanel.add(_infoButton);		_disposeButton.setLabel(bundle.getString("button.dispose"));		_disposeButton.addActionListener(new DialogOpener(DISPOSE));		_buttonPanel.add(_disposeButton);		_cloneButton.setLabel(bundle.getString("button.clone"));		_cloneButton.addActionListener(new DialogOpener(CLONE));		_buttonPanel.add(_cloneButton);		_dispatchButton.setLabel(bundle.getString("button.dispatch"));		_dispatchButton.addActionListener(new DialogOpener(DISPATCH));		_buttonPanel.add(_dispatchButton);		b = new Button(bundle.getString("button.retract"));		b.addActionListener(new DialogOpener(RETRACT));		_buttonPanel.add(b);		return _buttonPanel;	}	// -------------------------------------------------------------------	// -- Menu bar and panel methods	// Builds the menu bar.	// 	private MenuBar makeMenuBar() {		MenuBar menubar = new MenuBar();		// 		// Aglet Menu		// 		Menu menu = new Menu(bundle.getString("menu.aglet"));		MenuItem item = new MenuItem(bundle.getString("menuitem.create"));		item.addActionListener(new DialogOpener(CREATE));		menu.add(item);		_dialogMenuItem.setLabel(bundle.getString("menuitem.dialog"));		_dialogMenuItem.addActionListener(new EventIssuer(DIALOG));		menu.add(_dialogMenuItem);		_disposeMenuItem.setLabel(bundle.getString("menuitem.dispose"));		_disposeMenuItem.addActionListener(new DialogOpener(DISPOSE));		menu.add(_disposeMenuItem);		_cloneMenuItem.setLabel(bundle.getString("menuitem.clone"));		_cloneMenuItem.addActionListener(new DialogOpener(CLONE));		menu.add(_cloneMenuItem);		_infoMenuItem.setLabel(bundle.getString("menuitem.info"));		_infoMenuItem.addActionListener(new DialogOpener(AGLET_INFO));		menu.add(_infoMenuItem);		menu.addSeparator();		_killMenuItem.setLabel(bundle.getString("menuitem.kill"));		_killMenuItem.addActionListener(new EventIssuer(KILL));		menu.add(_killMenuItem);		menu.addSeparator();		item = new MenuItem(bundle.getString("menuitem.exit"));		item.addActionListener(new DialogOpener(EXIT));		menu.add(item);		menubar.add(menu);		// 		// Mobility menu.		// 		menu = new Menu(bundle.getString("menu.mobility"));		_dispatchMenuItem.setLabel(bundle.getString("menuitem.dispatch"));		_dispatchMenuItem.addActionListener(new DialogOpener(DISPATCH));		menu.add(_dispatchMenuItem);		item = new MenuItem(bundle.getString("menuitem.retract"));		item.addActionListener(new DialogOpener(RETRACT));		menu.add(item);		_deactivateMenuItem.setLabel(bundle.getString("menuitem.deactivate"));		_deactivateMenuItem.addActionListener(new DialogOpener(DEACTIVATE));		menu.add(_deactivateMenuItem);		_activateMenuItem.setLabel(bundle.getString("menuitem.activate"));		_activateMenuItem.addActionListener(new EventIssuer(ACTIVATE));		menu.add(_activateMenuItem);

⌨️ 快捷键说明

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