home *** CD-ROM | disk | FTP | other *** search
/ Symantec Visual Cafe for Java 2.5 / symantec-visual-cafe-2.5-database-dev-edition.iso / DBServ / DSNTool.BIN / TestBox.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-02-18  |  11.0 KB  |  404 lines

  1. package dsntool;
  2.  
  3. import java.awt.Button;
  4. import java.awt.Color;
  5. import java.awt.Component;
  6. import java.awt.Container;
  7. import java.awt.Dialog;
  8. import java.awt.Font;
  9. import java.awt.Frame;
  10. import java.awt.LayoutManager;
  11. import java.awt.Rectangle;
  12. import java.awt.TextArea;
  13. import java.awt.Window;
  14. import java.awt.event.ActionEvent;
  15. import java.awt.event.WindowEvent;
  16. import java.sql.Connection;
  17. import java.sql.Driver;
  18. import java.sql.SQLException;
  19. import java.util.Properties;
  20. import symantec.itools.awt.KeyPressManagerPanel;
  21. import symantec.itools.db.awt.LogonFrame;
  22. import symantec.itools.db.pro.ConnectionInfo;
  23. import symantec.itools.db.pro.RelationView;
  24. import symantec.itools.db.pro.Request;
  25. import symantec.itools.db.pro.Session;
  26. import symantec.itools.db.pro.SessionMetaData;
  27.  
  28. public class TestBox extends Dialog {
  29.    KeyPressManagerPanel kpm;
  30.    Button OKButton;
  31.    Button CancelButton;
  32.    Button proButton;
  33.    Button jdbcButton;
  34.    TextArea display;
  35.    Properties props;
  36.    Connection jdbcServer;
  37.    ConnectionInfo cinfo;
  38.    DSN_ENGINE dsnEngine;
  39.    Driver dbawDriver;
  40.    RelationView rview;
  41.    Request request;
  42.    Session proServer;
  43.    SessionMetaData proServerMetaData;
  44.    LogonFrame proLogonFrame;
  45.    private String serverUrl;
  46.    private String engine;
  47.    private String serverName;
  48.    private String database;
  49.    private String user;
  50.    private String password;
  51.    private String datasourcename;
  52.    private String jdbcDriver = "symantec.itools.db.jdbc.Driver";
  53.    private int protocol;
  54.  
  55.    public TestBox(Frame var1, String var2, String var3, DSN_ENGINE var4, String var5, String var6, String var7, String var8) {
  56.       super(var1, "Test " + var2, true);
  57.       ((Dialog)this).setResizable(false);
  58.       ((Container)this).setLayout((LayoutManager)null);
  59.       ((Component)this).resize(((Container)this).insets().left + ((Container)this).insets().right + 505, ((Container)this).insets().top + ((Container)this).insets().bottom + 390);
  60.       this.kpm = new KeyPressManagerPanel();
  61.       this.kpm.setLayout((LayoutManager)null);
  62.       this.kpm.reshape(0, 0, 505, 400);
  63.       ((Container)this).add(this.kpm);
  64.       this.props = new Properties();
  65.       this.props.put("user", var7);
  66.       this.props.put("password", var8);
  67.       this.display = new TextArea();
  68.       this.display.setEditable(false);
  69.       this.display.setFont(new Font("Helvetica", 0, 11));
  70.       this.display.setBackground(Color.white);
  71.       this.display.reshape(((Container)this).insets().left, ((Container)this).insets().top, 500, 320);
  72.       this.jdbcButton = new Button("JDBC API Test");
  73.       this.jdbcButton.setActionCommand("button");
  74.       this.jdbcButton.setFont(new Font("Helvetica", 0, 11));
  75.       this.jdbcButton.reshape(((Container)this).insets().left + 331, ((Container)this).insets().top + 330, 90, 20);
  76.       this.OKButton = new Button("OK");
  77.       this.OKButton.setActionCommand("button");
  78.       this.OKButton.setFont(new Font("Helvetica", 0, 11));
  79.       this.OKButton.reshape(((Container)this).insets().left + 67, ((Container)this).insets().top + 330, 90, 20);
  80.       this.proButton = new Button("PRO API Test");
  81.       this.proButton.setActionCommand("button");
  82.       this.proButton.setFont(new Font("Helvetica", 0, 11));
  83.       this.proButton.reshape(((Container)this).insets().left + 199, ((Container)this).insets().top + 330, 90, 20);
  84.       this.kpm.add(this.display);
  85.       this.kpm.add(this.OKButton);
  86.       this.kpm.add(this.proButton);
  87.       this.kpm.add(this.jdbcButton);
  88.       this.serverUrl = new String(var3);
  89.       this.engine = new String(var4.engineChoiceConnect.getSelectedItem());
  90.       this.protocol = var4.protocolChoice.getSelectedIndex();
  91.       this.serverName = new String(var5);
  92.       this.database = new String(var6);
  93.       this.user = new String(var7);
  94.       this.password = new String(var8);
  95.       this.datasourcename = new String(var2);
  96.       this.proButton.requestFocus();
  97.       this.dsnEngine = var4;
  98.       SymWindow var9 = new SymWindow(this);
  99.       ((Window)this).addWindowListener(var9);
  100.       SymAction var10 = new SymAction(this);
  101.       this.jdbcButton.addActionListener(var10);
  102.       this.proButton.addActionListener(var10);
  103.       this.OKButton.addActionListener(var10);
  104.    }
  105.  
  106.    private final void closeJdbc() {
  107.       this.display.appendText("\nClosing server...");
  108.  
  109.       try {
  110.          this.jdbcServer.close();
  111.          this.display.appendText("\t\t\t\t\t\t\tdone.");
  112.       } catch (Exception var2) {
  113.          this.display.appendText("\n\n***Exception caught: Could not close server.");
  114.          this.display.appendText("\n ->" + ((Throwable)var2).toString());
  115.       }
  116.  
  117.       this.display.appendText("\n<------------------------------------------------------------------------------------------------------------------>");
  118.    }
  119.  
  120.    private final void closePro() {
  121.       this.display.appendText("\n\nClosing server...");
  122.  
  123.       try {
  124.          this.proServer.close();
  125.          this.display.appendText("\t\t\t\t\t\t\tdone.");
  126.       } catch (SQLException var2) {
  127.          this.display.appendText("\n\n***SQLException caught: Could not close server.");
  128.          this.display.appendText("\n ->" + ((Throwable)var2).toString());
  129.       }
  130.  
  131.       this.display.appendText("\n<------------------------------------------------------------------------------------------------------------------>");
  132.    }
  133.  
  134.    private final boolean connectJdbc() {
  135.       String var1 = new String();
  136.       boolean var2 = false;
  137.       this.display.appendText("\n\nConnecting  via the JDBC API with:");
  138.       this.display.appendText("\n  dbANYWHERE Server url:\t" + this.serverUrl);
  139.       this.display.appendText("\n  Engine:\t\t\t" + this.engine);
  140.       if (this.serverUrl.charAt(this.serverUrl.length() - 1) == '/') {
  141.          this.serverUrl = this.serverUrl.substring(0, this.serverUrl.length() - 1);
  142.       }
  143.  
  144.       if (!this.engine.equalsIgnoreCase("SYBASE_SQLANY") && !this.engine.equalsIgnoreCase("WATCOM") && !this.engine.equalsIgnoreCase("MS_ACCESS") && !this.engine.equalsIgnoreCase("ODBC_XBASE_DSN") && !this.engine.equalsIgnoreCase("ODBC_DSN")) {
  145.          if (!this.engine.equalsIgnoreCase("SQL_SERVER") && !this.engine.equalsIgnoreCase("INFORMIX") && !this.engine.equalsIgnoreCase("SYBASE_NT") && !this.engine.equalsIgnoreCase("SYBASE_WIN95")) {
  146.             if (this.engine.equalsIgnoreCase("ORACLE_7")) {
  147.                if (!this.dsnEngine.serverPrefix().equalsIgnoreCase("2:") && !this.dsnEngine.serverPrefix().equalsIgnoreCase("TNS:")) {
  148.                   var1 = "jdbc:" + this.serverUrl + "/" + this.engine + "/" + this.dsnEngine.serverPrefix() + this.serverName + "/" + this.database;
  149.                } else {
  150.                   var1 = "jdbc:" + this.serverUrl + "/" + this.engine + "/" + this.dsnEngine.serverPrefix() + this.serverName + "/" + this.serverName;
  151.                }
  152.  
  153.                TextArea var10000 = this.display;
  154.                StringBuffer var10001 = new StringBuffer("\n  Protocol:\t\t");
  155.                DSN_ENGINE var3 = this.dsnEngine;
  156.                int var4 = this.protocol;
  157.                var10000.appendText(var10001.append(var3.protocolChoice.getItem(var4)).toString());
  158.                this.display.appendText("\n  Server/Service:\t\t" + this.serverName);
  159.                this.display.appendText("\n  Instance/SID:\t\t" + this.database);
  160.                this.display.appendText("\n  User:\t\t\t" + this.user);
  161.             }
  162.          } else {
  163.             var1 = "jdbc:" + this.serverUrl + "/" + this.engine + "/" + this.serverName + "/" + this.database;
  164.             this.display.appendText("\n  Server:\t\t\t" + this.serverName);
  165.             this.display.appendText("\n  Database:\t\t" + this.database);
  166.             this.display.appendText("\n  User:\t\t\t" + this.user);
  167.          }
  168.       } else {
  169.          var1 = "jdbc:" + this.serverUrl + "/" + this.engine + "/" + this.serverName + "/" + this.serverName;
  170.          this.display.appendText("\n  Datasource:\t\t" + this.serverName);
  171.          this.display.appendText("\n  User:\t\t\t" + this.user);
  172.       }
  173.  
  174.       this.display.appendText("\n  Connection String:\t\t" + var1);
  175.       this.display.appendText("\n\nCreating new driver from " + this.jdbcDriver + "...");
  176.  
  177.       try {
  178.          this.dbawDriver = (Driver)Class.forName(this.jdbcDriver).newInstance();
  179.          this.display.appendText("\t\t\tdone.");
  180.          var2 = true;
  181.       } catch (InstantiationException var5) {
  182.          this.display.appendText("\n\n***Exception caught: Could not make instantiation.");
  183.          this.display.appendText("\n ->" + ((Throwable)var5).toString());
  184.          this.display.appendText("\n<------------------------------------------------------------------------------------------------------------------>");
  185.       } catch (ClassNotFoundException var6) {
  186.          this.display.appendText("\n\n***Exception caught: Could not find class.");
  187.          this.display.appendText("\n ->" + ((Throwable)var6).toString());
  188.          this.display.appendText("\n<------------------------------------------------------------------------------------------------------------------>");
  189.       } catch (IllegalAccessException var7) {
  190.          this.display.appendText("\n\n***Exception caught: Could not access server.");
  191.          this.display.appendText("\n ->" + ((Throwable)var7).toString());
  192.          this.display.appendText("\n<------------------------------------------------------------------------------------------------------------------>");
  193.       }
  194.  
  195.       if (var2) {
  196.          this.display.appendText("\nOpening server...");
  197.  
  198.          try {
  199.             this.jdbcServer = this.dbawDriver.connect(var1, this.props);
  200.             this.display.appendText("\t\t\t\t\t\t\tdone.");
  201.             return true;
  202.          } catch (SQLException var8) {
  203.             this.display.appendText("\n\n***Exception caught: Could not open server.");
  204.             this.display.appendText("\n ->" + ((Throwable)var8).toString());
  205.             this.display.appendText("\n<------------------------------------------------------------------------------------------------------------------>");
  206.          }
  207.       }
  208.  
  209.       return false;
  210.    }
  211.  
  212.    private final boolean connectPro() {
  213.       String var1 = new String();
  214.       String var2 = new String();
  215.       boolean var3 = false;
  216.       this.display.appendText("\n\nConnecting via the dbANYWHERE/PRO API with:");
  217.       this.display.appendText("\n  dbANYWHERE Server url:\t" + this.serverUrl);
  218.       this.display.appendText("\n  Engine:\t\t\t" + this.engine);
  219.       if (this.serverUrl.charAt(this.serverUrl.length() - 1) == '/') {
  220.          this.serverUrl = this.serverUrl.substring(0, this.serverUrl.length() - 1);
  221.       }
  222.  
  223.       if (!this.engine.equalsIgnoreCase("SYBASE_SQLANY") && !this.engine.equalsIgnoreCase("WATCOM") && !this.engine.equalsIgnoreCase("MS_ACCESS") && !this.engine.equalsIgnoreCase("ODBC_XBASE_DSN") && !this.engine.equalsIgnoreCase("ODBC_DSN")) {
  224.          if (!this.engine.equalsIgnoreCase("SQL_SERVER") && !this.engine.equalsIgnoreCase("INFORMIX") && !this.engine.equalsIgnoreCase("SYBASE_NT") && !this.engine.equalsIgnoreCase("SYBASE_WIN95")) {
  225.             if (this.engine.equalsIgnoreCase("ORACLE_7")) {
  226.                if (!this.dsnEngine.serverPrefix().equalsIgnoreCase("2:") && !this.dsnEngine.serverPrefix().equalsIgnoreCase("TNS:")) {
  227.                   var1 = this.serverUrl + "/" + this.engine + "/" + this.dsnEngine.serverPrefix() + this.serverName + "/" + this.database;
  228.                   var2 = this.engine + "/" + this.dsnEngine.serverPrefix() + this.serverName + "/" + this.database;
  229.                } else {
  230.                   var1 = this.serverUrl + "/" + this.engine + "/" + this.dsnEngine.serverPrefix() + this.serverName + "/" + this.serverName;
  231.                   var2 = this.engine + "/" + this.dsnEngine.serverPrefix() + this.serverName + "/" + this.serverName;
  232.                }
  233.  
  234.                TextArea var10000 = this.display;
  235.                StringBuffer var10001 = new StringBuffer("\n  Protocol:\t\t");
  236.                DSN_ENGINE var4 = this.dsnEngine;
  237.                int var5 = this.protocol;
  238.                var10000.appendText(var10001.append(var4.protocolChoice.getItem(var5)).toString());
  239.                this.display.appendText("\n  Server/Service:\t\t" + this.serverName);
  240.                this.display.appendText("\n  Instance/SID:\t\t" + this.database);
  241.                this.display.appendText("\n  User:\t\t\t" + this.user);
  242.             }
  243.          } else {
  244.             var1 = this.serverUrl + "/" + this.engine + "/" + this.serverName + "/" + this.database;
  245.             var2 = this.engine + "/" + this.serverName + "/" + this.database;
  246.             this.display.appendText("\n  Server:\t\t\t" + this.serverName);
  247.             this.display.appendText("\n  Database:\t\t" + this.database);
  248.             this.display.appendText("\n  User:\t\t\t" + this.user);
  249.          }
  250.       } else {
  251.          var1 = this.serverUrl + "/" + this.engine + "/" + this.serverName + "/" + this.serverName;
  252.          var2 = this.engine + "/" + this.serverName + "/" + this.serverName;
  253.          this.display.appendText("\n  Datasource:\t\t" + this.serverName);
  254.          this.display.appendText("\n  User:\t\t\t" + this.user);
  255.       }
  256.  
  257.       this.display.appendText("\n  Connection String:\t\t" + var1);
  258.       this.display.appendText("\n  ConnectionInfoObject:\t" + var2);
  259.       this.display.appendText("\n\nCreating Session, LogonFrame, and Logon Failure Handler...");
  260.  
  261.       try {
  262.          this.proServer = new Session(this.serverUrl, false);
  263.          var3 = true;
  264.          this.display.appendText("\t\tdone.");
  265.       } catch (SQLException var7) {
  266.          this.display.appendText("\n\n***SQLException caught:  Unable to establish connection to specified dbANYWHERE Server.");
  267.          this.display.appendText("\n ->" + ((Throwable)var7).toString());
  268.          this.display.appendText("\n<------------------------------------------------------------------------------------------------------------------>");
  269.       }
  270.  
  271.       this.cinfo = new ConnectionInfo(var2);
  272.       this.cinfo.setAutoDisconnect(true);
  273.       this.cinfo.setUser(this.user);
  274.       this.cinfo.setPassword(this.password);
  275.       if (var3) {
  276.          var3 = false;
  277.          this.display.appendText("\nOpening server...");
  278.  
  279.          try {
  280.             this.proServerMetaData = this.proServer.getMetaData(this.cinfo);
  281.             this.display.appendText("\t\t\t\t\t\t\tdone.");
  282.             var3 = true;
  283.          } catch (SQLException var6) {
  284.             this.display.appendText("\n\n***metaDataError (SQLException caught):  Unable to establish connection to specified database server.");
  285.             this.display.appendText("\n ->" + ((Throwable)var6).toString());
  286.             this.display.appendText("\n<------------------------------------------------------------------------------------------------------------------>");
  287.          }
  288.       }
  289.  
  290.       if (var3) {
  291.          this.display.appendText("\n\nConnection information for " + this.proServerMetaData.getUserName() + ":");
  292.          this.display.appendText("\n  Driver Info:\t\t" + this.proServerMetaData.getDriverName() + " v." + this.proServerMetaData.getDriverVersion());
  293.          this.display.appendText("\n  Database:\t\t" + this.proServerMetaData.getDatabaseProductName());
  294.          if (this.proServerMetaData.getDatabaseProductVersion().trim().length() != 0) {
  295.             this.display.appendText(" v." + this.proServerMetaData.getDatabaseProductVersion());
  296.          }
  297.  
  298.          if (this.proServerMetaData.allProceduresAreCallable()) {
  299.             this.display.appendText("\n  \t\t\tAll procedures are callable.");
  300.          } else {
  301.             this.display.appendText("\n  \t\t\tSome procedures are not callable.");
  302.          }
  303.  
  304.          if (this.proServerMetaData.allTablesAreSelectable()) {
  305.             this.display.appendText("\n  \t\t\tAll tables are selectable.");
  306.          } else {
  307.             this.display.appendText("\n  \t\t\tSome tables are not selectable.");
  308.          }
  309.  
  310.          return true;
  311.       } else {
  312.          return false;
  313.       }
  314.    }
  315.  
  316.    private final void disableButtons() {
  317.       this.OKButton.disable();
  318.       this.proButton.disable();
  319.       this.jdbcButton.disable();
  320.    }
  321.  
  322.    private final void enableButtons() {
  323.       this.OKButton.enable();
  324.       this.proButton.enable();
  325.       this.jdbcButton.enable();
  326.    }
  327.  
  328.    public synchronized void show() {
  329.       Rectangle var1 = ((Component)this).getParent().bounds();
  330.       Rectangle var2 = ((Component)this).bounds();
  331.       ((Component)this).move(var1.x + (var1.width - var2.width) / 2, var1.y + (var1.height - var2.height) / 2);
  332.       super.show();
  333.    }
  334.  
  335.    private final void showError(String var1) {
  336.       MsgBox var2 = new MsgBox((Frame)((Component)this).getParent(), "Exception caught", var1);
  337.       var2.show();
  338.    }
  339.  
  340.    private final void testJdbc() {
  341.       this.OKButton.disable();
  342.       this.proButton.disable();
  343.       this.jdbcButton.disable();
  344.       if (this.connectJdbc()) {
  345.          this.closeJdbc();
  346.       }
  347.  
  348.       this.OKButton.enable();
  349.       this.proButton.enable();
  350.       this.jdbcButton.enable();
  351.    }
  352.  
  353.    private final void testPro() {
  354.       this.OKButton.disable();
  355.       this.proButton.disable();
  356.       this.jdbcButton.disable();
  357.       if (this.connectPro()) {
  358.          this.closePro();
  359.       }
  360.  
  361.       this.OKButton.enable();
  362.       this.proButton.enable();
  363.       this.jdbcButton.enable();
  364.    }
  365.  
  366.    public synchronized void wakeUp() {
  367.       this.notify();
  368.    }
  369.  
  370.    void TestBox_WindowClosing(WindowEvent var1) {
  371.       ((Window)this).dispose();
  372.    }
  373.  
  374.    void jdbcButton_Clicked(ActionEvent var1) {
  375.       this.OKButton.disable();
  376.       this.proButton.disable();
  377.       this.jdbcButton.disable();
  378.       if (this.connectJdbc()) {
  379.          this.closeJdbc();
  380.       }
  381.  
  382.       this.OKButton.enable();
  383.       this.proButton.enable();
  384.       this.jdbcButton.enable();
  385.    }
  386.  
  387.    void proButton_Clicked(ActionEvent var1) {
  388.       this.OKButton.disable();
  389.       this.proButton.disable();
  390.       this.jdbcButton.disable();
  391.       if (this.connectPro()) {
  392.          this.closePro();
  393.       }
  394.  
  395.       this.OKButton.enable();
  396.       this.proButton.enable();
  397.       this.jdbcButton.enable();
  398.    }
  399.  
  400.    void OKButton_Clicked(ActionEvent var1) {
  401.       ((Window)this).dispose();
  402.    }
  403. }
  404.