📄 stafdemocontroller.java
字号:
public void actionPerformed(ActionEvent event) { STAFResult stafResult = STAFDemoController.handle.submit2( fMachine, "SEM", "RESET EVENT STAFDemo/Handle/" + fHandle + "/Continue"); if (stafResult.rc != 0) System.out.println("Error pausing process RC: " + stafResult.rc + " Result: " + stafResult.result); } }); fContinue.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { STAFResult stafResult = STAFDemoController.handle.submit2( fMachine, "SEM", "POST EVENT STAFDemo/Handle/" + fHandle + "/Continue"); if (stafResult.rc != 0) System.out.println("Error continuing process RC: " + stafResult.rc + " Result: " + stafResult.result); } }); fSetBackground.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { STAFResult stafResult = STAFDemoController.handle.submit2( fMachine, "VAR", "SET HANDLE " + fHandle + " VAR STAFDemo/BackgroundColor=" + (String)fColorList.getSelectedItem()); if (stafResult.rc != 0) System.out.println("Error setting background color RC: " + stafResult.rc + " Result: " + stafResult.result); } }); fSetLogMask.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { String logMask = new String(); if (fErrorLog.isSelected()) logMask += " Error"; if (fWarningLog.isSelected()) logMask += " Warning"; if (fInfoLog.isSelected()) logMask += " Info"; if (fDebugLog.isSelected()) logMask += " Debug"; STAFResult stafResult = STAFDemoController.handle.submit2( fMachine, "VAR", "SET HANDLE " + fHandle + " VAR \"STAF/Service/Log/Mask=" + logMask + "\""); if (stafResult.rc != 0) System.out.println("Error setting log mask RC: " + stafResult.rc + " Result: " + stafResult.result); } }); fRefreshLog.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { STAFResult stafResult = STAFDemoController.handle.submit2( fMachine, "LOG", "QUERY MACHINE " + fMachineNickname + " HANDLE " + fHandle + " LOGNAME STAFDemo STATS"); if (stafResult.rc != 0) { if (stafResult.rc == 48) { fErrorCount.setText("0"); fWarningCount.setText("0"); fInfoCount.setText("0"); fDebugCount.setText("0"); } else { System.out.println( "Error querying log RC: " + stafResult.rc + " Result: " + stafResult.result); } return; } STAFMarshallingContext outputContext = STAFMarshallingContext.unmarshall(stafResult.result); Map logStatsMap = (Map)outputContext.getRootObject(); fErrorCount.setText((String)logStatsMap.get("error")); fWarningCount.setText((String)logStatsMap.get("warning")); fInfoCount.setText((String)logStatsMap.get("info")); fDebugCount.setText((String)logStatsMap.get("debug")); } }); fClearLog.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { STAFResult stafResult = STAFDemoController.handle.submit2( fMachine, "LOG", "DELETE MACHINE " + fMachineNickname + " HANDLE " + fHandle + " LOGNAME STAFDemo CONFIRM"); if (stafResult.rc != 0 && stafResult.rc != 48) System.out.println("Error deleting log RC: " + stafResult.rc + " Result: " + stafResult.result); fErrorCount.setText("0"); fWarningCount.setText("0"); fInfoCount.setText("0"); fDebugCount.setText("0"); } }); fDisplayLog.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { java.util.List outputList = new java.util.ArrayList(); // Submit a request to query the log String request = "QUERY MACHINE " + fMachineNickname + " HANDLE " + fHandle + " LOGNAME STAFDemo"; STAFResult stafResult = STAFDemoController.handle.submit2( fMachine, "LOG", request); if (stafResult.rc == 0) { // Unmarshall the output from the request and create a // outputList containing the results (timestamp, level, // and message) try { STAFMarshallingContext outputContext = STAFMarshallingContext.unmarshall( stafResult.result); outputList = (java.util.List)outputContext. getRootObject(); } catch (Exception e) { System.out.println( "Invalid result format from query log " + "request to machine " + fMachine + " Request=" + request); e.printStackTrace(); return; } } else if (stafResult.rc != 48) { System.out.println( "Error on query log request to machine " + fMachine + " Request=" + request + ", RC=" + stafResult.rc + ", Result=" + stafResult.result); return; } // Create a vector (logLines) from the outputList Iterator iter = outputList.iterator(); Vector logLines = new Vector(); int i = 0; try { while (iter.hasNext()) { i++; Map logRecord = (Map)iter.next(); Vector thisLogData = new Vector(); thisLogData.add((String)logRecord.get("timestamp")); thisLogData.add((String)logRecord.get("level")); thisLogData.add((String)logRecord.get("message")); logLines.add(thisLogData); } } catch (Exception e) { System.out.println( "Invalid format for log record #" + i + " in STAFDemo log"); e.printStackTrace(); return; } String frameTitle = "Log on Machine " + fMachine + " - " + request; STAFLogFrame logFrame = new STAFLogFrame( frameTitle, logLines); logFrame.setSize(500, 300); logFrame.show(); } }); // Launch monitor thread fMonitorThread = new MonitorThread(fMachine, fMachineNickname, fHandle, fMonitorRefreshRate, fMonitorDate, fMonitorStatus); fMonitorThread.start(); // Add listener so that we can stop the monitor thread fProcessFrame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent event) { fMonitorThread.fContinue = false; } }); } } public class STAFLogFrame extends JFrame { public STAFLogFrame(String title, Vector logLines) { super(title); Vector columnNames = new Vector(); columnNames.add(new String("Timestamp")); columnNames.add(new String("Level")); columnNames.add(new String("Message")); JTable logTable = new JTable(logLines, columnNames); logTable.setRowSelectionAllowed(false); logTable.setColumnSelectionAllowed(false); JScrollPane logScroll = new JScrollPane(logTable); getContentPane().add(logScroll); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent event) { dispose(); } }); } } public class MonitorThread extends Thread { public MonitorThread(String machine, String machineNickname, String handle, JTextField sleep, JLabel date, JLabel status) { fMachine = machine; fMachineNickname = machineNickname; fHandle = handle; fSleepField = sleep; fDateField = date; fStatusField = status; } String fMachine; String fMachineNickname; String fHandle; JTextField fSleepField; JLabel fDateField; JLabel fStatusField; public boolean fContinue = true; public void run() { for(;;) { if (!fContinue) return; int sleep = 2; try { sleep = Integer.parseInt(fSleepField.getText()); Thread.sleep(sleep * 1000); } catch(NumberFormatException e) { /* Do Nothing */ } catch(InterruptedException e) { /* Do Nothing */ } STAFResult stafResult = STAFDemoController.handle.submit2( fMachine, "MONITOR", "QUERY MACHINE " + fMachineNickname + " HANDLE " + fHandle); if (stafResult.rc != 0) { fDateField.setText("Unknown"); fStatusField.setText("Unknown"); } else { if (STAFMarshallingContext.isMarshalledData( stafResult.result)) { // STAF 3.x - Unmarshall the result STAFMarshallingContext outputContext = STAFMarshallingContext.unmarshall( stafResult.result); Map resultsMap = (Map)outputContext.getRootObject(); fDateField.setText( (String)resultsMap.get("timestamp")); fStatusField.setText( (String)resultsMap.get("message")); } else { // STAF V2.x results are not marshalled int firstSpace = stafResult.result.indexOf(' '); String dateText = stafResult.result.substring(0, firstSpace); String messageText = stafResult.result.substring(firstSpace + 1); fDateField.setText(dateText); fStatusField.setText(messageText); } } } } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -