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

📄 stafdemocontroller.java

📁 Software Testing Automation Framework (STAF)的开发代码
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
                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 + -