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

SNMP编程

开发平台:

C/C++

  1. /*$Id: lineGraphDemo.java,v 1.3 2002/09/09 05:35:19 tonyjpaul Exp $*/
  2. /*
  3.  * @(#)lineGraphDemo.java
  4.  * Copyright (c) 1996-2002 AdventNet, Inc. All Rights Reserved.
  5.  * Please read the COPYRIGHTS file for more details.
  6.  */
  7. import java.awt.*;
  8. import java.util.*;
  9. import java.awt.event.*;
  10. import java.applet.Applet;
  11. import com.adventnet.snmp.beans.*;
  12. import com.adventnet.snmp.ui.*;
  13. import javax.swing.*; 
  14. import java.io.*; 
  15. public class lineGraphDemo extends JFrame implements ActionListener,ComponentListener
  16.        
  17. //Declare the beans 
  18.     LineGraphBean  lineGraph = null;
  19.     SnmpPoller  poller = null;
  20.     
  21. JButton button = null;
  22.     JButton loadButton = null;
  23. JButton browseButton = null;
  24. JTextField communityText = null;
  25. JTextField oidText = null;
  26. JTextField mibText = null;
  27. JTextField hostText = null;
  28. JTextField intervalText = null;
  29. JPanel editPanel = new JPanel();
  30. JPanel labelPanel = new JPanel();
  31. long oldValue = 0;        
  32.     public static void main(String [] args) 
  33.     { 
  34.         try { 
  35.                 UIManager.setLookAndFeel( UIManager.getSystemLookAndFeelClassName());
  36.         } catch (Exception e) {}
  37.         lineGraphDemo frame = new lineGraphDemo(); 
  38.         frame.show(); 
  39.         
  40.         
  41.     }
  42.     public lineGraphDemo() 
  43.     { 
  44.         this.resize(650,400); 
  45.         this.setTitle( "LineGraph Demo"  ); 
  46.     }
  47.     public void init() 
  48.     { 
  49.         
  50.         // Set the layout for the container
  51.         getContentPane().setLayout(null);
  52.                 
  53.         //Instantiate lineGraph
  54.         
  55. //lineGraph= new LineGraphBean(300,250);
  56. lineGraph= new LineGraphBean();
  57. lineGraph.setBounds(20,50,300,250);
  58.         lineGraph.setLfontsize(15);
  59.         lineGraph.setLfontstyle("ITALIC");
  60. communityText = new JTextField("public", 10);
  61. oidText = new JTextField("1.3.0", 10);
  62. intervalText = new JTextField("1", 10);
  63. hostText = new JTextField("localhost", 10);
  64. mibText = new JTextField(10);
  65. loadButton = new JButton("Load MIB");
  66. loadButton.addActionListener(this);
  67. browseButton = new JButton("Browse...");
  68. browseButton.addActionListener(this);
  69. button= new JButton("Start Polling");
  70.         button.addActionListener(this);
  71. GridBagLayout gridbag = new GridBagLayout();
  72. GridBagConstraints c = new GridBagConstraints();
  73. //JPanel editPanel = new JPanel();
  74. editPanel.setLayout(gridbag);
  75. c.fill = GridBagConstraints.BOTH;
  76. c.insets = new Insets(0,0,5,0);
  77. addSingle(editPanel, gridbag, c, "Host :", hostText);
  78. addSingle(editPanel, gridbag, c, "Community :", communityText);
  79. addSingle(editPanel, gridbag, c, "OID :", oidText);
  80. addSingle(editPanel, gridbag, c, "Interval :", intervalText);
  81. addSingle(editPanel, gridbag, c, "MIB Url :", mibText);
  82. addSingle(editPanel, gridbag, c, "", browseButton);
  83. addSingle(editPanel, gridbag, c, "", loadButton);
  84. c.insets = new Insets(5,0,0,0);
  85. addSingle(editPanel, gridbag, c, "", button);
  86. editPanel.setBounds( 325, 50 ,250 ,250 );
  87. JLabel  label = new JLabel("You can give space separated list of OIDs");
  88. labelPanel.add("Center",label);
  89. labelPanel.setBounds(10,10,300,25);
  90. getContentPane().add("North", labelPanel);
  91. getContentPane().add("West", lineGraph);
  92. getContentPane().add("East", editPanel);
  93. addComponentListener(this);
  94.         //Instantiate snmpPoller
  95.         poller= new SnmpPoller();
  96. //Set the modified properties for lineGraph
  97.         try 
  98.         {
  99.             lineGraph.setForeground(new Color(-16764109));
  100.             lineGraph.setBackground(new Color(-16764109));
  101.         }catch(Exception ex){};
  102.     
  103. poller.addResultListener(lineGraph);  // listen for response events
  104. poller.setSendTimeoutEvents(true);    
  105. this.addWindowListener(new WindowAdapter(){
  106. public void windowClosing(WindowEvent e) {
  107. System.exit(0);
  108. }
  109. });
  110.     
  111. public void actionPerformed(ActionEvent e) {
  112. if (e.getActionCommand().equals("Browse...")) {
  113. FileDialog localFd = new FileDialog(this, "Mib Load Dialog", FileDialog.LOAD);
  114. localFd.setSize(700,300);
  115. localFd.show();
  116. String dir = localFd.getDirectory();
  117. String file = localFd.getFile();
  118. if((dir != null)&&(file != null))
  119. mibText.setText(dir + file);
  120. }
  121. if (e.getActionCommand().equals("Load MIB")) {
  122.         
  123. if(mibText.getText().trim().equals(""))
  124. System.err.println("Specify MIBs path");
  125. try { 
  126. poller.loadMibs( mibText.getText() );
  127. //mibText.setText("");
  128. }
  129. catch(Exception me) { 
  130. System.out.println("Loading MIB Failed. "+ me);
  131. //System.exit(1);
  132. }
  133. }
  134. if (e.getActionCommand().equals("Stop Polling")) {
  135. poller.stopPolling();
  136. button.setLabel("Start Polling");
  137. } else if (e.getActionCommand().equals("Start Polling")) { // else restart it
  138. setValues();
  139. poller.restartPolling();
  140. button.setLabel("Stop Polling");
  141. }
  142. public void show()
  143.     {
  144.         init();
  145.         super.show();
  146.     }
  147. public void setValues() {
  148. // load MIB to allow us to use names
  149. try{
  150. poller.setPollInterval( Integer.parseInt(intervalText.getText()) );
  151. }catch (NumberFormatException nfm){
  152. System.err.println("PollInterval should be an integer");
  153. intervalText.setText(String.valueOf(poller.getPollInterval()));
  154. }
  155. poller.setCommunity( communityText.getText() );
  156. poller.setTargetHost( hostText.getText() );
  157. String lineLabels = oidText.getText();
  158. StringTokenizer stoken = new StringTokenizer(lineLabels, " ");
  159.     int num = stoken.countTokens();
  160.     lineGraph.setTitle("Plotting "+num +" OIDs");
  161. String oidList[]  = new String[num]; 
  162.     for(int i=0; i<num; i++) 
  163. { // gather the oids from the lineLabels string
  164.     oidList[i] = stoken.nextToken();
  165. }
  166. poller.setObjectIDList(oidList);
  167. lineGraph.setLineLabels(lineLabels);     
  168. lineGraph.setValues(); 
  169. }
  170. /** Add a single textfield with label to a line **/
  171.   void addSingle(JPanel panel, GridBagLayout gridbag, GridBagConstraints c, String l1, JComponent t1) {
  172. c.gridwidth = 1;
  173. c.weightx = 0.1;
  174. JLabel label = new JLabel(l1);
  175. gridbag.setConstraints(label,c);
  176. panel.add(label);
  177. c.weightx = 0.9;
  178. c.gridwidth = GridBagConstraints.REMAINDER;
  179. gridbag.setConstraints(t1,c);
  180. panel.add(t1);
  181.   }
  182. public void componentHidden( ComponentEvent e ) 
  183. {
  184. }
  185. public void componentMoved( ComponentEvent e ) 
  186. {
  187. }
  188. public void componentResized( ComponentEvent e ) 
  189. {
  190. lineGraph.setBounds( 50,50,this.getSize().width-350,this.getSize().height-150);
  191. editPanel.setBounds(this.getSize().width-290,50,250,250);
  192. }
  193. public void componentShown( ComponentEvent e ) 
  194. {
  195. }
  196. }