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

SNMP编程

开发平台:

C/C++

  1. /* $Id: CorbaTableUi.src,v 1.3 2002/09/09 05:45:01 tonyjpaul Exp $ */
  2. /*
  3.  * @(#)CorbaTableUi.java
  4.  * Copyright (c) 1996-2002 AdventNet, Inc. All Rights Reserved.
  5.  * Please read the COPYRIGHTS file for more 
  6.  */
  7. import org.omg.CosNaming.*;
  8. import java.lang.*;
  9. import java.util.*;
  10. import java.net.*;
  11. import org.omg.CORBA.*;
  12. import com.adventnet.snmp.corba.*;
  13. import ParseOptions;
  14. import com.adventnet.snmp.mibs.*;
  15. import com.adventnet.snmp.snmp2.*;
  16. import javax.swing.*;
  17. import javax.swing.table.*;
  18. import java.awt.event.*;
  19. public class CorbaTableUi {
  20.     SnmpTable table;
  21.     org.omg.CORBA.ORB orb = null;
  22. com.adventnet.snmp.corba.SnmpFactory factory = null;
  23. com.adventnet.snmp.corba.SnmpTableListener listener = null;
  24.     public CorbaTableUi( String args[], String version, String host, String community, String port, String retries, String timeout, String username, String authProtocol, String  authPassword , String privPassword, String contextID, String contextName, String mibs , String tableoid)
  25. {
  26. final int USM_SECURITY_MODEL = 3;
  27.         try
  28.         {
  29.      orb = org.omg.CORBA.ORB.init( args, null );
  30.             org.omg.CORBA.Object objRef = orb.resolve_initial_references("NameService" ); 
  31.             NamingContext ncRef = NamingContextHelper.narrow( objRef ); 
  32.             NameComponent nc = new NameComponent( "AdventnetSnmpFactory" , "" );
  33.             NameComponent[] path = { nc };
  34.             
  35. factory = com.adventnet.snmp.corba.SnmpFactoryHelper.narrow( ncRef.resolve( path ) );
  36.             table = factory.createTable();
  37.             if(version != null)
  38.             {  // if SNMP version is specified, set it
  39.                 if(version.equals("v1"))
  40.                     table.setSnmpVersion( com.adventnet.snmp.beans.SnmpTarget.VERSION1 ) ;
  41.                 else if(version.equals("v2c"))
  42.                     table.setSnmpVersion( com.adventnet.snmp.beans.SnmpTarget.VERSION2C );            
  43.                 else if(version.equals("v3"))
  44.                     table.setSnmpVersion( com.adventnet.snmp.beans.SnmpTarget.VERSION3 );
  45.                 else
  46.                 {
  47.  JOptionPane.showMessageDialog(null,"Invalid Version Number" ,"Error Message",JOptionPane.ERROR_MESSAGE); 
  48. factory.destroyTable(table.getName());
  49. table = null;
  50. factory = null;
  51. return ;
  52.                 }
  53.             }
  54.             else
  55.                 table.setSnmpVersion( com.adventnet.snmp.beans.SnmpTarget.VERSION1 );
  56.     
  57.             table.setTargetHost(host );  // set the agent hostname
  58. table.setPollInterval(10);
  59.             if (community != null) // set the community if specified
  60.                 table.setCommunity( community );
  61.             // set the timeout/retries/port parameters, if specified
  62.             if (port != null)
  63.                 table.setTargetPort( Integer.parseInt(port) );
  64.             if (retries != null)
  65.                 table.setRetries( Integer.parseInt(retries) );
  66.             if (timeout != null)
  67.                 table.setTimeout( Integer.parseInt(timeout) );    
  68.             
  69.             
  70.             if(table.getSnmpVersion() == com.adventnet.snmp.beans.SnmpTarget.VERSION3) 
  71.             {
  72.                 table.setPrincipal(username);
  73.                 table.setAuthPassword(authPassword);
  74.                 table.setPrivPassword(privPassword);
  75.                 table.setContextID(contextID);
  76.                 table.setContextName(contextName);
  77.                 if(authProtocol.equals("SHA"))
  78.                     table.setAuthProtocol(com.adventnet.snmp.beans.SnmpTarget.SHA_AUTH);
  79.                 else
  80.                     table.setAuthProtocol(com.adventnet.snmp.beans.SnmpTarget.MD5_AUTH);
  81.             }
  82.             // instantiate this class to receive table events, and register it
  83. listener = new CorbaTableDemoListenerImpl( table );
  84.             table.addSnmpTableListener(listener);
  85.             orb.connect( listener );
  86.             if (mibs != null) 
  87. {
  88.             table.loadMibs(mibs);
  89. }
  90.             // Set the table OID in SnmpTable.  Once specified,
  91.             // SnmpTable will automatically get the data and send table events 
  92.             try { 
  93.                 table.setTableOID( tableoid );
  94.             } catch (Exception ex) {
  95.  JOptionPane.showMessageDialog(null,"Invalid Table oid " +ex.toString() ,"Error Message",JOptionPane.ERROR_MESSAGE); 
  96. factory.destroyTable(table.getName());
  97. table = null;
  98. factory = null;
  99. return ;
  100.             }
  101. TableModel model = (TableModel)listener;
  102. JTable t = new JTable(model);
  103. if( t.getColumnCount() > 5)
  104. t.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
  105. JScrollPane pan = new JScrollPane(t);
  106. JFrame f = new JFrame();
  107. f.setTitle("AdventNet SNMP CORBA Demo");
  108. f.getContentPane().add(pan);
  109. f.setVisible(true);
  110. f.setSize(600,400);
  111. WindowListener l = new WindowAdapter() {
  112. public void windowClosing(WindowEvent e) {
  113.              table.removeSnmpTableListener((CorbaTableDemoListenerImpl)listener);
  114. orb.disconnect(listener);
  115. listener = null;
  116. factory.destroyTable(table.getName());
  117. table = null;
  118. factory = null;
  119. }
  120. };      
  121. f.addWindowListener(l);
  122. t.validate();
  123. t.updateUI();
  124. f.validate();
  125.     } catch (Exception ex) {
  126.  JOptionPane.showMessageDialog(null,"Failed "+ex.toString() ,"Error Message",JOptionPane.ERROR_MESSAGE); 
  127.     }
  128.     }
  129. }