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

📄 staxmonitorprocessextension.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 STAXMonitorProcessExtension implements STAXMonitorExtension,                                                      MouseListener{    JPanel fPanel;    STAFHandle fHandle;    JTable fProcessTable;    STAXMonitorTableModel fProcessTableModel;    STAXMonitorTableSorter fProcessModelSorter;    Vector fProcessColumns;    Vector fProcessVector = new Vector();    Hashtable fProcessIDs = new Hashtable();    boolean fContinueProcessMonitor = true;    STAFProcessMonitor fProcessMonitor;    Hashtable fProcessStartTimes = new Hashtable();    String fStaxMachine;    String fStaxServiceName;    String fJobNumber;    MonitorElapsedTime fElapsedTime;    boolean fContinueElapsedTime = true;    STAXMonitorFrame fMonitorFrame;    String fTitle;    Hashtable fProcessHashtable = new Hashtable();    public JComponent init(STAXMonitorFrame monitorFrame, boolean newJob,                           String staxMachineName,                           String staxServiceName, String jobNumber)                           throws STAFException    {        fMonitorFrame = monitorFrame;        fStaxMachine = staxMachineName;        fStaxServiceName = staxServiceName;        fJobNumber = jobNumber;        fTitle = "Active Processes";        fPanel = new JPanel();        fPanel.setLayout(new BorderLayout());        try        {            fHandle = STAXMonitorUtil.getNewSTAFHandle(                "STAX/JobMonitor/Extension/ProcessTable");        }        catch (STAFException ex)        {        }        fProcessColumns = new Vector();        fProcessColumns.addElement("Process Name");        fProcessColumns.addElement("Elapsed Time");        fProcessColumns.addElement("Status");        fProcessColumns.addElement("Block");        fProcessColumns.addElement("Machine:Handle");        fProcessColumns.addElement("Command");        fProcessTableModel = new STAXMonitorTableModel(fProcessColumns, 0);        fProcessModelSorter =            new STAXMonitorTableSorter(fProcessTableModel, 0);        fProcessTable = new JTable(fProcessModelSorter);        fProcessModelSorter.addMouseListenerToHeaderInTable(            fProcessTable, 3);        fProcessTable.setRowSelectionAllowed(true);        fProcessTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);        fProcessTable.addMouseListener(this);        fProcessTable.getColumnModel().getColumn(0).setCellRenderer(            new STAXMonitorTableCellRenderer(new Color(0, 130, 0)));        fProcessTable.getColumnModel().getColumn(0).            setHeaderRenderer(new STAXMonitorTableCellRenderer(Color.black,                true, new Font("Dialog", Font.BOLD, 12)));        fProcessTable.getColumnModel().getColumn(1).setCellRenderer(            new STAXMonitorTableCellRenderer(Color.blue));        fProcessTable.getColumnModel().getColumn(1).            setHeaderRenderer(new STAXMonitorTableCellRenderer(Color.black,                true, new Font("Dialog", Font.BOLD, 12)));        fProcessTable.getColumnModel().getColumn(2).setCellRenderer(            new STAXMonitorTableCellRenderer(Color.blue));        fProcessTable.getColumnModel().getColumn(2).            setHeaderRenderer(new STAXMonitorTableCellRenderer(Color.black,                true, new Font("Dialog", Font.BOLD, 12)));        fProcessTable.getColumnModel().getColumn(3).setCellRenderer(            new STAXMonitorTableCellRenderer(new Color(0, 130, 0)));        fProcessTable.getColumnModel().getColumn(3).            setHeaderRenderer(new STAXMonitorTableCellRenderer(Color.black,                true, new Font("Dialog", Font.BOLD, 12)));        fProcessTable.getColumnModel().getColumn(4).setCellRenderer(            new STAXMonitorTableCellRenderer(new Color(0, 130, 0)));        fProcessTable.getColumnModel().getColumn(4).            setHeaderRenderer(new STAXMonitorTableCellRenderer(Color.black,                true, new Font("Dialog", Font.BOLD, 12)));        fProcessTable.getColumnModel().getColumn(5).setCellRenderer(            new STAXMonitorTableCellRenderer(new Color(0, 130, 0)));        fProcessTable.getColumnModel().getColumn(5).            setHeaderRenderer(new STAXMonitorTableCellRenderer(Color.black,                true, new Font("Dialog", Font.BOLD, 12)));        fPanel.add(BorderLayout.CENTER, new JScrollPane(fProcessTable));        fProcessTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);        STAXMonitorUtil.sizeColumnsToFitText(fProcessTable);        if (!newJob)        {            // Determine the processes that are currently running in the job            String request = "LIST JOB " + fJobNumber + " PROCESSES";            STAFResult listResult = fHandle.submit2(                fStaxMachine, fStaxServiceName, request);            if (listResult.rc != 0)            {                throw new STAFException(                    listResult.rc,                    "Error listing Job PROCESSES\n" + listResult.result);            }            STAFMarshallingContext mc =                STAFMarshallingContext.unmarshall(listResult.result);            java.util.List processList = (java.util.List)mc.getRootObject();            Iterator iter = processList.iterator();                        while (iter.hasNext())            {                Map processMap = (Map)iter.next();                String location = (String)processMap.get("location");                String handleNumber = (String)processMap.get("handle");                request = "QUERY JOB " + fJobNumber + " PROCESS " +                          location + ":" + handleNumber;                STAFResult queryResult = fHandle.submit2(                    fStaxMachine, fStaxServiceName, request);                if (queryResult.rc != 0)                {                    continue;                }                mc = STAFMarshallingContext.unmarshall(queryResult.result);                processMap = (HashMap)mc.getRootObject();                String block = (String)processMap.get("blockName");                String processName = (String)processMap.get("processName");                String command = (String)processMap.get("command");                String processID = location + ":" + handleNumber;                String machineHandleText = location + ":";                machineHandleText += handleNumber;                String startTimestamp =                     (String)processMap.get("startTimestamp");                String startDate = startTimestamp.substring(0, 8);                String startTime = startTimestamp.substring(9);                synchronized(fProcessStartTimes)                {                    fProcessStartTimes.put(                        processID,                        STAXMonitorUtil.getCalendar2(startDate, startTime));                }                                Object rowData[] = new Object[6];                rowData[0] = processName;                rowData[1] = "";                rowData[2] = "";                rowData[3] = block;                rowData[4] = machineHandleText;                rowData[5] = command;                fProcessTableModel.addRow(rowData);                Vector procDataVector = new Vector();                STAXMonitorUtil.assignProcessInfo(processMap, procDataVector);                synchronized(fProcessHashtable)                {                    fProcessHashtable.put(processID, procDataVector);                }                STAXMonitorUtil.updateRowHeights(fProcessTable, 1);                STAXMonitorUtil.sizeColumnsToFitText(fProcessTable);            }        }        fProcessMonitor = new STAFProcessMonitor();        fProcessMonitor.start();        fElapsedTime = new MonitorElapsedTime();        fElapsedTime.start();        return fProcessTable;    }    public String getNotificationEventTypes()    {        return "process";    }    public String getTitle()    {        return fTitle;    }    public int getExtensionType()    {        return STAXMonitorFrame.EXTENSION_ACTIVE;    }    public JComponent getComponent()    {        return fProcessTable;    }    public void mouseClicked(MouseEvent e)    {        int selectedRow = fProcessTable.getSelectedRow();        if (selectedRow == -1)            return;        String processID = (String)            fProcessTable.getValueAt(selectedRow, 4);        synchronized(fProcessHashtable)        {            fMonitorFrame.updateCurrentSelection((String)fProcessTable.

⌨️ 快捷键说明

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