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

📄 staxmonitorsubjobextension.java

📁 Software Testing Automation Framework (STAF)的开发代码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/*****************************************************************************//* Software Testing Automation Framework (STAF)                              *//* (C) Copyright IBM Corp. 2002, 2004                                        *//*                                                                           *//* This software is licensed under the Common Public License (CPL) V1.0.     *//*****************************************************************************/package com.ibm.staf.service.stax;import javax.swing.*;import javax.swing.event.*;import com.ibm.staf.*;import java.util.*;import java.awt.*;import java.awt.event.*;import java.lang.reflect.*;import java.io.*;public class STAXMonitorSubjobExtension extends JFrame                                        implements STAXMonitorExtension,                                                   ActionListener,                                                   MouseListener,                                                   ListSelectionListener{    JPanel fPanel;    STAFHandle fHandle;    JTable fSubjobTable;    STAXMonitorTableModel fSubjobTableModel;    STAXMonitorTableSorter fSubjobModelSorter;    Vector fSubjobColumns;    Vector fSubjobVector = new Vector();    Hashtable fSubjobIDs = new Hashtable();    Hashtable fSubjobStartTimes = new Hashtable();    String fStaxMachine;    String fStaxServiceName;    String fStaxMachineNickname;    String fJobNumber;    MonitorElapsedTime fElapsedTime;    boolean fContinueElapsedTime = true;    STAXMonitorFrame fMonitorFrame;    String fTitle;    Hashtable fSubjobHashtable = new Hashtable();    JPopupMenu fSubjobPopupMenu = new JPopupMenu();    JMenuItem fSubjobStartMonitorMenuItem = new JMenuItem("Start Monitoring");    JMenuItem fSubjobShowJobLogMenuItem = new JMenuItem("Display Job Log");    JMenuItem fSubjobShowJobUserLogMenuItem =        new JMenuItem("Display Job User Log");    JMenuItem fSubjobTerminateMenuItem = new JMenuItem("Terminate Job");    public JComponent init(STAXMonitorFrame monitorFrame, boolean newJob,                           String staxMachineName,                           String staxServiceName, String jobNumber)                           throws STAFException    {        fMonitorFrame = monitorFrame;        fStaxMachine = staxMachineName;        fStaxMachineNickname = monitorFrame.getSTAXMachineNickname();        fStaxServiceName = staxServiceName;        fJobNumber = jobNumber;        fTitle = "Sub-jobs";        fPanel = new JPanel();        fPanel.setLayout(new BorderLayout());        try        {            fHandle = STAXMonitorUtil.getNewSTAFHandle(                "STAFMonitorSubjobTableExtension");        }        catch (STAFException ex)        {        }        fSubjobColumns = new Vector();        fSubjobColumns.addElement("Job ID");        fSubjobColumns.addElement("Job Name");        fSubjobColumns.addElement("Function");        fSubjobColumns.addElement("Status");        fSubjobColumns.addElement("Started");        fSubjobColumns.addElement("Elapsed Time");        fSubjobColumns.addElement("Result");        fSubjobTableModel = new STAXMonitorTableModel(fSubjobColumns, 0);        fSubjobModelSorter =            new STAXMonitorTableSorter(fSubjobTableModel, 0);        fSubjobTable = new JTable(fSubjobModelSorter);        fSubjobModelSorter.addMouseListenerToHeaderInTable(            fSubjobTable, 6);        fSubjobTable.setRowSelectionAllowed(true);        fSubjobTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);        fSubjobTable.addMouseListener(this);        fSubjobTable.getSelectionModel().addListSelectionListener(this);        fSubjobTable.getColumnModel().getColumn(0).setCellRenderer(            new STAXMonitorTableCellRenderer(new Color(0, 130, 0)));        fSubjobTable.getColumnModel().getColumn(0).            setHeaderRenderer(new STAXMonitorTableCellRenderer(Color.black,                true, new Font("Dialog", Font.BOLD, 12)));        fSubjobTable.getColumnModel().getColumn(1).setCellRenderer(            new STAXMonitorTableCellRenderer(Color.blue));        fSubjobTable.getColumnModel().getColumn(1).            setHeaderRenderer(new STAXMonitorTableCellRenderer(Color.black,                true, new Font("Dialog", Font.BOLD, 12)));        fSubjobTable.getColumnModel().getColumn(2).setCellRenderer(            new STAXMonitorTableCellRenderer(new Color(0, 130, 0)));        fSubjobTable.getColumnModel().getColumn(2).            setHeaderRenderer(new STAXMonitorTableCellRenderer(Color.black,                true, new Font("Dialog", Font.BOLD, 12)));        fSubjobTable.getColumnModel().getColumn(3).setCellRenderer(            new STAXMonitorTableCellRenderer(new Color(0, 130, 0)));        fSubjobTable.getColumnModel().getColumn(3).            setHeaderRenderer(new STAXMonitorTableCellRenderer(Color.black,                true, new Font("Dialog", Font.BOLD, 12)));        fSubjobTable.getColumnModel().getColumn(4).setCellRenderer(            new STAXMonitorTableCellRenderer(new Color(0, 130, 0)));        fSubjobTable.getColumnModel().getColumn(4).            setHeaderRenderer(new STAXMonitorTableCellRenderer(Color.black,                true, new Font("Dialog", Font.BOLD, 12)));        fSubjobTable.getColumnModel().getColumn(5).setCellRenderer(            new STAXMonitorTableCellRenderer(new Color(0, 130, 0)));        fSubjobTable.getColumnModel().getColumn(5).            setHeaderRenderer(new STAXMonitorTableCellRenderer(Color.black,                true, new Font("Dialog", Font.BOLD, 12)));        fSubjobTable.getColumnModel().getColumn(6).setCellRenderer(            new STAXMonitorTableCellRenderer(new Color(0, 130, 0)));        fSubjobTable.getColumnModel().getColumn(6).            setHeaderRenderer(new STAXMonitorTableCellRenderer(Color.black,                true, new Font("Dialog", Font.BOLD, 12)));        fSubjobTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);        STAXMonitorUtil.sizeColumnsToFitText(fSubjobTable);        if (!newJob)        {            String listRequest = "LIST JOB " + fJobNumber + " SUBJOBS";            STAFResult listResult = fHandle.submit2(                fStaxMachine, fStaxServiceName, listRequest);            if (listResult.rc != 0)            {                throw new STAFException(                    listResult.rc,                    "Error listing Job SUBJOBS\n" + listResult.result);            }            STAFMarshallingContext mc =                STAFMarshallingContext.unmarshall(listResult.result);            java.util.List subjobList = (java.util.List)mc.getRootObject();            Iterator iter = subjobList.iterator();                        while (iter.hasNext())            {                Map subjobMap = (Map)iter.next();                String jobID   = (String)subjobMap.get("jobID");                String jobName = (String)subjobMap.get("jobName");                String function = (String)subjobMap.get("function");                // startTimestamp format is YYYYMMDD-HH:MM:SS                String startTimestamp =                    (String)subjobMap.get("startTimestamp");                String startDate = startTimestamp.substring(0, 8);                String startTime = startTimestamp.substring(9);                fSubjobStartTimes.put(jobID,                    STAXMonitorUtil.getCalendar2(startDate,                    startTime));                                STAFResult queryResult = fHandle.submit2(                    fStaxMachine, fStaxServiceName, "QUERY JOB " + jobID);                String fileName = "";                String fileMachine = "";                String args = "";                String status = "Running";                if (queryResult.rc == 48)                {                    status = "Complete";                }                else if (queryResult.rc == 0)                {                    mc = STAFMarshallingContext.unmarshall(                            queryResult.result);                    Map jobInfoMap = (HashMap)mc.getRootObject();                    fileName = (String)jobInfoMap.get("xmlFileName");                    fileMachine = (String)jobInfoMap.get("fileMachine");                    args = (String)jobInfoMap.get("arguments");                }                String elapsedTimestamp = "00:00:00";                                Object rowData[] = new Object[8];                rowData[0] = new String(jobID);                rowData[1] = jobName;                rowData[2] = function;                rowData[3] = status;                rowData[4] = startTimestamp;                rowData[5] = elapsedTimestamp;                rowData[6] = "";                fSubjobTableModel.addRow(rowData);                STAXMonitorUtil.updateRowHeights(fSubjobTable, 6);                STAXMonitorUtil.sizeColumnsToFitText(fSubjobTable);                STAXMonitorUtil.updateRowHeights(fSubjobTable, 6);                STAXMonitorUtil.sizeColumnsToFitText(fSubjobTable);                Vector subjobDataVector = new Vector();                addRow(subjobDataVector, "Job ID", jobID);                addRow(subjobDataVector, "Job Name", jobName);                addRow(subjobDataVector, "Job File", fileName);                if (!fileMachine.equals(""))                {                    addRow(subjobDataVector, "Job File Machine",                        fileMachine);                }                addRow(subjobDataVector, "Function", function);                addRow(subjobDataVector, "Function Args", args);                synchronized(fSubjobHashtable)                {                    fSubjobHashtable.put("Job " + jobID + " - " + jobName,                        subjobDataVector);                }            }        }        fSubjobPopupMenu.add(fSubjobStartMonitorMenuItem);        fSubjobStartMonitorMenuItem.addActionListener(this);        fSubjobPopupMenu.addSeparator();        fSubjobPopupMenu.add(fSubjobShowJobLogMenuItem);        fSubjobShowJobLogMenuItem.addActionListener(this);        fSubjobPopupMenu.add(fSubjobShowJobUserLogMenuItem);        fSubjobShowJobUserLogMenuItem.addActionListener(this);        fSubjobPopupMenu.addSeparator();        fSubjobPopupMenu.add(fSubjobTerminateMenuItem);        fSubjobTerminateMenuItem.addActionListener(this);        fElapsedTime = new MonitorElapsedTime();        fElapsedTime.start();        return fSubjobTable;    }    public String getNotificationEventTypes()    {        return "subjob";    }    public String getTitle()    {        return fTitle;    }    public int getExtensionType()    {        return STAXMonitorFrame.EXTENSION_ACTIVE;    }    public JComponent getComponent()    {        return fSubjobTable;    }    public void valueChanged(ListSelectionEvent e)    {        int selectedRow = fSubjobTable.getSelectedRow();        if (selectedRow == -1)            return;        String subjobID = (String)            fSubjobTable.getValueAt(selectedRow, 0);        String subjobName = (String)            fSubjobTable.getValueAt(selectedRow, 1);        synchronized(fSubjobHashtable)        {            fMonitorFrame.updateCurrentSelection("Job " + subjobID +                " - " + subjobName, (Vector)fSubjobHashtable.get("Job " +                subjobID + " - " + subjobName));        }    }    public void handleEvent(Map map)    {        String block = (String)map.get("block");        String jobID = (String)map.get("jobID");        String jobName = (String)map.get("jobName");        if (jobName == null) jobName = "<N/A>";        if (jobName.equals("")) jobName = "<N/A>";        String function = (String)map.get("function");        if (function == null) function = "";        String status = (String)map.get("status");        String jobFile = (String)map.get("jobfile");        if (jobFile == null) jobFile = "";        String jobFileMachine = (String)map.get("jobfilemachine");        if (jobFileMachine == null) jobFileMachine = "";        String functionArgs = (String)map.get("functionargs");        if (functionArgs == null) functionArgs = "";        String clearLogs = (String)map.get("clearlogs");        if (clearLogs == null) clearLogs = "";        String logTCElapsedTime = (String)map.get("logtcelapsedtime");        if (logTCElapsedTime == null) logTCElapsedTime = "";        String logTCNumStarts = (String)map.get("logtcnumstarts");        if (logTCNumStarts == null) logTCNumStarts = "";        String logTCStartStop = (String)map.get("logtcstartstop");        if (logTCStartStop == null) logTCStartStop = "";        String scriptFilesMachine = (String)map.get("scriptfilesmachine");        if (scriptFilesMachine == null) scriptFilesMachine = "";        if (status.equals("start"))        {            String startDate = (String)map.get("startdate");            if (startDate == null) startDate = "";            String startTime = (String)map.get("starttime");            if (startTime == null) startTime = "";            Object rowData[] = new Object[7];            rowData[0] = jobID;            rowData[1] = jobName;            rowData[2] = function;            rowData[3] = "Running";

⌨️ 快捷键说明

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