📄 staxmonitorstafcmdextension.java
字号:
/*****************************************************************************//* 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 STAXMonitorSTAFCmdExtension implements STAXMonitorExtension, MouseListener{ JPanel fPanel; STAFHandle fHandle; JTable fSTAFCmdTable; STAXMonitorTableModel fSTAFCmdTableModel; STAXMonitorTableSorter fSTAFCmdModelSorter; Vector fSTAFCmdColumns; Vector fSTAFCmdVector = new Vector(); Hashtable fSTAFCmdIDs = new Hashtable(); Hashtable fSTAFCmdStartTimes = new Hashtable(); String fStaxMachine; String fStaxServiceName; String fJobNumber; MonitorElapsedTime fElapsedTime; boolean fContinueElapsedTime = true; STAXMonitorFrame fMonitorFrame; String fTitle; Hashtable fCmdHashtable = 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 STAFCmds"; fPanel = new JPanel(); fPanel.setLayout(new BorderLayout()); try { fHandle = STAXMonitorUtil.getNewSTAFHandle( "STAX/JobMonitor/Extension/STAFCmdTable"); } catch (STAFException ex) { } fSTAFCmdColumns = new Vector(); fSTAFCmdColumns.addElement("Command Name"); fSTAFCmdColumns.addElement("Elapsed Time"); fSTAFCmdColumns.addElement("Block"); fSTAFCmdColumns.addElement("Machine:Request#"); fSTAFCmdColumns.addElement("Service"); fSTAFCmdColumns.addElement("Request"); fSTAFCmdTableModel = new STAXMonitorTableModel(fSTAFCmdColumns, 0); fSTAFCmdModelSorter = new STAXMonitorTableSorter(fSTAFCmdTableModel, 0); fSTAFCmdTable = new JTable(fSTAFCmdModelSorter); fSTAFCmdModelSorter.addMouseListenerToHeaderInTable( fSTAFCmdTable, 3); fSTAFCmdTable.setRowSelectionAllowed(true); fSTAFCmdTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); fSTAFCmdTable.addMouseListener(this); fSTAFCmdTable.getColumnModel().getColumn(0).setCellRenderer( new STAXMonitorTableCellRenderer(new Color(0, 130, 0))); fSTAFCmdTable.getColumnModel().getColumn(0). setHeaderRenderer(new STAXMonitorTableCellRenderer(Color.black, true, new Font("Dialog", Font.BOLD, 12))); fSTAFCmdTable.getColumnModel().getColumn(1).setCellRenderer( new STAXMonitorTableCellRenderer(Color.blue)); fSTAFCmdTable.getColumnModel().getColumn(1). setHeaderRenderer(new STAXMonitorTableCellRenderer(Color.black, true, new Font("Dialog", Font.BOLD, 12))); fSTAFCmdTable.getColumnModel().getColumn(2).setCellRenderer( new STAXMonitorTableCellRenderer(new Color(0, 130, 0))); fSTAFCmdTable.getColumnModel().getColumn(2). setHeaderRenderer(new STAXMonitorTableCellRenderer(Color.black, true, new Font("Dialog", Font.BOLD, 12))); fSTAFCmdTable.getColumnModel().getColumn(3).setCellRenderer( new STAXMonitorTableCellRenderer(new Color(0, 130, 0))); fSTAFCmdTable.getColumnModel().getColumn(3). setHeaderRenderer(new STAXMonitorTableCellRenderer(Color.black, true, new Font("Dialog", Font.BOLD, 12))); fSTAFCmdTable.getColumnModel().getColumn(4).setCellRenderer( new STAXMonitorTableCellRenderer(new Color(0, 130, 0))); fSTAFCmdTable.getColumnModel().getColumn(4). setHeaderRenderer(new STAXMonitorTableCellRenderer(Color.black, true, new Font("Dialog", Font.BOLD, 12))); fSTAFCmdTable.getColumnModel().getColumn(5).setCellRenderer( new STAXMonitorTableCellRenderer(new Color(0, 130, 0))); fSTAFCmdTable.getColumnModel().getColumn(5). setHeaderRenderer(new STAXMonitorTableCellRenderer(Color.black, true, new Font("Dialog", Font.BOLD, 12))); fSTAFCmdTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); STAXMonitorUtil.sizeColumnsToFitText(fSTAFCmdTable); if (!newJob) { String listRequest = "LIST JOB " + fJobNumber + " STAFCMDS"; STAFResult listResult = fHandle.submit2( fStaxMachine, fStaxServiceName, listRequest); if (listResult.rc != 0) { throw new STAFException( listResult.rc, "Error listing Job STAFCMDS\n" + listResult.result); } STAFMarshallingContext mc = STAFMarshallingContext.unmarshall(listResult.result); java.util.List stafcmdList = (java.util.List)mc.getRootObject(); Iterator iter = stafcmdList.iterator(); while (iter.hasNext()) { Map stafcmdMap = (Map)iter.next(); String commandName = (String)stafcmdMap.get("stafcmdName"); String location = (String)stafcmdMap.get("location"); String requestNumber = (String)stafcmdMap.get("requestNum"); String service = (String)stafcmdMap.get("service"); String request = (String)stafcmdMap.get("request"); STAFResult queryResult = fHandle.submit2( fStaxMachine, fStaxServiceName, "QUERY JOB " + fJobNumber + " STAFCMD " + requestNumber); if (queryResult.rc != 0) { // Ignore as Stafcmd could have already completed continue; } mc = STAFMarshallingContext.unmarshall(queryResult.result); stafcmdMap = (HashMap)mc.getRootObject(); String block = (String)stafcmdMap.get("blockName"); String stafcmdName = (String)stafcmdMap.get("stafcmdName"); String startTimestamp = (String)stafcmdMap.get("startTimestamp"); String startDate = startTimestamp.substring(0, 8); String startTime = startTimestamp.substring(9); String STAFCmdID = location + ":" + requestNumber; synchronized(fSTAFCmdStartTimes) { fSTAFCmdStartTimes.put( STAFCmdID, STAXMonitorUtil.getCalendar2(startDate, startTime)); } Object rowData[] = new Object[6]; rowData[0] = commandName; rowData[1] = ""; rowData[2] = block; rowData[3] = STAFCmdID; rowData[4] = service; rowData[5] = request; fSTAFCmdTableModel.addRow(rowData); STAXMonitorUtil.updateRowHeights(fSTAFCmdTable, 1); STAXMonitorUtil.sizeColumnsToFitText(fSTAFCmdTable); Vector cmdDataVector = new Vector(); addRow(cmdDataVector, "Location", location); addRow(cmdDataVector, "Request Number", requestNumber); addRow(cmdDataVector, "Service", service); addRow(cmdDataVector, "Request", request); addRow(cmdDataVector, "Started", startDate + "-" + startTime); synchronized(fCmdHashtable) { fCmdHashtable.put(STAFCmdID, cmdDataVector); } } } fElapsedTime = new MonitorElapsedTime(); fElapsedTime.start(); //return fPanel; return fSTAFCmdTable; } public String getNotificationEventTypes() { return "stafcommand"; } public String getTitle() { return fTitle; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -