📄 jremservergui.java
字号:
} private void startServer(String configPath) { getJRemServerView().clearServerOutput(); getJRemServerView().clearCommandsOutput(); JRemServerDoc serverDoc = guiDoc.getServerDoc(); serverDoc.start(configPath); if (env.getAppConfiguration().isSwitchAutServerOut()) getJTabbedPane().getModel().setSelectedIndex(MAIN_TAB_SERVER); } protected void onServerStopCommand() { int ret = SwingUtils.askYN(getJFrame(), env, "Are you sure do you want to stop the server ?"); switch (ret) { case JOptionPane.NO_OPTION: return; } try { JRemServerDoc serverDoc = guiDoc.getServerDoc(); serverDoc.stop(); if (env.getAppConfiguration().isSwitchAutServerOut()) getJTabbedPane().getModel().setSelectedIndex(MAIN_TAB_EDITOR); } finally { SwingUtils.showWaitCursor(getJFrame(), false); } } protected boolean onExitCommand() { if (guiDoc.isModified()) { switch (ask()) { case JOptionPane.YES_OPTION: if (!onSaveCommand()) return false; break; case JOptionPane.NO_OPTION: break; case JOptionPane.CANCEL_OPTION: return false; } } JRemServerDoc serverDoc = guiDoc.getServerDoc(); if (serverDoc.isRunning()) { int ret = SwingUtils.askYN(getJFrame(), env, "The server is still running, are you sure\n" + "do you want to exit ?"); if (ret == JOptionPane.NO_OPTION) return false; serverDoc.stop(); } env.savePreferences(); System.exit(0); return true; } public void onServerClearOutputCommand() { getJRemServerView().clearOutput(); updateUI(); } protected void onRemoveCommand() { Object current = jRemConfigView.getCurrent(); if (current == null) return; String message = "Do you want to remove the selected item ?" + "\n\n" + current.toString(); int ret = SwingUtils.askYN(getJFrame(), env, message); if (ret != JOptionPane.YES_OPTION) return; try { SwingUtils.showWaitCursor(getJFrame(), true); JRemConfigDoc configDoc = guiDoc.getConfigDoc(); if (current instanceof JRemCommandDoc) { JRemCommandDoc cmd = (JRemCommandDoc) current; JRemContextDoc ctxParent = (JRemContextDoc) cmd.getContext(); ctxParent.removeCommand(cmd); } else if (current instanceof JRemContextDoc) { configDoc.removeContext((JRemContextDoc) current); } getJRemConfigView().select(configDoc); } finally { SwingUtils.showWaitCursor(getJFrame(), false); } } protected void onAddContextCommand() { try { SwingUtils.showWaitCursor(getJFrame(), true); JRemConfigDoc configDoc = guiDoc.getConfigDoc(); JRemContextDoc ctx = new JRemContextDoc(configDoc, guiDoc .getNewName("New context"), Config.TYPE_VIEW_LISTVIEW, "."); configDoc.insertContext(ctx, currContext, true); getJRemConfigView().select(ctx); } finally { SwingUtils.showWaitCursor(getJFrame(), false); } } protected void onAddCommandCommand() { SwingUtils.showWaitCursor(getJFrame(), true); if (currContext == null) return; try { SwingUtils.showWaitCursor(getJFrame(), true); JRemCommandDoc cmd = new JRemCommandDoc(currContext, 0, guiDoc .getNewName("New Command"), "", "", ""); currContext.insertCommand(cmd, currCommand, true); getJRemConfigView().select(currContext); } finally { SwingUtils.showWaitCursor(getJFrame(), false); } } protected void onNewCommand() { JRemServerDoc serverDoc = guiDoc.getServerDoc(); if (serverDoc.isRunning()) { String message = "This action will stop the server. Do you want to continue ?"; int ret = SwingUtils.askYN(getJFrame(), env, message); if (ret == JOptionPane.NO_OPTION) return; serverDoc.stop(); } if (guiDoc.isModified()) { switch (ask()) { case JOptionPane.YES_OPTION: if (!onSaveCommand()) return; break; case JOptionPane.NO_OPTION: break; case JOptionPane.CANCEL_OPTION: return; } } try { SwingUtils.showWaitCursor(getJFrame(), true); guiDoc.createNewConfigDoc(); selectStartNode(); } finally { SwingUtils.showWaitCursor(getJFrame(), false); } } protected void onOpenCommand() { File f = SwingUtils.showOpenDialog(env, jFrame, SwingUtils.XML_FILE_FILTER); if (f == null) return; if (guiDoc.isModified()) { switch (ask()) { case JOptionPane.YES_OPTION: onSaveCommand(); break; case JOptionPane.NO_OPTION: break; case JOptionPane.CANCEL_OPTION: return; } } try { SwingUtils.showWaitCursor(jFrame, true); guiDoc.loadConfig(f.getAbsolutePath()); getJRemConfigView().select(guiDoc.getConfigDoc()); selectStartNode(); checkServerForRestart(); } finally { SwingUtils.showWaitCursor(jFrame, false); } } protected void onSaveAsCommand() { if (!checkConfig()) return; File f = SwingUtils.showSaveDialog(env, getJFrame()); if (f == null) return; String filePath = f.getAbsolutePath(); saveImpl(filePath); } private void saveImpl(String filePath) { try { SwingUtils.showWaitCursor(getJFrame(), true); guiDoc.saveConfig(filePath); SwingUtils.showWaitCursor(getJFrame(), false); checkServerForRestart(); } finally { SwingUtils.showWaitCursor(getJFrame(), false); } } private void checkServerForRestart() { JRemServerDoc serverDoc = guiDoc.getServerDoc(); if (serverDoc.isRunning()) { String message = "The server is running, in order to use the new configuration " + "you must restart the server.\nDo you want to restart the server ?"; int ret = SwingUtils.askYN(getJFrame(), env, message); if (ret == JOptionPane.YES_OPTION) restartServer(); } } private void restartServer() { JRemServerDoc serverDoc = guiDoc.getServerDoc(); serverDoc.stop(); String configPath; configPath = guiDoc.getConfigFilePath(); startServer(configPath); } protected void onEditPreferences() { JRemOptionEditor.openEditor(getJFrame()); } protected boolean onSaveCommand() { if (!checkConfig()) return false; String filePath = guiDoc.getConfigFilePath(); if (JRemUtils.isEmptyString(filePath)) { File f = SwingUtils.showSaveDialog(env, getJFrame()); if (f == null) return false; filePath = f.getAbsolutePath(); } saveImpl(filePath); return true; } protected void onHelpCommand() { } protected void onAboutCommand() { JDialog aboutDialog = new JRemAboutDialog(getJFrame()); aboutDialog.pack(); Point loc = getJFrame().getLocation(); loc.translate(20, 20); aboutDialog.setLocation(loc); aboutDialog.setVisible(true); } private int ask() { return SwingUtils.askYNC(getJFrame(), env, "The current document is modified.\nDo you want to save it?"); } /** * This method initializes XYZ * * @return fildiv.jremcntl.server.gui.app.JRemServerGUI */ private JRemServerGUI getXYZ() { if (XYZ == null) { XYZ = new JRemServerGUI(); } return XYZ; } /** * This method initializes XYZ1 * * @return fildiv.jremcntl.server.gui.app.JRemServerGUI */ private JRemServerGUI getXYZ1() { if (XYZ1 == null) { XYZ1 = new JRemServerGUI(); } return XYZ1; } /** * This method initializes jTabbedPane1Edit * * @return javax.swing.JTabbedPane */ private JTabbedPane getJTabbedPane1Edit() { if (jTabbedPane1Edit == null) { jTabbedPane1Edit = new JTabbedPane(); jTabbedPane1Edit.setName("Events"); jTabbedPane1Edit.addTab("Properties", null, getJSplitPane1EditProperties(), null); jTabbedPane1Edit.addTab("Events", null, getJRemEventsView(), null); } return jTabbedPane1Edit; } /** * This method initializes jSplitPane1EditProperties * * @return javax.swing.JSplitPane */ private JSplitPane getJSplitPane1EditProperties() { if (jSplitPane1EditProperties == null) { jSplitPane1EditProperties = new JSplitPane(); jSplitPane1EditProperties.setOrientation(JSplitPane.VERTICAL_SPLIT); jSplitPane1EditProperties.setDividerSize(2); jSplitPane1EditProperties.setDividerLocation(160); jSplitPane1EditProperties.setOneTouchExpandable(false); jSplitPane1EditProperties.setResizeWeight(0.0D); jSplitPane1EditProperties .setBottomComponent(getJRemExtensionView()); jSplitPane1EditProperties .setTopComponent(getJRemPropertyEditorView()); } return jSplitPane1EditProperties; } /** * This method initializes jRemPropertyEditorView * * @return fildiv.jremcntl.server.gui.app.JRemPropertyEditorView */ private JRemPropertyEditorView getJRemPropertyEditorView() { if (jRemPropertyEditorView == null) { jRemPropertyEditorView = new JRemPropertyEditorView(); } return jRemPropertyEditorView; } /** * This method initializes jRemExtensionView * * @return fildiv.jremcntl.server.gui.app.JRemExtensionView */ private JRemExtensionView getJRemExtensionView() { if (jRemExtensionView == null) { jRemExtensionView = new JRemExtensionView(this); } return jRemExtensionView; } /** * This method initializes jPanelServer * * @return javax.swing.JPanel */ private JPanel getJPanelServer() { if (jPanelServer == null) { GridBagConstraints gridBagConstraints2 = new GridBagConstraints(); gridBagConstraints2.fill = GridBagConstraints.BOTH; gridBagConstraints2.weighty = 1.0; gridBagConstraints2.weightx = 1.0; jPanelServer = new JPanel(); jPanelServer.setLayout(new GridBagLayout()); jPanelServer.add(getJScrollPane1ServerView(), gridBagConstraints2); } return jPanelServer; } /** * This method initializes jScrollPane1ServerView * * @return javax.swing.JScrollPane */ private JScrollPane getJScrollPane1ServerView() { if (jScrollPane1ServerView == null) { jScrollPane1ServerView = new JScrollPane(); jScrollPane1ServerView.setViewportView(getJRemServerView()); } return jScrollPane1ServerView; } /** * This method initializes jRemServerView * * @return fildiv.jremcntl.server.gui.app.JRemServerView */ private JRemServerView getJRemServerView() { if (jRemServerView == null) { jRemServerView = new JRemServerView(this); } return jRemServerView; } /** * This method initializes jRemEventsView * * @return fildiv.jremcntl.server.gui.app.JRemEventsView */ private JRemEventsView getJRemEventsView() { if (jRemEventsView == null) { jRemEventsView = new JRemEventsView(); } return jRemEventsView; } /** * Launches this application */ public static void main(String[] args) { if (args.length == 0) { showUsage(); System.exit(-1); } try { String propertyFile = args[0]; final JRemEnv env = JRemEnv.createEnvironment(propertyFile, JRemConsole.getLogger(), true); SwingUtilities.invokeLater(new Runnable() { public void run() { JRemServerGUI appl = new JRemServerGUI(); appl.show(); } }); } catch (Exception e) { e.printStackTrace(); SwingUtils.showErrorMessage(null, "JRemServerGUI", "Unable to load environment\n\n" + e.toString()); throw new JRemRuntimeException("Unable to load environment", e); } finally { JRemConsole.disposeConsole(); } } private static void showUsage() { SwingUtils.showErrorMessage(null, "JRem server GUI", "Usage jremserverGUI <properties file>"); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -