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

SNMP编程

开发平台:

C/C++

  1. /* $Id: SasClientFunction.java,v 1.3 2002/09/09 05:50:39 parasuraman Exp $ */
  2. /*
  3.  * @(#)SasClientFunction.java
  4.  * Copyright (c) 1996-2003 AdventNet, Inc. All Rights Reserved.
  5.  * Please read the associated COPYRIGHTS file for more details.
  6.  */
  7. import java.applet.*;
  8. import java.awt.*;
  9. import java.util.*;
  10. import java.io.*;
  11. import java.net.*;
  12. import com.adventnet.snmp.snmp2.*;
  13. public class SasClientFunction {
  14. // This help/debug window only has a text area and a close button.
  15.   TextArea text = null;
  16.   Button close = null;
  17. // We need a reference to our applet to get some data
  18.   AdventSasDemo sasBrowser = null;
  19. // The fonts used
  20.   Font fontb;
  21.   Font font;
  22.   
  23.   SASClient sasclient;
  24.  
  25. /**
  26.  * The constructor takes the applet as an argument. 
  27.  * It sets up the window and calls initSnmp()
  28.  */
  29.   public SasClientFunction(AdventSasDemo  app) { 
  30.     sasBrowser = (AdventSasDemo) app;
  31.     initSnmp();
  32.   } // end of constructor
  33.  void initSnmp() {
  34.     try {
  35.         sasclient = new SASClient(sasBrowser, true);
  36.         sasclient.start();
  37.     }
  38.     catch (Exception e) {
  39. System.out.println("Error : " + e.getMessage());
  40.     }
  41.  }
  42. /** If a sub-node is selected, we go down the MIB tree */
  43.   void downTree(String child) {
  44.   
  45.     String dir;
  46.     if(child.equals(".." + File.separator))
  47.         dir = sasBrowser.getPrevDir(sasBrowser.currentDir.getText());
  48.     else
  49.         dir = new String(sasBrowser.currentDir.getText() + child + "/");
  50.     if(dir.equals(""))dir = dir + "/";
  51.     listFiles(dir);
  52.   } // end of downTree()
  53.   void println(String s) {
  54.     sasBrowser.resultArea.setText(s);
  55.   }
  56. /** For Demonstrating SAS functionalities */    
  57.     void saveFile(String saveText, String fileName)
  58.     {
  59.         try {
  60.             byte data[] = new byte[saveText.length()];
  61.             data = saveText.getBytes();
  62. if(sasclient != null) {
  63.                 sasclient.saveFile(getSelectedDirPath()+fileName,data);
  64. listFiles(sasBrowser.currentDir.getText());
  65. }
  66.             else
  67.                 System.out.println("Not connected to sas");
  68.         }
  69.         catch (Exception e){
  70.             System.out.println(e);
  71.             e.printStackTrace();
  72.         }
  73.     }
  74.     void appendFile(String appendText, String fileName)
  75.     {
  76.         
  77.         byte data[] = new byte[appendText.length()];
  78.         try {
  79.             data = appendText.getBytes();
  80.         
  81.             if(sasclient != null) {
  82.                 sasclient.appendFile(getSelectedDirPath()+fileName,data);
  83. listFiles(sasBrowser.currentDir.getText());
  84. }
  85.             else
  86.                 System.out.println("Not connected to sas");
  87.         }
  88.         catch (Exception e){
  89.             System.out.println(e);
  90.             e.printStackTrace();
  91.         }
  92.     }
  93.     void deleteFile(String fileName)
  94.     {
  95.         if(fileName == null) {
  96.             println("No file selected");
  97.             return;
  98.         }
  99.         try {
  100.             if(sasclient != null) {
  101.                 sasclient.deleteFile(getSelectedDirPath()+fileName);
  102. listFiles(sasBrowser.currentDir.getText());
  103. }
  104.             else
  105.                 System.out.println("Not connected to sas");
  106.         }
  107.         catch (Exception e){
  108.             System.out.println(e);
  109.             e.printStackTrace();
  110.         }
  111.     }
  112.     void createDir(String dirName)
  113.     {
  114.         try {
  115.             if(sasclient != null)
  116.                 sasclient.createDir(getSelectedDirPath()+dirName);
  117.             else
  118.             {
  119.                 println("Not connected to SAS");
  120.                 return;
  121.             }
  122.             listFiles(sasBrowser.currentDir.getText());
  123.          }
  124.          catch (Exception e){
  125.             System.out.println(e);
  126.             e.printStackTrace();
  127.         }
  128.     }
  129.     void deleteDir()
  130.     {
  131.         String dirName = sasBrowser.listDir.getSelectedItem();
  132.         if(dirName == null) {
  133.             println("No directory selected");
  134.             return;
  135.         }
  136.             
  137.         try {
  138. if(sasclient != null) {
  139.                 sasclient.deleteDir(getSelectedDirPath()+dirName);
  140. listFiles(sasBrowser.currentDir.getText());
  141. }
  142.             else {
  143.                 println("Not connected to SAS");
  144.                 return;
  145.             }
  146.             
  147.          }
  148.          catch (Exception e){
  149.             System.out.println(e);
  150.             e.printStackTrace();
  151.         }
  152.     }
  153.     // some constants for clientCall types
  154.     static int LIST_DIR_REQ = 1;
  155.     static int LIST_DIR_RESP = 2;
  156.     static int GET_FILE_REQ = 3;
  157.     static int GET_FILE_RESP = 4;
  158.     void listFiles(String dir)
  159.     {
  160.         byte data[] = null;
  161.         String listedFiles = null;
  162.         String modDir;
  163.         int i = dir.indexOf("|");
  164.         if(i>0)modDir = dir.substring(i+1);
  165.         else modDir = dir;
  166.         try {
  167.             ByteArrayOutputStream baO = new ByteArrayOutputStream();
  168.             DataOutputStream dO = new DataOutputStream(baO);
  169.             dO.writeInt(LIST_DIR_REQ);
  170.             dO.writeUTF(modDir);
  171.             data = baO.toByteArray();
  172.             if(sasclient != null)
  173.                 data = sasclient.clientCall(data);
  174.             else
  175.             {
  176.                 println("Not connected to SAS server");
  177.                 return;
  178.             }
  179. DataInputStream dI = new DataInputStream(new ByteArrayInputStream(data));
  180. int type = dI.readInt();
  181. if(type == LIST_DIR_RESP)
  182. listedFiles = dI.readUTF();
  183. }
  184.         catch (Exception e) {
  185.             System.out.println(e);
  186.             e.printStackTrace();
  187.         }
  188. if(listedFiles != null) {
  189. StringTokenizer toks = new StringTokenizer(listedFiles,"n");
  190. int num = sasBrowser.childList.getItemCount();
  191. if (num>0) sasBrowser.childList.removeAll();
  192. num = sasBrowser.listDir.getItemCount();
  193. if (num>0) sasBrowser.listDir.removeAll();
  194. //To handle netscape when loaded from classpath
  195. boolean netscapeRootDir = false;
  196. if(dir.length() == 4) {
  197. if(dir.indexOf("|/") > 0) netscapeRootDir = true;
  198. }
  199. if(!((dir.equals("/")) || (dir.equals("\")) || (netscapeRootDir)))
  200. sasBrowser.listDir.addItem(".." + File.separator);
  201. while(toks.hasMoreTokens()) {
  202. String file = toks.nextToken();
  203. if(file.indexOf("<DIR>") < 0)
  204. sasBrowser.childList.addItem(file);
  205. else {
  206. file = file.substring(5);
  207. sasBrowser.listDir.addItem(file);
  208. }
  209. }
  210. }
  211. else {
  212. sasBrowser.resultArea.setText("Cannot List the Directory");
  213. }
  214. sasBrowser.currentDir.setText(dir);
  215.   }
  216.   void getFile()
  217.   {
  218.        String file = new String(sasBrowser.currentDir.getText() + File.separator + sasBrowser.childList.getSelectedItem());
  219.        byte[] data = null;
  220.        String gotFile = null;
  221.        try {
  222.             ByteArrayOutputStream baO = new ByteArrayOutputStream();
  223.             DataOutputStream dO = new DataOutputStream(baO);
  224.             dO.writeInt(GET_FILE_REQ);
  225.             dO.writeUTF(file);
  226.             data = baO.toByteArray();
  227.             if(sasclient != null)
  228.                 data = sasclient.clientCall(data);
  229.             else
  230.             {
  231.                 println("Not connected to sas");
  232.                 return;
  233.             }
  234.         DataInputStream dI = new DataInputStream(new ByteArrayInputStream(data));
  235.         int type = dI.readInt();
  236.         if(type == GET_FILE_RESP)
  237.             gotFile = dI.readUTF();
  238.         else
  239.         {
  240.             println("Not able to get the file");
  241.             return;
  242.         }
  243.         
  244.     FileOutputStream fos = new FileOutputStream(sasBrowser.childList.getSelectedItem() +".sas");
  245.         dO = new DataOutputStream(fos);
  246.         dO.writeBytes(gotFile);
  247.         println("Successfully got the file");
  248.        }
  249.        catch (Exception e) {
  250.             System.out.println(e);
  251.             e.printStackTrace();
  252.        }
  253.   }
  254.   
  255.   String getSelectedDirPath() {
  256.   int i = sasBrowser.currentDir.getText().indexOf("SASusers");
  257.   if (i != -1) return sasBrowser.currentDir.getText().substring(i+8);
  258.   else return "";
  259.   }
  260. }