📄 staxmonitorstafcmdextension.java
字号:
public int getExtensionType() { return STAXMonitorFrame.EXTENSION_ACTIVE; } public JComponent getComponent() { return fSTAFCmdTable; } public void mouseClicked(MouseEvent e) { int selectedRow = fSTAFCmdTable.getSelectedRow(); if (selectedRow == -1) return; String cmdID = (String) fSTAFCmdTable.getValueAt(selectedRow, 3); synchronized(fCmdHashtable) { fMonitorFrame.updateCurrentSelection((String)fSTAFCmdTable. getValueAt(selectedRow, 0), (Vector)fCmdHashtable.get(cmdID)); } } public void mousePressed(MouseEvent e) {} public void mouseReleased(MouseEvent e) {} public void mouseEntered(MouseEvent e) {} public void mouseExited(MouseEvent e) {} public void handleEvent(Map map) { String block = (String)map.get("block"); String commandName = (String)map.get("name"); String location = (String)map.get("location"); String requestNumber = (String)map.get("requestNumber"); String STAFCmdID = location + ":" + requestNumber; String service = (String)map.get("service"); String request = (String)map.get("request"); String status = (String)map.get("status"); if (status == null) { return; // Ignore event } if (status.equals("start")) { 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); STAFResult queryResult = fHandle.submit2( fStaxMachine, fStaxServiceName, "QUERY JOB " + fJobNumber + " STAFCMD " + requestNumber); if (queryResult.rc != 0) { // Ignore since stafcmd may have already completed return; } STAFMarshallingContext mc = STAFMarshallingContext.unmarshall(queryResult.result); Map processMap = (HashMap)mc.getRootObject(); // startTimestamp format is YYYYMMDD-HH:MM:SS String startTimestamp = (String)processMap.get("startTimestamp"); String startDate = startTimestamp.substring(0, 8); String startTime = startTimestamp.substring(9); synchronized(fSTAFCmdStartTimes) { fSTAFCmdStartTimes.put( STAFCmdID, STAXMonitorUtil.getCalendar2(startDate, startTime)); } addRow(cmdDataVector, "Started", startDate + "-" + startTime); synchronized(fCmdHashtable) { fCmdHashtable.put(STAFCmdID, cmdDataVector); } } else if (status.equals("stop")) { Vector dataVector = fSTAFCmdTableModel.getDataVector(); for (int i = 0; i < dataVector.size(); i++) { Vector currentRow = (Vector)(dataVector.elementAt(i)); synchronized(fCmdHashtable) { fCmdHashtable.remove(STAFCmdID); } synchronized(fSTAFCmdStartTimes) { fSTAFCmdStartTimes.remove(STAFCmdID); } if (((String)currentRow.elementAt(3)). equalsIgnoreCase(STAFCmdID)) { fSTAFCmdTableModel.removeRow(i); STAXMonitorUtil.updateRowHeights(fSTAFCmdTable, 1); STAXMonitorUtil.sizeColumnsToFitText(fSTAFCmdTable); break; } } } } public void addRow(Vector vector, String name, String value) { Vector newRow = new Vector(2); newRow.add(name); newRow.add(value); vector.add(newRow); } public void term() { boolean fContinueSTAFCmdMonitor = false; STAXMonitorUtil.freeHandle(fHandle.getHandle()); } class MonitorElapsedTime extends Thread { public void run() { final int waitTime = fMonitorFrame.getElapsedTimeInterval(); if (waitTime == 0) return; while (fContinueElapsedTime) { synchronized(fSTAFCmdTableModel) { Runnable STAFCmdRunnable = new Runnable() { public void run() { Vector dataVector = fSTAFCmdTableModel.getDataVector(); for (int i = 0; i < dataVector.size(); i++) { Vector currentRow = (Vector)(dataVector.elementAt(i)); String locationAndHandle = (String)currentRow.elementAt(3); final int row = i; synchronized(fSTAFCmdStartTimes) { Calendar STAFCmdStarted = (Calendar) fSTAFCmdStartTimes.get( locationAndHandle); if (STAFCmdStarted != null) { fSTAFCmdTableModel.setValueAt( STAXMonitorUtil.getElapsedTime( STAFCmdStarted), row, 1); } } } fSTAFCmdTable.repaint(); } }; try { SwingUtilities.invokeAndWait(STAFCmdRunnable); } catch (InterruptedException ex) { ex.printStackTrace(); } catch (InvocationTargetException ex) { ex.printStackTrace(); } } try { Thread.sleep(waitTime); } catch (InterruptedException ex) { } } } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -