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

📄 getallinterfacesui.java

📁 snmp zip 包开发snmp协议
💻 JAVA
字号:
// NAME//      $RCSfile: getAllInterfacesUI.java,v $// DESCRIPTION//      [given below in javadoc format]// DELTA//      $Revision: 1.4 $// CREATED//      $Date: 2006/01/17 17:43:54 $// COPYRIGHT//      Westhawk Ltd// TO DO///* * Copyright (C) 1996 - 2006 by Westhawk Ltd * * Permission to use, copy, modify, and distribute this software * for any purpose and without fee is hereby granted, provided * that the above copyright notices appear in all copies and that * both the copyright notice and this permission notice appear in * supporting documentation. * This software is provided "as is" without express or implied * warranty. * author <a href="mailto:snmp@westhawk.co.uk">Tim Panton</a> */package uk.co.westhawk.examplev1;import java.awt.*; import java.awt.event.*; import javax.swing.*;import java.util.*;import java.io.*;import java.net.*;import uk.co.westhawk.tablelayout.*;import uk.co.westhawk.visual.*;/** * <p> * The getAllInterfacesUI application opens a connection to a servlet, parses * its output and shows the interface's speed as a Level. * </p> * * <p> * All parameters can be configured in the properties file.  * The name of the properties file can be passed as first argument to * this application. If there is no such argument, it will look for * <code>getAllInterfacesUI.properties</code>. If this file does not exist, the * application will use default parameters. * </p> * * @see Level * @see uk.co.westhawk.servlet.Interfaces * @author <a href="mailto:snmp@westhawk.co.uk">Birgit Arkesteijn</a> * @version $Revision: 1.4 $ $Date: 2006/01/17 17:43:54 $ */public class getAllInterfacesUI extends JPanel        implements Runnable {    private static final String     version_id =        "@(#)$Id: getAllInterfacesUI.java,v 1.4 2006/01/17 17:43:54 birgit Exp $ Copyright Westhawk Ltd";    /**     * The servlet with all the Interface info. URL     */    public final static String SERVLET = "servlet";    /**     * The number of columns.     */    public final static String COLUMN = "column";    /**     * The polling interval (sec).     */    public final static String INTERVAL = "interval";    /**     * The foreground color of the application (text color). (rgb).     */    public final static String FG = "fg";    /**     * The background color of the application. (rgb).     */    public final static String BG = "bg";    /**     * The foreground color of the levels, when interface is up. (rgb).     */    public final static String LBG = "lbg";    /**     * The foreground color of the levels, when interface is not up. (rgb).     */    public final static String LFGU = "lfgu";    /**     * The background color of the levels. (rgb).     */    public final static String LFGD = "lfgd";    // Parameters:    private String servlet_str;    private int column;    private int interval;    private Color fg,                  bg,                  lbg,                  lfgu,                  lfgd;    private URL servlet;    private Thread kick = null;    private boolean isRunning = false;    private JPanel levelPanel = new JPanel();    private JLabel messageLabel = new JLabel(" ");    private TableLayout table=null;    private Hashtable   hash=null;    private Util util;/** * Constructor. * * @param propertiesFilename The name of the properties file. Can be * null. */public getAllInterfacesUI(String propertiesFilename){    util = new Util(propertiesFilename, this.getClass().getName());}public void init (){    getParameters();    this.setBackground (bg);    this.setForeground (fg);    servlet = null;    try    {        if (servlet_str != null)        {            servlet = new URL(servlet_str);        }    }    catch (MalformedURLException e)    {        setMessage("Malformed URL: " + e.getMessage());    }    catch(IllegalArgumentException e)    {        setMessage("Illegal Arguments: " + e.getMessage());    }    table = new TableLayout();    this.setLayout(table);    hash = new Hashtable();    GridLayout grid = new GridLayout();    grid.setColumns(column);    grid.setRows(0);    grid.setHgap(5);    grid.setVgap(5);    levelPanel.setLayout(grid);    this.add("0 0", levelPanel);    this.add("0 1 hH", messageLabel);}public void run() {    URLConnection conn;    BufferedReader inp;    while (isRunning)    {        try        {            conn = servlet.openConnection();            conn.setUseCaches(false);            inp = new BufferedReader(                  new InputStreamReader(servlet.openStream()));                                   String nr_str = inp.readLine();            int nr;            nr = 0;            try            {                nr = Integer.valueOf(nr_str.trim()).intValue();            }            catch (NumberFormatException e)            {                setMessage("NumberFormatException " + nr_str + " "                       + e.getMessage());            }            if (nr>0)            {                for (int i=0; i<nr; i++)                {                    String str = inp.readLine();                    parseInterface(new Integer(i), str);                }            }            this.validate();        }        catch (IOException e)        {            setMessage("IOException(): " + e.getMessage());        }        try        {            Thread.sleep(interval*1000);        }        catch (java.lang.InterruptedException e)        {            ;// ignore it        }    }}public void start(){    if (servlet != null)    {        if (kick == null)        {            isRunning = true;            kick = new Thread(this);            kick.start();        }    }}public synchronized void stop(){    if (kick != null)    {        isRunning = false;        kick = null;    }}public void setMessage(String msg){    messageLabel.setText(msg);}private void parseInterface(Integer linenr, String line){    Level lev;    StringTokenizer tok = new StringTokenizer(line, "\t\n\r,");    int nr = tok.countTokens();    String index="";    double speed=0;    int    opr_status=4;    String description="";    //System.out.println(getClass().getName() + ".parseInterface(): " + line);    for (int i=0; i<nr; i++)    {        String s="";        try        {            s = tok.nextToken();        }        catch (NoSuchElementException e) { }        switch (i)        {            case 0:                index = s;                break;            case 1:                try                {                    speed = Double.valueOf(s.trim()).doubleValue();                    if (speed < 0.0)                    {                        speed = 0.0;                    }                }                catch (NumberFormatException e)                {                    setMessage("NumberFormatException "                           + s + " " + e.getMessage());                }                break;            case 2:                try                {                    opr_status = Integer.valueOf(s.trim()).intValue();                }                catch (NumberFormatException e)                {                    setMessage("NumberFormatException "                             + s + " " + e.getMessage());                }                break;            case 3:                description = s;                break;            default:                ;        }    }    /*    System.out.println(        "index=" + index +        ", speed=" + speed +        ", opr_status=" + opr_status +        ", description=" + description);    System.out.println();    */    if ((lev = (Level)hash.get(linenr)) == null)    {        lev = new Level();        lev.setForeground(fg);        lev.setBackground(bg);        lev.setLevelBackground(lbg);        if (opr_status == 1)        {            lev.setLevelForeground(lfgu);        }        else        {            lev.setLevelForeground(lfgd);        }        hash.put(linenr, lev);        int ln = linenr.intValue();        int col = linenr.intValue() % column;        if (col == 0)        {            lev.setScale(true);        }        else        {            lev.setScale(false);        }        levelPanel.add(lev);    }    lev.setValue(speed);    lev.setName(description + " (" + index + ")");}private void getParameters(){    servlet_str = util.getProperty(SERVLET);    if (servlet_str == null)    {        setMessage("Missing paramet servlet");    }    column = getIntParameter(COLUMN, 5);    interval = getIntParameter(INTERVAL, 5);    fg = getColorParameter(FG, Color.black);    bg = getColorParameter(BG, Color.lightGray);    lbg = getColorParameter(LBG, Color.white);    lfgu = getColorParameter(LFGU, Color.orange);    lfgd = getColorParameter(LFGD, Color.red);}private int getIntParameter(String para, int def){    String str = util.getProperty(para);    int value = def;    if (str != null)    {        try        {            value = Integer.valueOf(str.trim()).intValue();        }        catch (NumberFormatException e) { }    }    return value;}private int getColorParameter(String para, int def){    String str = util.getProperty(para);    int value = def;    if (str != null)    {        try        {            value = Integer.valueOf(str.trim()).intValue();        }        catch (NumberFormatException e) { }    }    return value;}private Color getColorParameter(String para, Color def){    String str = util.getProperty(para);    Color value = def;    if (str != null)    {        StringTokenizer tok = new StringTokenizer(str, "\t\n\r,");        int nr = tok.countTokens();        if (nr == 3)        {            try            {                int r = Integer.valueOf(tok.nextToken().trim()).intValue();                int g = Integer.valueOf(tok.nextToken().trim()).intValue();                int b = Integer.valueOf(tok.nextToken().trim()).intValue();                value = new Color(r, g, b);            }            catch (NoSuchElementException e)            {                setMessage("NoSuchElementException: " + e.getMessage());            }            catch (NumberFormatException e)            {                setMessage("NumberFormatException: " + e.getMessage());            }        }    }    return value;}public static void main(String[] args){    String propFileName = null;    if (args.length > 0)    {        propFileName = args[0];    }    getAllInterfacesUI application = new getAllInterfacesUI(propFileName);    JFrame frame = new JFrame();    frame.setTitle(application.getClass().getName());    frame.getContentPane().setLayout(new BorderLayout());    frame.getContentPane().add(application, BorderLayout.CENTER);    application.init();    frame.addWindowListener(new WindowAdapter()    {        public void windowClosing(WindowEvent e)        {            System.exit(0);        }    });    frame.setBounds(50, 50, 750, 500);    frame.setVisible(true);    application.start();}}

⌨️ 快捷键说明

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