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

📄 extdelay.java

📁 Software Testing Automation Framework (STAF)的开发代码
💻 JAVA
字号:
/*****************************************************************************//* Software Testing Automation Framework (STAF)                              *//* (C) Copyright IBM Corp. 2002                                              *//*                                                                           *//* This software is licensed under the Common Public License (CPL) V1.0.     *//*****************************************************************************/package com.ibm.staf.service.stax.extension.samples.extdelay;import javax.swing.*;import javax.swing.event.*;import com.ibm.staf.*;import java.util.*;import java.awt.*;import java.lang.reflect.*;import com.ibm.staf.service.stax.*;    public class ExtDelay implements STAXMonitorExtension{    STAFHandle fHandle;    String fLocalMachine;    String fStaxMachine;    String fStaxServiceName;    String fJobNumber;    STAXMonitorFrame fMonitorFrame;    String fTitle;    HashMap fProgressBarMap;    boolean fContinueElapsedTime = true;    Hashtable fMonitorDelayStartTimes = new Hashtable();    Hashtable fMonitorDelayTimeLabels = new Hashtable();    MonitorElapsedTime fElapsedTime;        private ImageIcon delayIcon;        public JComponent init(STAXMonitorFrame monitorFrame, boolean newJob,                           String staxMachineName,                            String staxServiceName, String jobNumber)                           throws STAFException    {        fMonitorFrame = monitorFrame;        fStaxMachine = staxMachineName;        fStaxServiceName = staxServiceName;        fJobNumber = jobNumber;        fTitle = "Delay text";                Class c = this.getClass();        ClassLoader classLoader = c.getClassLoader();                delayIcon = ((STAXMonitorExtensionClassLoader)classLoader).            getImage("delay.gif");                fProgressBarMap = new HashMap();                fElapsedTime = new MonitorElapsedTime();        fElapsedTime.start();               return new JPanel();    }            public String getNotificationEventTypes()    {        return "ext-delay";    }        public void term() {}        public String getTitle()     {         return fTitle;     }        public int getExtensionType()    {        return STAXMonitorFrame.EXTENSION_ACTIVE_JOB_ELEMENTS;    }        public JComponent getComponent()    {        return new JPanel();    }        public void handleEvent(Map map)    {        String status = (String)map.get("status");                String block = (String)map.get("block");                String id = (String)map.get("name");                if (status.equals("start"))        {            String delay = (String)map.get("delay");            Vector delayDataVector = new Vector();                            addRow(delayDataVector, "Delay Value", delay);                        JProgressBar progressBar = new JProgressBar();            progressBar.setMaximum((new Integer(delay)).intValue());            progressBar.setStringPainted(true);            Dimension dim = progressBar.getPreferredSize();            dim.height = 20;            progressBar.setPreferredSize(dim);                        synchronized(fProgressBarMap)            {                fProgressBarMap.put(id, progressBar);            }                        JLabel elapsedTimeLabel = new JLabel();            elapsedTimeLabel.setFont(new Font("Dialog", Font.PLAIN, 12));                        JPanel extPanel = new JPanel();            extPanel.setLayout(new BorderLayout());            extPanel.setBackground(Color.white);            extPanel.add(BorderLayout.CENTER, progressBar);            extPanel.add(BorderLayout.EAST, elapsedTimeLabel);            fMonitorFrame.addActiveJobElementsNode("delay", id,                 block, id, delayIcon, extPanel, delayDataVector);                      synchronized(fMonitorDelayStartTimes)            {                fMonitorDelayStartTimes.put(id, Calendar.getInstance());            }                            synchronized(fMonitorDelayTimeLabels)            {                fMonitorDelayTimeLabels.put(id, elapsedTimeLabel);            }        }        else if (status.equals("stop"))        {            synchronized(fProgressBarMap)            {                fProgressBarMap.remove(id);            }                        synchronized(fMonitorDelayStartTimes)            {                fMonitorDelayStartTimes.remove(id);            }                        synchronized(fMonitorDelayTimeLabels)            {                fMonitorDelayTimeLabels.remove(id);            }                               fMonitorFrame.removeActiveJobElementsNode(id, block);        }        else if (status.equals("iterate"))        {            String delay = (String)map.get("delay");                        String currentIter = (String)map.get("currentiter");                        Integer delayInt = new Integer(delay);                        final Integer currentIterInt = new Integer(currentIter);                        float delayFloat = (float)(delayInt.intValue());            float currentIterFloat = (float)(currentIterInt.intValue());                        int percent = (int)((currentIterFloat / delayFloat * 100));                        final JProgressBar progressBar =                 (JProgressBar)fProgressBarMap.get(id);                        progressBar.setValue(currentIterInt.intValue());                        fMonitorFrame.setActiveJobElementsNodeText(id, id +                 "  " + (new Integer(percent).toString()) + "% complete");        }    }    public void addRow(Vector vector, String name, String value)    {        Vector newRow = new Vector(2);        newRow.add(name);        newRow.add(value);        vector.add(newRow);    }        class MonitorElapsedTime extends Thread    {        public void run()        {            final int waitTime = fMonitorFrame.getElapsedTimeInterval();                        if (waitTime == 0)                return;                        while (fContinueElapsedTime)            {                final Enumeration delayElapsedTimeKeys =                     fMonitorDelayStartTimes.keys();                                                    Runnable delayRunnable = new Runnable()                {                    public void run()                    {                        while (fContinueElapsedTime &&                                delayElapsedTimeKeys.hasMoreElements())                        {                            String delayKey =                                 (String)delayElapsedTimeKeys.nextElement();                                                            Calendar delayStarted = (Calendar)                                fMonitorDelayStartTimes.get(delayKey);                                            synchronized(fMonitorDelayTimeLabels)                            {                                JLabel elapsedTimeLabel = (JLabel)                                    fMonitorDelayTimeLabels.get(delayKey);                                                            elapsedTimeLabel.setText("  (" + STAXMonitorUtil.                                    getElapsedTime(delayStarted) + ")");                            }                        }                    }                };                                    try                {                    SwingUtilities.invokeAndWait(delayRunnable);                }                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 + -