mibTreeDemo.java
上传用户:aonuowh
上传日期:2021-05-23
资源大小:35390k
文件大小:4k
源码类别:

SNMP编程

开发平台:

C/C++

  1. /* $Id: mibTreeDemo.java,v 1.3.2.3 2009/01/28 12:51:12 prathika Exp $ */
  2. /*
  3.  * @(#)mibTreeDemo.java
  4.  * Copyright (c) 1996-2009 AdventNet, Inc. All Rights Reserved.
  5.  * Please read the COPYRIGHTS file for more details.
  6.  */
  7. /**
  8.  *  An example of using the MibTree class with the JFC tree component.
  9.  *  This enables loading and using SNMP MIBs with the JFC.
  10.  *  mibs .Mandatory.          - The mibs to be loaded.
  11.  **/
  12. import javax.swing.*;
  13. import javax.swing.tree.*;
  14. import javax.swing.event.*;
  15. import java.awt.event.*;
  16. import java.awt.*;
  17. import com.adventnet.snmp.ui.*;
  18. import com.adventnet.snmp.mibs.*;
  19. public class mibTreeDemo extends JFrame {
  20.     JTextArea text; // we'll use to display node information
  21.     public mibTreeDemo(String mibs) {
  22.         super("MainWindow");
  23.     MibOperations mibOps = new MibOperations();
  24.      //To load MIBs from compiled file
  25.      mibOps.setLoadFromCompiledMibs(true);
  26.     try {
  27.         System.out.println("Loading MIBs: "+mibs);
  28.         mibOps.loadMibModules(mibs);
  29.         System.out.println("Done.");
  30.     } catch (Exception ex) {
  31.         System.err.println("Error: "+ex);
  32.     }
  33.         JPanel treepanel = new JPanel();
  34.         JPanel displaypanel = new JPanel();
  35.         JSplitPane splitpane = new JSplitPane();
  36.         splitpane.setOrientation(JSplitPane.HORIZONTAL_SPLIT);
  37.         splitpane.setLeftComponent(treepanel);
  38.         splitpane.setDividerSize(2);
  39.         splitpane.setRightComponent(displaypanel);
  40.     MibTree tree = new MibTree(mibOps);
  41.     //tree.setRootVisible(false);
  42.         //Create the scroll pane and add the tree to it.
  43.     JScrollPane scrollPane = new JScrollPane(tree);
  44.     //Add the scroll pane to this tree panel.
  45.     treepanel.setLayout(new GridLayout(1, 0));
  46.     treepanel.setMinimumSize(new Dimension(200,300));
  47.         treepanel.add(scrollPane);
  48.     // lets add a text area at right
  49.     text = new JTextArea("We'll display MIB node information here");
  50.     text.setLineWrap(true);
  51.         displaypanel.setLayout(new GridLayout(1, 0));
  52.     displaypanel.add(text);
  53.     displaypanel.setMinimumSize(new Dimension(300,300));
  54.     // add the splitpane
  55.     getContentPane().add(splitpane);
  56.     setTitle("JFC Mib Tree Demo");
  57.     // Need to setup a listener for selection to display data
  58.     TreeSelectionListener listener = new TreeSelectionListener() {
  59.       public void valueChanged(TreeSelectionEvent e) {
  60.         Object selected = e.getPath().getLastPathComponent();
  61.         if (selected instanceof NodeData) {
  62.           Object obj = ((NodeData)selected).getUserObject();
  63.           if (obj instanceof MibNode)
  64.           text.setText("nn"+ ((MibNode)obj).toTagString() );
  65.         } //else text.setText( "Selected: "+selected.getClass() );
  66.       }
  67.     };
  68.         tree.getTree().addTreeSelectionListener(listener);
  69.         tree.getTree().expandRow(0);
  70.     } /* mibTreeDemo */
  71.     public static void main(String[] args) {
  72.         if(args.length<1){
  73.         System.out.println("usage: mibTreeDemo MIB_File ");
  74.         System.exit(0);
  75.         }
  76.     String mibs = args[0];
  77.         try {
  78.             UIManager.setLookAndFeel(
  79.                 UIManager.getSystemLookAndFeelClassName());
  80.         } catch (Exception e) {
  81.             System.err.println("Couldn't use the system "
  82.                              + "look and feel: " + e);
  83.         }
  84.         JFrame frame = new mibTreeDemo(mibs);
  85.         WindowListener l = new WindowAdapter() {
  86.             public void windowClosing(WindowEvent e) {
  87.                 System.exit(0);
  88.             }
  89.         };
  90.         frame.addWindowListener(l);
  91.         frame.setSize(700,500);
  92.         frame.setVisible(true);
  93.     }
  94. }