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

SNMP编程

开发平台:

C/C++

  1. /* $Id: MibBrowserApplet.src,v 1.11 2002/09/09 06:20:48 tonyjpaul Exp $ */
  2. /**
  3.  * MibBrowser.java    
  4.  * Copyright (c) 1996-2002 AdventNet, Inc. All Rights Reserved.
  5.  * Please read the associated COPYRIGHTS file for more details.
  6.  
  7.  * ADVENTNET, INC. MAKES NO REPRESENTATIONS OR WARRANTIES
  8.  * ABOUT THE SUITABILITY OF THE SOFTWARE, EITHER EXPRESS OR IMPLIED,
  9.  * INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY,
  10.  * FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT.  ADVENTNET,
  11.  *  INC. SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY
  12.  * LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE
  13.  * OR ITS DERIVATIVES.
  14.  */
  15. import javax.swing.*; 
  16. import java.awt.event.*;
  17. import com.adventnet.snmp.ui.*;
  18. import com.adventnet.snmp.beans.*;
  19. import com.adventnet.snmp.snmp2.*;
  20. import com.adventnet.utils.*;
  21. import java.util.StringTokenizer;
  22. import com.sun.jimi.core.component.JimiCanvas;
  23. import java.awt.Font;
  24. import java.util.StringTokenizer;
  25. import java.util.Locale;
  26. /** This example of using MibBrowser class with JFC component
  27.   * This enable you to load MIBs and you can perform all
  28.   * SNMP operations in this applet .
  29.   */
  30. public class MibBrowserApplet extends JApplet implements Runnable {
  31.     MibBrowser mbrowser = null;
  32. JFrame f=null;
  33.     public void init() {
  34. try {
  35. UIManager.setLookAndFeel( UIManager.getSystemLookAndFeelClassName());
  36. }catch (Exception e) {
  37. System.err.println(SnmpUtils.getString("Couldn't use the system look and feel:")+" "+ e);
  38. }
  39.    //if (getParameter("PROTOCOL") != null) 
  40.    //   SASClient.setProtocol(Integer.parseInt(getParameter("PROTOCOL")));
  41. if (getParameter("INTERNATIONALIZE") != null) { 
  42. if(getParameter("INTERNATIONALIZE").equals("true")) {
  43. String locale = null;
  44. String font = null;
  45. String searchPath = null ;
  46. if (getParameter("LOCALE") != null) 
  47. locale = getParameter("LOCALE");
  48. if (getParameter("FONT") != null) 
  49. font = getParameter("FONT");
  50. if (getParameter("SEARCHPATH") != null) 
  51. searchPath = getParameter("SEARCHPATH");
  52. if(locale == null || font == null)
  53. {
  54. System.out.println(SnmpUtils.getString("Please enter the Locale and Font for Internationalization"));
  55. System.out.println(SnmpUtils.getString("Continuing without Internationalizing"));
  56. //System.exit(1);
  57. }else
  58. {
  59. while(true)
  60. {
  61. StringTokenizer strt=new StringTokenizer(locale," ");
  62. if(strt.countTokens() != 2)
  63. {
  64. System.out.println(SnmpUtils.getString("Enter the Language and Country name for Locale"));
  65. System.out.println(SnmpUtils.getString("Continuing without Internationalizing"));
  66. break ;//System.exit(1);
  67. }
  68. Locale loc = new Locale((String)strt.nextToken(),(String)strt.nextToken());
  69. strt=new StringTokenizer(font," ");
  70. if(strt.countTokens() != 3)
  71. {
  72. System.out.println(SnmpUtils.getString("Enter the Font name, Style and Size for the font"));
  73. System.out.println(SnmpUtils.getString("Continuing without Internationalizing"));
  74. break ;//System.exit(1);
  75. }
  76. if(searchPath != null)
  77. SnmpUtils.setSearchPath(searchPath);
  78. try{
  79. Font f=new Font((String)strt.nextToken(), Integer.parseInt((String)strt.nextToken()),Integer.parseInt((String)strt.nextToken()));
  80. mbrowser.internationalize(loc,f);
  81. break ;
  82. }catch(Exception execpt){
  83. System.out.println(SnmpUtils.getString("Exception during Internationalizing")+" "+execpt);
  84. execpt.printStackTrace();
  85. System.out.println(SnmpUtils.getString("Continuing without Internationalizing"));
  86. break ;
  87. //System.exit(1);
  88. }
  89. }
  90. }
  91. }
  92. }
  93.     /** instantiate the MibBrowser class */
  94. mbrowser = new MibBrowser(this);
  95.     
  96.     try {
  97. mbrowser.initSecurityProvider();
  98. }
  99. catch(SnmpException se) {
  100. System.err.println(SnmpUtils.getString("Error initializing Security Provider: ")+" " +se.getMessage());
  101. }
  102.     /**
  103.      * MenuBar is an Option
  104.      */
  105.     mbrowser.setMenuBarVisible(true);
  106.     
  107.     /** get the Values for HOST ,COMMUNITY
  108.     from HTML file */
  109.     if (getParameter("HOST") != null) 
  110.         mbrowser.setTargetHost(getParameter("HOST"));
  111.     if (getParameter("COMMUNITY") != null) 
  112.         mbrowser.setCommunity(getParameter("COMMUNITY"));    
  113.     /** get the Values for PORT, RETRIES and TIMEOUT 
  114.         from HTML file */        
  115.     try {
  116.         if (getParameter("PORT") != null) 
  117.             mbrowser.setTargetPort(Integer.parseInt(getParameter("PORT")));
  118.         if (getParameter("RETRIES") != null) 
  119.             mbrowser.setRetries(getParameter("RETRIES"));
  120.         if (getParameter("TIMEOUT") != null) 
  121.             mbrowser.setTimeout(getParameter("TIMEOUT"));
  122.     } catch (NumberFormatException ex) {
  123.         System.err.println(SnmpUtils.getString("Invalid option: ")+" "+ex);
  124.     } 
  125. /**get the Values for Database from html file*/
  126. try{
  127. if(getParameter("DATABASE") !=null)
  128. {
  129. StringTokenizer st = new StringTokenizer(getParameter("DATABASE"));
  130. if(st.countTokens()==4)
  131. {
  132. try{
  133. mbrowser.initJdbcParams(st.nextToken(),st.nextToken(),st.nextToken(),st.nextToken());
  134. }catch(Exception ex)
  135. {
  136. System.out.println(SnmpUtils.getString("Error in Database Params :")+" "+ex);
  137. }
  138. mbrowser.setLoadMibsFromDatabase(true);
  139. }
  140. }
  141. }catch(Exception e)
  142. {
  143. System.out.println(SnmpUtils.getString("Error during setting Database Params: ")+" "+e);
  144. }
  145. f = new JFrame(SnmpUtils.getString("AdventNet MibBrowser"));
  146. WindowListener l=new WindowAdapter(){
  147. public void windowClosing(WindowEvent e){
  148. mbrowser.releaseResources();
  149. }
  150. };
  151. f.addWindowListener(l);
  152. JimiCanvas canvas = new JimiCanvas();
  153. canvas.setImageLocation(getClass().getResource("logo.png"));
  154. f.setIconImage(canvas.getImage());
  155. f.getContentPane().add("Center",mbrowser);
  156.     f.setSize(730,525);
  157.     f.setVisible(true);
  158.     }
  159.     /** to avoid loading  mibs multiple times */
  160.     boolean started = false;  
  161.     public void start() {
  162.         if (started) return;
  163.         Thread t = new Thread(this);
  164.         t.start();
  165.         // set the flag to indicate that the MIBs have been loaded 
  166.         started = true;
  167.     }
  168.     
  169.     // This double take to avoid swing problems
  170.     boolean runOnce = false;
  171.     public void run() {
  172.         if (!runOnce) {
  173.             runOnce = true;
  174.             try { 
  175.                 SwingUtilities.invokeAndWait(this); 
  176.                 return;
  177.             } catch (Exception ex) { System.err.println(SnmpUtils.getString("Error:")+" "+ex); }
  178.         }
  179.         
  180.         /** get the MIBs value to be loaded from the HTML
  181.         and Load those MIBs */
  182.         if (getParameter("MIBS") != null) 
  183.             mbrowser.setMibModules(getParameter("MIBS"));
  184.         
  185.         /** After loading MIBs expand the Root node only */
  186.         mbrowser.getMibTree().getTree().expandRow(0);
  187.     }
  188. public void destroy(){
  189. super.destroy();
  190. mbrowser.releaseResources();
  191. f.dispose();
  192. }
  193. }