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

📄 jremserverview.java

📁 JRemoteControl is a simple Java&#8482 driven bluetooth remote control.It allows you to initiate virt
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/* * JRemCntl - Copyright (C) 2007 Filippo Di Vattimo <fildiv@gmail.com> * See COPYING */package fildiv.jremcntl.server.gui.app;import java.awt.Color;import java.awt.Dimension;import java.awt.GridBagConstraints;import java.awt.GridBagLayout;import java.awt.Insets;import java.awt.event.KeyEvent;import java.io.IOException;import java.io.PrintWriter;import java.io.StringWriter;import java.util.Map;import javax.swing.Icon;import javax.swing.ImageIcon;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JSplitPane;import javax.swing.JTextArea;import javax.swing.JToggleButton;import javax.swing.SwingConstants;import fildiv.jremcntl.common.core.Command;import fildiv.jremcntl.common.core.Logger;import fildiv.jremcntl.common.util.JRemUtils;import fildiv.jremcntl.server.core.AbstractJRemServerListener;import fildiv.jremcntl.server.core.AppConfiguration;import fildiv.jremcntl.server.core.JRemEnv;import fildiv.jremcntl.server.gui.core.CmdUI;import fildiv.jremcntl.server.gui.core.DocModifiedContent;import fildiv.jremcntl.server.gui.core.DocumentAttachedEvent;import fildiv.jremcntl.server.gui.core.DocumentEvent;import fildiv.jremcntl.server.gui.core.DocumentListener;import fildiv.jremcntl.server.gui.core.DocumentModifiedEvent;import fildiv.jremcntl.server.gui.core.JRemUIManager;import fildiv.jremcntl.server.gui.core.StateCmdUI;import fildiv.jremcntl.server.gui.model.JRemServerDoc;import fildiv.jremcntl.server.gui.util.swing.JRemAbstractToggleAction;import fildiv.jremcntl.server.gui.util.swing.SwingUtils;import fildiv.jremcntl.server.utils.JRemServerUtils;public class JRemServerView extends JPanel {	private static final long serialVersionUID = 1L;		private JRemEnv env;	private AppConfiguration conf;		private boolean updating;		private JRemServerListenerImpl serverListener;	private Icon iconStdOut24 = new ImageIcon(getClass().getResource("/fildiv/jremcntl/server/res/Stdout24.gif"));  //  @jve:decl-index=0:	private Icon iconStdErr24 = new ImageIcon(getClass().getResource("/fildiv/jremcntl/server/res/Stderr24.gif"));	private Icon iconStdOut16 = new ImageIcon(getClass().getResource("/fildiv/jremcntl/server/res/Stdout16.gif"));  //  @jve:decl-index=0:	private Icon iconStdErr16 = new ImageIcon(getClass().getResource("/fildiv/jremcntl/server/res/Stderr16.gif"));  //  @jve:decl-index=0:	private Icon iconShowOut24 = new ImageIcon(getClass().getResource("/fildiv/jremcntl/server/res/ServerOut24.gif"));  //  @jve:decl-index=0:	private Icon iconShowOut16 = new ImageIcon(getClass().getResource("/fildiv/jremcntl/server/res/ServerOut16.gif"));		private JRemServerGUI serverGUI;	private JRemUIManager uiMng;		protected class JRemServerListenerImpl extends AbstractJRemServerListener {				public JRemServerListenerImpl(Logger logger) {			super(logger);		}		public void onCommandTerminated(Command c, int exitCode) {			super.onCommandTerminated(c, exitCode);						if (exitCode != 0 && conf.isRestoreGUIOnCmdError())				uiMng.setGUIMinimized(false);					}				public void onCommandProcessStderr(String data) {			if (!JRemServerUtils.isShowServerStdError(env, uiMng))				return;			super.onCommandProcessStderr(data);		}				public void onCommandProcessStdout(String data) {			if (!JRemServerUtils.isShowServerStdOutput(env, uiMng))				return;			super.onCommandProcessStdout(data);		}		public void onDeviceConnected(String deviceName) {			super.onDeviceConnected(deviceName);			if (conf.isMinimizeGUIOnConnect())				uiMng.setGUIMinimized(true);		}				public void onDeviceDisconnected() {						super.onDeviceDisconnected();			if (conf.isMinimizeGUIOnConnect())				uiMng.setGUIMinimized(false);		}		/*		 * Override		 */ 				public void printServerInfo(String msg) {						if (!JRemServerUtils.isShowServerOutput(env, uiMng))				return;			appendAndScroll(jTextAreaServerOutput, "[INFO] " + msg);		}										public void printServerError(String msg) {						if (conf.isRestoreGUIOnError())				uiMng.setGUIMinimized(false);			appendAndScroll(jTextAreaServerOutput, "[ERROR] " + msg);		}		public void printServerError(Exception e) {						if (conf.isRestoreGUIOnError())				uiMng.setGUIMinimized(false);			String msg = null;			StringWriter sw = null;			PrintWriter pw = null;						try {				sw = new StringWriter();				pw = new PrintWriter(sw);							e.printStackTrace(pw);				msg = sw.toString();				printServerError(msg);			} finally {				try {					if (pw != null)						pw.close();					if (sw != null)						sw.close();				} catch (IOException ignore) {				}			}					}				public void printCmdStderr(String data) {			appendAndScroll(jTextAreaCmdStdErr, data, false);				}		public void printCmdStdout(String data) {			appendAndScroll(jTextAreaCmdStdOut, data, false);				}		/*		 * Implementation		 */				protected void appendAndScroll(JTextArea ta, String msg, boolean cr) {			ta.append(msg);						if (cr)				ta.append("\n");			ta.setCaretPosition(ta.getText().length());		}		protected void appendAndScroll(JTextArea ta, String msg) {			appendAndScroll(ta, msg, true);		}	}			/**	 * This is the default constructor	 * @param env 	 * @param serverGUI 	 */		public JRemServerView(JRemServerGUI serverGUI) {		super();				this.env = JRemEnv.getInstance();		this.conf = env.getAppConfiguration();				this.serverGUI = serverGUI;		this.uiMng = serverGUI.getUIManager();				initialize();				serverListener = new JRemServerListenerImpl(env.getLogger());		}	/**	 * This method initializes this	 * 	 * @return void	 */	private void initialize() {		GridBagConstraints gridBagConstraints51 = new GridBagConstraints();		gridBagConstraints51.gridx = 2;		gridBagConstraints51.insets = new Insets(2, 3, 3, 3);		gridBagConstraints51.fill = GridBagConstraints.VERTICAL;		gridBagConstraints51.weightx = 0.0;		gridBagConstraints51.gridy = 0;		GridBagConstraints gridBagConstraints3 = new GridBagConstraints();		gridBagConstraints3.gridx = -1;		gridBagConstraints3.gridy = -1;		GridBagConstraints gridBagConstraints21 = new GridBagConstraints();		gridBagConstraints21.gridx = 1;		gridBagConstraints21.gridy = 0;		GridBagConstraints gridBagConstraints31 = new GridBagConstraints();		gridBagConstraints31.gridx = -1;		gridBagConstraints31.gridy = -1;		GridBagConstraints gridBagConstraints1 = new GridBagConstraints();		gridBagConstraints1.fill = GridBagConstraints.BOTH;		gridBagConstraints1.gridy = 2;		gridBagConstraints1.weightx = 1.0;		gridBagConstraints1.weighty = 1.0;		gridBagConstraints1.gridwidth = 7;		gridBagConstraints1.gridx = 0;		GridBagConstraints gridBagConstraints2 = new GridBagConstraints();		gridBagConstraints2.gridx = 1;		gridBagConstraints2.fill = GridBagConstraints.HORIZONTAL;		gridBagConstraints2.ipadx = 1;		gridBagConstraints2.weightx = 1.0;		gridBagConstraints2.gridy = 0;		jServerStatus1 = new JLabel();		jServerStatus1.setMaximumSize(new Dimension(100, 24));		jServerStatus1.setPreferredSize(new Dimension(100, 24));		jServerStatus1.setHorizontalAlignment(SwingConstants.LEFT);		jServerStatus1.setHorizontalTextPosition(SwingConstants.LEFT);		jServerStatus1.setText("Server output ...");		jServerStatus1.setMinimumSize(new Dimension(100, 24));		GridBagConstraints gridBagConstraints = new GridBagConstraints();		gridBagConstraints.gridx = 0;		gridBagConstraints.insets = new Insets(2, 2, 0, 0);		gridBagConstraints.fill = GridBagConstraints.HORIZONTAL;		gridBagConstraints.weightx = 0.3;		gridBagConstraints.gridy = 0;		jServerStatus = new JLabel();		jServerStatus.setMaximumSize(new Dimension(100, 24));		jServerStatus.setHorizontalTextPosition(SwingConstants.CENTER);		jServerStatus.setText("Server output ...");		jServerStatus.setPreferredSize(new Dimension(100, 24));		jServerStatus.setMinimumSize(new Dimension(100, 24));		jServerStatus.setHorizontalAlignment(SwingConstants.LEFT);		this.setSize(420, 222);		this.setLayout(new GridBagLayout());		this.setPreferredSize(new Dimension(90, 90));		this.setMaximumSize(new Dimension(32, 32));		this.setMinimumSize(new Dimension(32, 32));		this.add(jServerStatus, gridBagConstraints);		this.add(jServerStatus1, gridBagConstraints2);		this.add(getJSplitPane(), gridBagConstraints1);		this.add(getJtbShowServerOutput(), gridBagConstraints51);	}	DocumentListener listener = new DocumentListener() {		public void actionPerformed(DocumentEvent event) {			updateView(event);		}	};			private JRemServerDoc doc;  //  @jve:decl-index=0:	private JLabel jServerStatus = null;	private JScrollPane jScrollPaneServerOutput = null;	private JTextArea jTextAreaServerOutput = null;	private JLabel jServerStatus1 = null;	private JSplitPane jSplitPane = null;	private Map cmdActionsMap; 	private JPanel jPanelCmdOutput = null;	private JToggleButton jtbShowServerOutput = null;	private JSplitPane jSplitPane1CmdOutput = null;	private JPanel jPanelCmdStdOut = null;	private JToggleButton jtbShowStdOutput = null;	private JLabel jLabel = null;	private JScrollPane jScrollPaneCmdStdOut = null;	private JTextArea jTextAreaCmdStdOut = null;	private JPanel jPanelCmdStdErr = null;	private JToggleButton jtbShowStdError = null;	private JScrollPane jScrollPaneCmdStdErr = null;	private JTextArea jTextAreaCmdStdErr = null;	private JLabel jLabel1 = null;	public void setDocument(JRemServerDoc doc) {		if (this.doc != null)			this.doc.removeActionListener(listener);		this.doc = doc;				if (this.doc != null)			this.doc.addActionListener(listener);	}		private void updateView(DocumentEvent event) {		try {						updating = true;						SwingUtils.showWaitCursor(this, false);						if (event instanceof DocumentModifiedEvent) {								update();				DocumentModifiedEvent de = (DocumentModifiedEvent) event;				DocModifiedContent content = (DocModifiedContent) de.getWhatModified();				int modifyType = content.getModifyType();				switch(modifyType) {									case JRemServerDoc.MODIFIED_CONTENT_TYPE_START_EXCEPTION:												Exception e = (Exception) content.getModifySupport();												serverListener.printServerError(e);						env.getLogger().error(e);												SwingUtils.showMessage(this, env,							"Server threw an exception! Please check server output log.");				}							} else {								if (event instanceof DocumentAttachedEvent) {						doc.addServerEventsListener(serverListener);					doc.addCommandEventsListener(serverListener);										update();									} else {					// DocumentDetachEvent										doc.removeServerEventsListener(serverListener);					doc.removeCommandEventsListener(serverListener);				}			}					} finally {			updating = false;						SwingUtils.showWaitCursor(this, false);		}	}	private void update() {		StringBuffer s = new StringBuffer("Server : ");				Color foreColor = null;				if (doc.isRunning()) {

⌨️ 快捷键说明

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