home *** CD-ROM | disk | FTP | other *** search
/ CD Actual Thematic 7: Programming / CDAT7.iso / Share / Java / JDesignerPro / Jdp3_0.exe / data1.cab / Program_Files / JDPDatabaseMaint.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-04-09  |  22.9 KB  |  1,375 lines

  1. import java.awt.BorderLayout;
  2. import java.awt.Button;
  3. import java.awt.CardLayout;
  4. import java.awt.Choice;
  5. import java.awt.Color;
  6. import java.awt.Component;
  7. import java.awt.Container;
  8. import java.awt.Event;
  9. import java.awt.List;
  10. import java.awt.Panel;
  11. import java.awt.Rectangle;
  12. import java.awt.TextField;
  13. import java.util.Hashtable;
  14. import java.util.StringTokenizer;
  15. import java.util.Vector;
  16.  
  17. public class JDPDatabaseMaint extends JDPClassLayout {
  18.    JDPTreePicker tree;
  19.    JDPTreeBranch treeRoot;
  20.    JDPTextGrid tableContents;
  21.    JDPPopupMessage popuppanel;
  22.    JDPDragItem dragPanel;
  23.    JDPPopupMenu popup;
  24.    JDPTreeBranch popupMain;
  25.    JDPTreeBranch popupMains;
  26.    JDPTreeBranch popupGroups;
  27.    JDPTreeBranch popupRemoveGroups;
  28.    JDPTreeBranch popupTemplates;
  29.    JDPTreeBranch popupTemplate;
  30.    JDPTreeBranch popupTables;
  31.    JDPTreeBranch popupTable;
  32.    JDPTemplateMaint templateMaint;
  33.    JDPGroupMaint groupMaint;
  34.    JDPSelectDSN datasourceMaint;
  35.    int itemIndex;
  36.    int columnCount = 7;
  37.    String currentType;
  38.    int totalRows;
  39.    String[][] saveCurrentText;
  40.    Hashtable connectionStrings;
  41.    Panel passwordPanel;
  42.    TextField tablename;
  43.    Vector[] pullDownListV;
  44.    List[] pullDownList;
  45.    TextField userid;
  46.    TextField password;
  47.    Panel cardPanel;
  48.    String[] dataSource;
  49.    String[] jdbcDriver;
  50.    String[] jdbcPrefix;
  51.    String[] jdbcSuffix;
  52.  
  53.    boolean createPopupMenus() {
  54.       this.popup.addEntry("Add a Database...");
  55.       this.popup.addEntry("");
  56.       this.popup.addEntry("Refresh");
  57.       this.popupMain = this.popup.getMenuTree();
  58.       this.popup.clear();
  59.       this.popup.addEntry("Add a Database...");
  60.       this.popup.addEntry("Remove Database");
  61.       this.popup.addEntry("");
  62.       this.popup.addEntry("Refresh");
  63.       this.popupMains = this.popup.getMenuTree();
  64.       this.popup.clear();
  65.       this.popup.addEntry("New Group...");
  66.       this.popup.addEntry("");
  67.       this.popup.addEntry("Refresh");
  68.       this.popupGroups = this.popup.getMenuTree();
  69.       this.popup.clear();
  70.       this.popup.addEntry("New Template...");
  71.       this.popup.addEntry("Remove Group");
  72.       this.popup.addEntry("");
  73.       this.popup.addEntry("Refresh");
  74.       this.popupRemoveGroups = this.popup.getMenuTree();
  75.       this.popup.clear();
  76.       this.popup.addEntry("New Template...");
  77.       this.popup.addEntry("");
  78.       this.popup.addEntry("Refresh");
  79.       this.popupTemplates = this.popup.getMenuTree();
  80.       this.popup.clear();
  81.       this.popup.addEntry("New Template...");
  82.       this.popup.addEntry("Edit Template...");
  83.       this.popup.addEntry("Remove Template");
  84.       this.popup.addEntry("Copy Template...");
  85.       this.popupTemplate = this.popup.getMenuTree();
  86.       this.popup.clear();
  87.       this.popup.addEntry("New Table...");
  88.       this.popup.addEntry("");
  89.       this.popup.addEntry("Refresh");
  90.       this.popupTables = this.popup.getMenuTree();
  91.       this.popup.clear();
  92.       this.popup.addEntry("New Table...");
  93.       this.popup.addEntry("Edit...");
  94.       this.popup.addEntry("Drop");
  95.       this.popup.addEntry("Copy Table...");
  96.       this.popupTable = this.popup.getMenuTree();
  97.       return true;
  98.    }
  99.  
  100.    void loadChoices() {
  101.    }
  102.  
  103.    void clearFields() {
  104.       this.tablename.setText("");
  105.       this.loadEmptyGrid();
  106.    }
  107.  
  108.    void loadEmptyGrid() {
  109.       this.tableContents.currentText = new String[this.columnCount][50];
  110.       this.tableContents.cellChanged = null;
  111.       this.tableContents.rowChanged = null;
  112.       this.tableContents.columnSelected = null;
  113.       this.setGridSettings();
  114.       this.tableContents.columnHeader[4] = "Key";
  115.       this.tableContents.columnProtected[4] = true;
  116.       this.tableContents.pullDownList[4][0] = this.pullDownList[5];
  117.       this.tableContents.columnWidth[4] = 36;
  118.       this.tableContents.columnHeader[5] = "Nulls";
  119.       this.tableContents.columnWidth[5] = 36;
  120.       this.tableContents.columnProtected[5] = true;
  121.       this.tableContents.pullDownList[5][0] = this.pullDownList[6];
  122.       this.tableContents.columnHeader[6] = "Default";
  123.       this.tableContents.columnWidth[6] = 100;
  124.       this.tableContents.newTable();
  125.    }
  126.  
  127.    void setGridSettings() {
  128.       this.tableContents.columnHeader = new String[this.columnCount];
  129.       this.tableContents.columnHeaderStyle = new int[this.columnCount];
  130.       this.tableContents.columnStyle = new int[this.columnCount];
  131.       this.tableContents.columnHeaderColor = new Color[this.columnCount];
  132.       this.tableContents.columnColor = new Color[this.columnCount];
  133.       this.tableContents.columnBGColor = new Color[this.columnCount];
  134.       this.tableContents.columnProtected = new boolean[this.columnCount];
  135.       this.tableContents.columnWidth = new int[this.columnCount];
  136.       this.tableContents.rightJustify = new boolean[this.columnCount];
  137.       this.tableContents.rowHeader = null;
  138.       this.tableContents.columnHeight = null;
  139.       this.tableContents.isPullDownCol = new boolean[this.columnCount];
  140.       this.tableContents.pullDownList = new List[this.columnCount][1];
  141.  
  142.       for(int var1 = 0; var1 < this.columnCount; ++var1) {
  143.          this.tableContents.columnHeaderStyle[var1] = 1;
  144.          this.tableContents.columnStyle[var1] = 0;
  145.          this.tableContents.columnHeaderColor[var1] = Color.black;
  146.          this.tableContents.columnColor[var1] = Color.black;
  147.          this.tableContents.columnBGColor[var1] = Color.white;
  148.          this.tableContents.columnStyle[var1] = 0;
  149.       }
  150.  
  151.       this.tableContents.columnHeader[0] = "Column Name";
  152.       this.tableContents.columnHeader[1] = "Data Type";
  153.       this.tableContents.columnHeader[2] = "Size";
  154.       this.tableContents.columnHeader[3] = "Dec";
  155.       this.pullDownListV = new Vector[this.columnCount];
  156.       this.pullDownList = new List[this.columnCount];
  157.       this.tableContents.isPullDownCol[1] = true;
  158.       this.tableContents.pullDownList[1][0] = new List();
  159.       JDPUtils.loadODBCList(this.tableContents.pullDownList[1][0]);
  160.       this.tableContents.columnProtected[1] = true;
  161.       this.tableContents.isPullDownCol[4] = true;
  162.       this.pullDownList[4] = new List();
  163.       if (this.columnCount == 7) {
  164.          this.pullDownList[5] = new List();
  165.          this.pullDownList[5].addItem("No");
  166.          this.pullDownList[5].addItem("Yes");
  167.          this.pullDownListV[5] = new Vector();
  168.          this.pullDownListV[5].addElement("N");
  169.          this.pullDownListV[5].addElement("Y");
  170.          this.tableContents.isPullDownCol[5] = true;
  171.          this.pullDownList[6] = new List();
  172.          this.pullDownList[6].addItem("No");
  173.          this.pullDownList[6].addItem("Yes");
  174.          this.pullDownListV[6] = new Vector();
  175.          this.pullDownListV[6].addElement("N");
  176.          this.pullDownListV[6].addElement("Y");
  177.       }
  178.  
  179.       this.tableContents.columnWidth[0] = 83;
  180.       this.tableContents.columnWidth[1] = 80;
  181.       this.tableContents.columnWidth[2] = 30;
  182.       this.tableContents.columnWidth[3] = 36;
  183.       this.tableContents.rightJustify[2] = true;
  184.       this.tableContents.rightJustify[3] = true;
  185.    }
  186.  
  187.    int getIndex(String var1) {
  188.       for(int var2 = 0; var2 < this.dataSource.length; ++var2) {
  189.          if (var1.equals(this.dataSource[var2])) {
  190.             return var2;
  191.          }
  192.       }
  193.  
  194.       return -1;
  195.    }
  196.  
  197.    boolean updateTable() {
  198.       int var1 = 0;
  199.       Vector var2 = new Vector();
  200.       JDPJagg var3 = new JDPJagg(super.user.jaggPath);
  201.       var3.getSEP();
  202.       String var4 = "";
  203.       super.user.mainmsg.setStatusMsg("Saving...", 0);
  204.       String[] var5 = this.tree.getSelectedBranch();
  205.       String var6 = var5[1];
  206.       var3.setDSN(var6);
  207.       String var7 = (String)this.connectionStrings.get(var5[1]);
  208.       String var8 = null;
  209.       if (this.passwordPanel.isVisible()) {
  210.          var7 = null;
  211.       }
  212.  
  213.       if (var7 == null) {
  214.          var8 = "DSN=" + var6 + ";UID=" + this.userid.getText() + ";PWD=" + this.password.getText() + ";";
  215.          var7 = var8;
  216.       }
  217.  
  218.       int var9 = this.getIndex(var5[1]);
  219.       var3.setJdbcDriver(this.jdbcDriver[var9]);
  220.       var3.setJdbcPrefix(this.jdbcPrefix[var9]);
  221.       var3.setJdbcSuffix(this.jdbcSuffix[var9]);
  222.       var3.setCSTR(var7);
  223.       String var10 = super.user.u.getDataSourceType(var3);
  224.       if (var10 == null) {
  225.          super.user.mainmsg.setStatusMsg("Please enter a username and password to connect to this Database.", 20);
  226.          ((CardLayout)this.cardPanel.getLayout()).show(this.cardPanel, "Password");
  227.          this.userid.requestFocus();
  228.          this.userid.selectAll();
  229.          return false;
  230.       } else {
  231.          String var11 = "text";
  232.          String var12 = "date";
  233.          String var13 = "float";
  234.          String var14 = "int";
  235.          String var15 = " NULL";
  236.          if (var10.indexOf(JDPJagg.MSSQLSERVER) >= 0) {
  237.             var11 = "text";
  238.             var12 = "datetime";
  239.             var13 = "decimal";
  240.          } else if (var10.indexOf(JDPJagg.SYBASE) < 0 && var10.indexOf(JDPJagg.SYBASE10) < 0) {
  241.             if (var10.indexOf(JDPJagg.ANYWHERE) >= 0) {
  242.                var11 = "text";
  243.                var12 = "datetime";
  244.                var13 = "decimal";
  245.             } else if (var10.indexOf(JDPJagg.FOXPRO) >= 0) {
  246.                var11 = "memo";
  247.                var13 = "int";
  248.                var15 = "";
  249.             } else if (var10.indexOf(JDPJagg.ORACLE) >= 0) {
  250.                var11 = "long";
  251.                var13 = "decimal";
  252.             } else if (var10.indexOf(JDPJagg.DB2) >= 0) {
  253.                var11 = "long varchar";
  254.                var13 = "decimal";
  255.             }
  256.          } else {
  257.             var11 = "text";
  258.             var12 = "datetime";
  259.             var13 = "decimal";
  260.          }
  261.  
  262.          if (var10.indexOf(JDPJagg.SOLIDSERVER) >= 0) {
  263.             var11 = "long varchar";
  264.             var13 = "decimal";
  265.          }
  266.  
  267.          if (var10.indexOf(JDPJagg.LOTUS) >= 0) {
  268.             var11 = "long varchar";
  269.             var13 = "decimal";
  270.             var14 = "integer";
  271.          }
  272.  
  273.          if (var10.indexOf(JDPJagg.INFORMIX) >= 0) {
  274.             var11 = "varchar(255)";
  275.             var13 = "decimal";
  276.             var14 = "integer";
  277.          }
  278.  
  279.          if (var10.indexOf(JDPJagg.CLOUDSCAPE) >= 0) {
  280.             var15 = "";
  281.             var11 = "varchar(" + Integer.toString(Integer.MAX_VALUE) + ")";
  282.          }
  283.  
  284.          boolean var16 = false;
  285.          int var17 = 0;
  286.          if (this.saveCurrentText != null && !this.tablename.isEditable()) {
  287.             var17 = this.saveCurrentText[0].length;
  288.             var16 = true;
  289.             if (!this.tablename.isEditable()) {
  290.                label238:
  291.                for(int var18 = 0; var18 < var17; ++var18) {
  292.                   int var19 = 0;
  293.  
  294.                   while(this.tableContents.currentText[var19][var18].equals(this.saveCurrentText[var19][var18])) {
  295.                      ++var19;
  296.                      if (var19 >= 3) {
  297.                         continue label238;
  298.                      }
  299.                   }
  300.  
  301.                   var16 = false;
  302.                }
  303.             }
  304.          }
  305.  
  306.          int var35 = 0;
  307.          if (var16) {
  308.             var4 = "ALTER TABLE " + this.tablename.getText() + " ADD ";
  309.             var35 = var17;
  310.          } else {
  311.             if (var17 > 0 && !this.saveTable(this.tablename.getText())) {
  312.                if (var8 != null) {
  313.                   super.user.mainmsg.setStatusMsg("Please enter a username and password to connect to this Database.", 20);
  314.                   ((CardLayout)this.cardPanel.getLayout()).show(this.cardPanel, "Password");
  315.                   this.userid.requestFocus();
  316.                   this.userid.selectAll();
  317.                }
  318.  
  319.                return false;
  320.             }
  321.  
  322.             var4 = "CREATE TABLE " + this.tablename.getText() + " ( ";
  323.             var35 = 0;
  324.          }
  325.  
  326.          boolean var37 = true;
  327.  
  328.          for(int var20 = var35; var20 < this.tableContents.currentText[0].length; ++var20) {
  329.             if (this.tableContents.currentText[0][var20] != null && !this.tableContents.currentText[0][var20].equals("")) {
  330.                if (!var37) {
  331.                   var4 = var4 + ", ";
  332.                }
  333.  
  334.                var37 = false;
  335.                var4 = var4 + super.user.u.replace(this.tableContents.currentText[0][var20], " ", "") + " ";
  336.                String var21 = this.tableContents.currentText[1][var20];
  337.                int var22 = JDPUtils.getODBCValue(this.tableContents.currentText[1][var20]);
  338.                if (JDPUtils.isOdbcMemo(var22)) {
  339.                   var4 = var4 + var11;
  340.                } else if (JDPUtils.isOdbcBinary(var22)) {
  341.                   var4 = var4 + "image";
  342.                } else if (JDPUtils.isOdbcChar(var22)) {
  343.                   var4 = var4 + var21;
  344.                   var4 = var4 + " (" + this.tableContents.currentText[2][var20] + ")";
  345.                } else if (JDPUtils.isOdbcDate(var22)) {
  346.                   var4 = var4 + var12;
  347.                } else if (JDPUtils.isOdbcFloat(var22)) {
  348.                   var4 = var4 + var13;
  349.                   if (!var13.equals("int")) {
  350.                      var4 = var4 + " (" + this.tableContents.currentText[2][var20] + "," + this.tableContents.currentText[3][var20] + ")";
  351.                   }
  352.                } else if (JDPUtils.isOdbcInt(var22)) {
  353.                   var4 = var4 + var14;
  354.                } else {
  355.                   var4 = var4 + var21;
  356.                }
  357.  
  358.                if (this.tableContents.currentText[5][var20].equals("Yes")) {
  359.                   var4 = var4 + var15;
  360.                }
  361.  
  362.                if (this.tableContents.currentText[6][var20] != null && !this.tableContents.currentText[6][var20].equals("")) {
  363.                   if (!JDPUtils.isOdbcChar(var22) && !JDPUtils.isOdbcDate(var22)) {
  364.                      var4 = var4 + " DEFAULT(" + this.tableContents.currentText[6][var20] + ")";
  365.                   } else {
  366.                      var4 = var4 + " DEFAULT('" + this.tableContents.currentText[6][var20] + "')";
  367.                   }
  368.                }
  369.             }
  370.          }
  371.  
  372.          if (var16) {
  373.             super.user.mainmsg.setStatusMsg("Altering table...", 0);
  374.             var1 = var3.execSQL(var4, var2);
  375.             if (var1 == -1) {
  376.                if (var8 != null) {
  377.                   super.user.mainmsg.setStatusMsg("Please enter a username and password to connect to this Database.", 20);
  378.                   ((CardLayout)this.cardPanel.getLayout()).show(this.cardPanel, "Password");
  379.                   this.userid.requestFocus();
  380.                   this.userid.selectAll();
  381.                } else {
  382.                   super.user.u.setSqlMessage(var3, var4);
  383.                }
  384.  
  385.                return false;
  386.             }
  387.          } else {
  388.             var4 = var4 + ")";
  389.             super.user.mainmsg.setStatusMsg("Creating new table...", 0);
  390.             var1 = var3.execSQL(var4, var2);
  391.             if (var1 == -1) {
  392.                super.user.u.setSqlMessage(var3, var4);
  393.                if (var17 > 0) {
  394.                   this.restoreTable(this.tablename.getText());
  395.                }
  396.  
  397.                return false;
  398.             }
  399.  
  400.             if (var17 > 0) {
  401.                var4 = "INSERT INTO " + this.tablename.getText() + " ( ";
  402.                var37 = true;
  403.  
  404.                for(int var40 = 0; var40 < this.tableContents.currentText[0].length; ++var40) {
  405.                   if (this.tableContents.currentText[0][var40] != null && !this.tableContents.currentText[0][var40].equals("")) {
  406.                      if (!var37) {
  407.                         var4 = var4 + ", ";
  408.                      }
  409.  
  410.                      var37 = false;
  411.                      var4 = var4 + this.tableContents.currentText[0][var40] + " ";
  412.                   }
  413.                }
  414.  
  415.                var4 = var4 + ") SELECT ";
  416.                var37 = true;
  417.                boolean var41 = false;
  418.                if (var17 > this.tableContents.currentText[0].length) {
  419.                   var17 = this.tableContents.currentText[0].length;
  420.                }
  421.  
  422.                for(int var42 = 0; var42 < var17; ++var42) {
  423.                   if (this.saveCurrentText[0][var42] != null && !this.saveCurrentText[0][var42].equals("") && this.tableContents.currentText[0][var42] != null && !this.tableContents.currentText[0][var42].equals("")) {
  424.                      if (!var37) {
  425.                         var4 = var4 + ", ";
  426.                      }
  427.  
  428.                      var37 = false;
  429.                      var4 = var4 + this.saveCurrentText[0][var42] + " ";
  430.                      var41 = true;
  431.                   }
  432.                }
  433.  
  434.                for(int var43 = var17; var43 < this.tableContents.currentText[0].length; ++var43) {
  435.                   if (this.tableContents.currentText[0][var43] != null && !this.tableContents.currentText[0][var43].equals("")) {
  436.                      if (!var37) {
  437.                         var4 = var4 + ", ";
  438.                      }
  439.  
  440.                      var37 = false;
  441.                      int var44 = JDPUtils.getODBCValue(this.tableContents.currentText[1][var43]);
  442.                      if (JDPUtils.isOdbcChar(var44)) {
  443.                         var4 = var4 + "' '";
  444.                      } else if (JDPUtils.isOdbcDate(var44)) {
  445.                         var4 = var4 + "' '";
  446.                      } else {
  447.                         var4 = var4 + "0";
  448.                      }
  449.                   }
  450.                }
  451.  
  452.                var4 = var4 + " FROM tmp88934";
  453.                if (var41) {
  454.                   super.user.mainmsg.setStatusMsg("Restoring existing table data...", 0);
  455.                   var1 = var3.execSQL(var4, var2);
  456.                   if (var1 == -1) {
  457.                      super.user.u.setSqlMessage(var3, var4);
  458.                      super.user.mainmsg.setStatusMsg("Saving old data...", 0);
  459.                      var4 = "SELECT * INTO O" + this.tablename.getText() + " FROM tmp88934";
  460.                      var1 = var3.execSQL(var4, var2);
  461.                      this.loadTables();
  462.                      if (var1 >= 0) {
  463.                         super.user.mainmsg.setStatusMsg("Old data has been saved to O" + this.tablename.getText() + ".   " + Integer.toString(var1) + " rows were written", 20);
  464.                      } else {
  465.                         super.user.u.setSqlMessage(var3, var4);
  466.                      }
  467.  
  468.                      this.dropTable("tmp88934");
  469.                      return false;
  470.                   }
  471.                }
  472.  
  473.                this.dropTable("tmp88934");
  474.             }
  475.          }
  476.  
  477.          if (var8 != null) {
  478.             this.connectionStrings.put(var6, var8);
  479.          }
  480.  
  481.          return true;
  482.       }
  483.    }
  484.  
  485.    boolean restoreTable(String var1) {
  486.       int var2 = 0;
  487.       Vector var3 = new Vector();
  488.       JDPJagg var4 = new JDPJagg(super.user.jaggPath);
  489.       var4.getSEP();
  490.       String var5 = "";
  491.       super.user.mainmsg.setStatusMsg("Create table failed - Restoring original table data...", 0);
  492.       var5 = "SELECT * INTO " + var1 + " FROM tmp88934";
  493.       String[] var6 = this.tree.getSelectedBranch();
  494.       String var7 = var6[1];
  495.       var4.setDSN(var7);
  496.       int var8 = this.getIndex(var6[1]);
  497.       var4.setJdbcDriver(this.jdbcDriver[var8]);
  498.       var4.setJdbcPrefix(this.jdbcPrefix[var8]);
  499.       var4.setJdbcSuffix(this.jdbcSuffix[var8]);
  500.       var4.setCSTR("DSN=" + var7 + ";UID=" + this.userid.getText() + ";PWD=" + this.password.getText() + ";");
  501.       var2 = var4.execSQL(var5, var3);
  502.       if (var2 == -1) {
  503.          super.user.u.setSqlMessage(var4, var5);
  504.          return false;
  505.       } else {
  506.          this.dropTable("tmp88934");
  507.          return true;
  508.       }
  509.    }
  510.  
  511.    void loadTables() {
  512.       int var2 = 0;
  513.       Vector var3 = new Vector();
  514.       JDPJagg var4 = new JDPJagg(super.user.jaggPath);
  515.       String var5 = var4.getSEP();
  516.       int var6 = 0;
  517.       String var8 = "";
  518.       String[] var9 = this.tree.getSelectedBranch();
  519.       String var10 = var9[1];
  520.       String var11 = var9[2];
  521.       if (var11.equals("Tables")) {
  522.          var11 = "TABLE";
  523.       }
  524.  
  525.       if (var11.equals("Views")) {
  526.          var11 = "VIEW";
  527.       }
  528.  
  529.       super.user.mainmsg.setStatusMsg("Loading Table definitions, please wait...", 0);
  530.       var4.setDSN(var10);
  531.       String var12 = (String)this.connectionStrings.get(var9[1]);
  532.       String var13 = null;
  533.       if (this.passwordPanel.isVisible()) {
  534.          var12 = null;
  535.       }
  536.  
  537.       if (var12 == null) {
  538.          var13 = "DSN=" + var10 + ";UID=" + this.userid.getText() + ";PWD=" + this.password.getText() + ";";
  539.          var12 = var13;
  540.       }
  541.  
  542.       int var14 = this.getIndex(var10);
  543.       var4.setJdbcDriver(this.jdbcDriver[var14]);
  544.       var4.setJdbcPrefix(this.jdbcPrefix[var14]);
  545.       var4.setJdbcSuffix(this.jdbcSuffix[var14]);
  546.       var4.setCSTR(var12);
  547.       if (!JDPJagg.useJaggServer) {
  548.          var4.setFCTNP(";;;" + var11 + ";");
  549.       } else {
  550.          var4.setFCTNP(";;;" + var11 + ";");
  551.       }
  552.  
  553.       var4.setFCTN("SQLTables");
  554.       var4.setMRW("100000");
  555.       var2 = var4.execSQL(var8, var3);
  556.       if (var2 == -1) {
  557.          super.user.mainmsg.setStatusMsg("Please enter a username and password to connect to this Database.", 20);
  558.          ((CardLayout)this.cardPanel.getLayout()).show(this.cardPanel, "Password");
  559.          this.userid.requestFocus();
  560.          this.userid.selectAll();
  561.       } else {
  562.          ((CardLayout)this.cardPanel.getLayout()).show(this.cardPanel, "Normal");
  563.          if (var13 != null) {
  564.             this.connectionStrings.put(var10, var13);
  565.          }
  566.  
  567.          Object[] var15 = new Object[]{null, null, null, "Tables"};
  568.          Object var16 = null;
  569.          this.tree.setDropKeys(var15);
  570.          this.tree.setDropMessages((String[])var16);
  571.          var6 = var4.getRowCount();
  572.          var4.getColumnCount();
  573.          int[] var17 = new int[]{4, 3, 2, 1};
  574.          this.tree.setIcons(var17);
  575.          String[] var18 = new String[]{var10, null, null};
  576.  
  577.          for(int var19 = 0; var19 < var6; ++var19) {
  578.             String var7 = (String)var3.elementAt(var19);
  579.             if (var7 != null && var7.trim().compareTo("") != 0) {
  580.                StringTokenizer var1 = new StringTokenizer(var7, var5);
  581.                var1.nextToken().trim();
  582.                String var20 = var1.nextToken().trim();
  583.                String var21;
  584.                if (var20.length() > 0) {
  585.                   var21 = var20 + "." + var1.nextToken().trim();
  586.                } else {
  587.                   var21 = var1.nextToken().trim();
  588.                }
  589.  
  590.                var11 = var1.nextToken().trim();
  591.                if (var11.equals("TABLE")) {
  592.                   var18[1] = "Tables";
  593.                   var18[2] = var21;
  594.                   this.tree.addEntry(var18);
  595.                }
  596.  
  597.                if (var11.equals("VIEW")) {
  598.                   var18[1] = "Views";
  599.                   var18[2] = var21;
  600.                   this.tree.addEntry(var18);
  601.                }
  602.             }
  603.          }
  604.  
  605.          this.tree.repaint();
  606.          this.tree.setDropKeys((Object[])null);
  607.          this.tree.setDropMessages((String[])null);
  608.          super.user.mainmsg.clearStatusMsg();
  609.       }
  610.    }
  611.  
  612.    void loadDataSources() {
  613.       int var2 = 0;
  614.       Vector var3 = new Vector();
  615.       String var4 = super.user.jaggSQL.getSEP();
  616.       int var5 = 0;
  617.       int var6 = 0;
  618.       String var8 = "";
  619.       super.user.mainmsg.setStatusMsg("Loading Databases...", 0);
  620.       var8 = "SELECT * FROM JDPDataSrc";
  621.       super.user.jaggSQL.setFCTN("");
  622.       var2 = super.user.jaggSQL.execSQL(var8, var3);
  623.       var5 = super.user.jaggSQL.getRowCount();
  624.       var6 = super.user.jaggSQL.getColumnCount();
  625.       super.user.jaggSQL.setFCTN("");
  626.       if (var2 == -1) {
  627.          super.user.mainmsg.setStatusMsg("Connection to JAGG Server failed. Check JDPJagg.exe is installed in CGI directory.", 0);
  628.          System.out.println("JDPSelectDSN/loadList ERR: " + super.user.jaggSQL.getError());
  629.       } else {
  630.          Object[] var9 = new Object[]{null, null, "Templates"};
  631.          String[] var10 = new String[]{null, null, "Drop template to create a table from this template"};
  632.          this.tree.setDropMessages(var10);
  633.          this.dataSource = new String[var5];
  634.          this.jdbcDriver = new String[var5];
  635.          this.jdbcPrefix = new String[var5];
  636.          this.jdbcSuffix = new String[var5];
  637.          String[] var11 = new String[3];
  638.  
  639.          for(int var12 = 0; var12 < var5; ++var12) {
  640.             String var7 = (String)var3.elementAt(var12);
  641.             if (var7 != null && var7.trim().compareTo("") != 0) {
  642.                StringTokenizer var1 = new StringTokenizer(var7);
  643.                int[] var13 = new int[]{4, 3, 2, 1};
  644.                this.tree.setIcons(var13);
  645.                var11 = new String[3];
  646.                String var14 = var1.nextToken(var4).trim();
  647.                var11[0] = var14;
  648.                var11[1] = "Tables";
  649.                var11[2] = "";
  650.                this.tree.setDropKeys(var9);
  651.                this.tree.addEntry(var11);
  652.                this.tree.setDropKeys((Object[])null);
  653.                var11[0] = var14;
  654.                var11[1] = "Views";
  655.                var11[2] = "";
  656.                this.tree.addEntry(var11);
  657.                this.dataSource[var12] = var14;
  658.                this.jdbcDriver[var12] = var1.nextToken(var4).trim();
  659.                this.jdbcPrefix[var12] = var1.nextToken(var4).trim();
  660.                this.jdbcSuffix[var12] = var1.nextToken(var4).trim();
  661.             }
  662.          }
  663.  
  664.          this.tree.nothingChanged = false;
  665.          this.tree.repaint();
  666.          this.tree.setDropMessages((String[])null);
  667.          super.user.mainmsg.clearStatusMsg();
  668.       }
  669.    }
  670.  
  671.    boolean checkFields() {
  672.       String var1 = this.tablename.getText();
  673.       var1 = super.user.u.replace(var1, " ", "");
  674.       this.tablename.setText(var1);
  675.       return super.user.u.ischaracter(this.tablename, super.user.mainmsg, "Please enter a name");
  676.    }
  677.  
  678.    public boolean handleEvent(Event var1) {
  679.       switch (var1.id) {
  680.          case 202:
  681.             if (var1.target instanceof JDPTabSelectTopPanel) {
  682.                return true;
  683.             }
  684.  
  685.             return false;
  686.          case 401:
  687.             if (var1.key == 9) {
  688.                if (var1.modifiers != 1) {
  689.                   if (var1.target.equals(this.userid)) {
  690.                      super.user.u.cursor(this.password);
  691.                      return true;
  692.                   }
  693.  
  694.                   if (var1.target.equals(this.password)) {
  695.                      super.user.u.cursor(this.userid);
  696.                      return true;
  697.                   }
  698.                } else {
  699.                   if (var1.target.equals(this.userid)) {
  700.                      super.user.u.cursor(this.password);
  701.                      return true;
  702.                   }
  703.  
  704.                   if (var1.target.equals(this.password)) {
  705.                      super.user.u.cursor(this.userid);
  706.                      return true;
  707.                   }
  708.                }
  709.  
  710.                return true;
  711.             }
  712.  
  713.             return false;
  714.          case 501:
  715.             this.dragPanel.postEvent(var1);
  716.             if (this.popup.isVisible()) {
  717.                this.popup.hideMenu();
  718.                return true;
  719.             }
  720.  
  721.             return false;
  722.          case 502:
  723.             if (this.dragPanel.isVisible()) {
  724.                this.dragPanel.postEvent(var1);
  725.                return true;
  726.             }
  727.  
  728.             return false;
  729.          case 503:
  730.          case 504:
  731.          case 505:
  732.             this.popuppanel.postEvent(var1);
  733.             return false;
  734.          case 506:
  735.             this.dragPanel.postEvent(var1);
  736.             return false;
  737.          case 701:
  738.             if (var1.target instanceof JDPTreePicker) {
  739.                String[] var11 = this.tree.getSelectedBranch();
  740.                String var17 = (String)var1.arg;
  741.                if (var17.equals("BranchOpen")) {
  742.                   if (var1.target.equals(this.tree) && this.tree.currentBranchLvl == 2 && (var11[2].equals("Tables") || var11[2].equals("Views"))) {
  743.                      this.loadTables();
  744.                      return true;
  745.                   }
  746.                } else if (var17.equals("BranchSelect")) {
  747.                   int[] var21 = this.tree.getSelectedBranchIcons();
  748.                   if (var1.target.equals(this.tree) && this.tree.currentBranchLvl == 2 && var11[2].equals("Tables")) {
  749.                      this.popup.setMenuTree(this.popupTables);
  750.                      this.popup.display(var1.x, var1.y);
  751.                      return true;
  752.                   }
  753.  
  754.                   if (var1.target.equals(this.tree) && this.tree.currentBranchLvl == 2 && !var11[2].equals("Tables") && !var11[2].equals("Views")) {
  755.                      String var23 = this.tree.getLeafName(0);
  756.                      if (var23 != null && !var23.equals("")) {
  757.                         this.popup.setMenuTree(this.popupTemplates);
  758.                      } else {
  759.                         this.popup.setMenuTree(this.popupRemoveGroups);
  760.                      }
  761.  
  762.                      this.popup.display(var1.x, var1.y);
  763.                      return true;
  764.                   }
  765.  
  766.                   if (var1.target.equals(this.tree) && this.tree.currentBranchLvl == 1 && var21[1] == 0) {
  767.                      this.popup.setMenuTree(this.popupGroups);
  768.                      this.popup.display(var1.x, var1.y);
  769.                      return true;
  770.                   }
  771.  
  772.                   if (var1.target.equals(this.tree) && this.tree.currentBranchLvl == 0 && var21[0] == 4 && JDPJagg.useJaggServer) {
  773.                      this.popup.setMenuTree(this.popupMain);
  774.                      this.popup.display(var1.x, var1.y);
  775.                      return true;
  776.                   }
  777.  
  778.                   if (var1.target.equals(this.tree) && this.tree.currentBranchLvl == 1 && var21[1] == 3 && JDPJagg.useJaggServer) {
  779.                      this.popup.setMenuTree(this.popupMains);
  780.                      this.popup.display(var1.x, var1.y);
  781.                      return true;
  782.                   }
  783.                } else if (var17.equals("LeafSelect")) {
  784.                   if (var1.target.equals(this.tree) && this.tree.currentBranchLvl == 3 && var11[2].equals("Tables")) {
  785.                      this.popup.setMenuTree(this.popupTable);
  786.                      this.popup.display(var1.x, var1.y);
  787.                      return true;
  788.                   }
  789.  
  790.                   if (var1.target.equals(this.tree) && this.tree.currentBranchLvl == 3 && !var11[2].equals("Tables") && !var11[2].equals("Views")) {
  791.                      this.popup.setMenuTree(this.popupTemplate);
  792.                      this.popup.display(var1.x, var1.y);
  793.                      return true;
  794.                   }
  795.                }
  796.             }
  797.  
  798.             return false;
  799.          case 1001:
  800.             String[] var2 = this.tree.getSelectedBranch();
  801.             if (var1.target instanceof JDPTreePicker) {
  802.                if (var1.target.equals(this.tree) && (var2[2].equals("Tables") || var2[2].equals("Views")) && this.tree.currentBranchLvl == 3) {
  803.                   ((CardLayout)this.cardPanel.getLayout()).show(this.cardPanel, "Normal");
  804.                   this.loadGrid((String[])null);
  805.                   return true;
  806.                } else {
  807.                   int[] var16 = this.tree.getSelectedBranchIcons();
  808.                   if (var1.target.equals(this.tree) && var16[1] == 0 && this.tree.currentBranchLvl == 3) {
  809.                      ((CardLayout)this.cardPanel.getLayout()).show(this.cardPanel, "Template");
  810.                      this.templateMaint.loadData((String[])null);
  811.                      return true;
  812.                   }
  813.  
  814.                   return true;
  815.                }
  816.             } else {
  817.                if (var1.target instanceof Button) {
  818.                   String var12 = (String)var1.arg;
  819.                   if (var12.trim().compareTo("Save") == 0) {
  820.                      if (this.checkFields() && this.updateTable()) {
  821.                         this.loadTables();
  822.                         String[] var20 = this.tree.getSelectedBranch();
  823.                         var20[3] = this.tablename.getText();
  824.                         this.tree.nothingChanged = false;
  825.                         this.tree.select(var20, 3);
  826.                         this.tree.repaint();
  827.                         this.loadGrid(var20);
  828.                      }
  829.  
  830.                      return true;
  831.                   }
  832.  
  833.                   if (var12.trim().compareTo("Reset") == 0) {
  834.                      this.loadGrid((String[])null);
  835.                      return true;
  836.                   }
  837.                }
  838.  
  839.                if (var1.target instanceof JDPButton) {
  840.                   String var15 = (String)var1.arg;
  841.                   if (var15.trim().compareTo("Connect") == 0) {
  842.                      this.loadDataSources();
  843.                      ((CardLayout)this.cardPanel.getLayout()).show(this.cardPanel, "Normal");
  844.                      return true;
  845.                   }
  846.  
  847.                   return true;
  848.                } else if (var1.target instanceof Choice) {
  849.                   return true;
  850.                } else if (var1.target instanceof TextField) {
  851.                   this.loadTables();
  852.                   this.checkFields();
  853.                   return true;
  854.                } else if (var1.target instanceof JDPPopupMenu) {
  855.                   String[] var14 = this.popup.getSelectedBranch();
  856.                   this.popup.hideMenu();
  857.                   if (var14[0].equals("New Table...")) {
  858.                      this.tablename.setEditable(true);
  859.                      this.tablename.setText("");
  860.                      this.loadEmptyGrid();
  861.                      return true;
  862.                   } else if (var14[0].equals("Edit...")) {
  863.                      this.tablename.setEditable(false);
  864.                      this.loadGrid((String[])null);
  865.                      return true;
  866.                   } else if (var14[0].equals("Copy Table...")) {
  867.                      this.tablename.setEditable(true);
  868.                      this.tablename.setText("");
  869.                      this.loadGrid((String[])null);
  870.                      this.tablename.setEditable(true);
  871.                      this.tablename.setText("");
  872.                      return true;
  873.                   } else if (var14[0].equals("Drop")) {
  874.                      if (this.dropTable(this.tablename.getText())) {
  875.                         this.tree.removeBranch(this.tree.getSelectedBranch());
  876.                         this.loadEmptyGrid();
  877.                      }
  878.  
  879.                      this.tablename.setEditable(false);
  880.                      this.tablename.setText("");
  881.                      return true;
  882.                   } else if (var14[0].equals("Refresh") && this.tree.currentBranchLvl == 0) {
  883.                      this.loadDataSources();
  884.                      return true;
  885.                   } else {
  886.                      int[] var19 = this.tree.getSelectedBranchIcons();
  887.                      if (var14[0].equals("Refresh") && var19[1] != 3) {
  888.                         this.loadDataSources();
  889.                         return true;
  890.                      } else if (var14[0].equals("Refresh") && var19[1] != 0) {
  891.                         this.loadTables();
  892.                         return true;
  893.                      } else if (var14[0].equals("Refresh") && var19[1] == 0) {
  894.                         this.templateMaint.loadGroups();
  895.                         this.templateMaint.loadTemplates();
  896.                         return true;
  897.                      } else if (var14[0].equals("Add a Database...")) {
  898.                         ((CardLayout)this.cardPanel.getLayout()).show(this.cardPanel, "Database");
  899.                         return true;
  900.                      } else if (var14[0].compareTo("Remove Database") == 0) {
  901.                         this.datasourceMaint.dataSources.select(this.tree.getSelectedBranch()[1]);
  902.                         this.datasourceMaint.removeItem();
  903.                         this.tree.removeBranch(this.tree.getSelectedBranch());
  904.                         return true;
  905.                      } else if (var14[0].equals("New Group...")) {
  906.                         ((CardLayout)this.cardPanel.getLayout()).show(this.cardPanel, "Group");
  907.                         this.groupMaint.insertRequested = true;
  908.                         this.groupMaint.clearFields();
  909.                         return true;
  910.                      } else if (var14[0].compareTo("Remove Group") == 0) {
  911.                         this.groupMaint.insertRequested = false;
  912.                         this.groupMaint.deleteRequested = true;
  913.                         this.groupMaint.saveData();
  914.                         this.tree.removeBranch(this.tree.getSelectedBranch());
  915.                         return true;
  916.                      } else if (var14[0].equals("New Template...")) {
  917.                         ((CardLayout)this.cardPanel.getLayout()).show(this.cardPanel, "Template");
  918.                         this.templateMaint.insertRequested = true;
  919.                         this.templateMaint.clearFields();
  920.                         this.templateMaint.a_templtype.select(var2[1]);
  921.                         this.templateMaint.a_groupname.select(var2[2]);
  922.                         if (this.templateMaint.valuea_templtype.elementAt(this.templateMaint.a_templtype.getSelectedIndex()).equals("E")) {
  923.                            ((CardLayout)this.templateMaint.tabMainPanel.getLayout()).show(this.templateMaint.tabMainPanel, "E");
  924.                         } else {
  925.                            ((CardLayout)this.templateMaint.tabMainPanel.getLayout()).show(this.templateMaint.tabMainPanel, "blank");
  926.                         }
  927.  
  928.                         this.templateMaint.tabPanelMain.select(0);
  929.                         this.templateMaint.templateDetail.currentType = var2[1].substring(0, 1);
  930.                         this.templateMaint.templateDetail.setGridSettings();
  931.                         this.templateMaint.templateDetail.loadEmptyGrid();
  932.                         return true;
  933.                      } else if (var14[0].compareTo("Edit Template...") == 0) {
  934.                         this.templateMaint.loadData((String[])null);
  935.                         return true;
  936.                      } else {
  937.                         if (var14[0].compareTo("Copy Template...") != 0) {
  938.                            if (var14[0].compareTo("Remove Template") == 0) {
  939.                               this.templateMaint.insertRequested = false;
  940.                               this.templateMaint.deleteRequested = true;
  941.                               this.templateMaint.saveData();
  942.                               this.templateMaint.clearFields();
  943.                               this.templateMaint.templateDetail.setGridSettings();
  944.                               this.templateMaint.templateDetail.loadEmptyGrid();
  945.                               this.templateMaint.tabPanelMain.select(0);
  946.                               this.tree.removeBranch(this.tree.getSelectedBranch());
  947.                               return true;
  948.                            }
  949.  
  950.                            return true;
  951.                         }
  952.  
  953.                         this.templateMaint.insertRequested = true;
  954.                         this.templateMaint.a_templtype.select(var2[1]);
  955.                         this.templateMaint.a_groupname.select(var2[2]);
  956.                         this.templateMaint.tabPanelMain.select(0);
  957.  
  958.                         for(int var22 = 0; var22 < this.templateMaint.templateDetail.totalRows; ++var22) {
  959.                            this.templateMaint.templateDetail.tableContents.rowChanged[var22] = true;
  960.                         }
  961.  
  962.                         this.templateMaint.templateDetail.totalRows = 0;
  963.                         return true;
  964.                      }
  965.                   }
  966.                } else if (!(var1.target instanceof JDPDragItem)) {
  967.                   return false;
  968.                } else {
  969.                   Rectangle var13 = this.dragPanel.getDragRectangle();
  970.                   var13.x -= this.tree.xOffset - this.tree.dragXoffset;
  971.                   var13.y -= this.tree.yOffset - this.tree.dragYoffset;
  972.                   String[] var18 = this.tree.getBranch(var13);
  973.                   String var5 = (String)this.tree.getDropKey(var13);
  974.                   Rectangle var6 = this.dragPanel.getDropRectangle();
  975.                   String[] var7 = this.tree.getBranch(var6);
  976.                   if (var5 != null && var7 != null && var18 != null) {
  977.                      this.tree.select(var7, 2);
  978.                      this.tree.nothingChanged = false;
  979.                      this.tree.repaint();
  980.                      if (var5.equals("Templates")) {
  981.                         ((CardLayout)this.cardPanel.getLayout()).show(this.cardPanel, "Normal");
  982.                         this.loadEmptyGrid();
  983.                         this.templateMaint.loadData(var18);
  984.                         System.arraycopy(this.templateMaint.templateDetail.tableContents.currentText, 0, this.tableContents.currentText, 0, this.templateMaint.templateDetail.tableContents.currentText.length);
  985.                         this.saveCurrentText = null;
  986.                         this.tableContents.newTable();
  987.                         this.tablename.setEditable(true);
  988.                         this.tablename.setText(var18[3]);
  989.                      }
  990.  
  991.                      if (var5.equals("Tables")) {
  992.                         ((CardLayout)this.cardPanel.getLayout()).show(this.cardPanel, "Template");
  993.                         String var8 = var18[3];
  994.                         int var9 = var8.indexOf(".");
  995.                         if (var9 >= 0) {
  996.                            var8 = var8.substring(var9 + 1);
  997.                         }
  998.  
  999.                         this.templateMaint.insertRequested = true;
  1000.                         this.templateMaint.a_templname.setEditable(true);
  1001.                         this.templateMaint.a_templname.setText(var8);
  1002.                         this.templateMaint.a_templdesc.setEditable(true);
  1003.                         this.templateMaint.a_templdesc.setText(var8);
  1004.                         this.templateMaint.a_templtype.select(var7[1]);
  1005.                         this.templateMaint.a_groupname.select(var7[2]);
  1006.                         if (this.templateMaint.valuea_templtype.elementAt(this.templateMaint.a_templtype.getSelectedIndex()).equals("E")) {
  1007.                            ((CardLayout)this.templateMaint.tabMainPanel.getLayout()).show(this.templateMaint.tabMainPanel, "E");
  1008.                         } else {
  1009.                            ((CardLayout)this.templateMaint.tabMainPanel.getLayout()).show(this.templateMaint.tabMainPanel, "blank");
  1010.                         }
  1011.  
  1012.                         this.templateMaint.tabPanelMain.select(0);
  1013.                         this.loadGrid(var18);
  1014.                         this.templateMaint.templateDetail.currentType = var7[1].substring(0, 1);
  1015.                         this.templateMaint.templateDetail.setGridSettings();
  1016.                         this.templateMaint.templateDetail.loadEmptyGrid();
  1017.                         System.arraycopy(this.tableContents.currentText, 0, this.templateMaint.templateDetail.tableContents.currentText, 0, this.tableContents.currentText.length);
  1018.                         this.templateMaint.templateDetail.tableContents.newTable();
  1019.  
  1020.                         for(int var10 = 0; var10 < this.templateMaint.templateDetail.tableContents.currentText[0].length; ++var10) {
  1021.                            if (this.templateMaint.templateDetail.tableContents.currentText[0][var10] != null && !this.templateMaint.templateDetail.tableContents.currentText[0][var10].equals("")) {
  1022.                               this.templateMaint.templateDetail.tableContents.rowChanged[var10] = true;
  1023.                            }
  1024.                         }
  1025.  
  1026.                         this.templateMaint.templateDetail.totalRows = 0;
  1027.                      }
  1028.  
  1029.                      return true;
  1030.                   }
  1031.  
  1032.                   return false;
  1033.                }
  1034.             }
  1035.          case 1005:
  1036.             if (!(var1.target instanceof JDPTextGrid)) {
  1037.                return false;
  1038.             } else {
  1039.                int var3 = this.tableContents.getPrevRow();
  1040.                if (this.tableContents.currentText[0][var3] != null && !this.tableContents.currentText[0][var3].equals("")) {
  1041.                   if (this.tableContents.getPrevColumn() != 1 && this.tableContents.currentText[1][var3].equals("")) {
  1042.                      this.tableContents.currentText[1][var3] = "Char";
  1043.                      if (this.tableContents.currentText[2][var3].equals("")) {
  1044.                         this.tableContents.currentText[2][var3] = "10";
  1045.                      }
  1046.  
  1047.                      this.tableContents.currentText[3][var3] = "";
  1048.                      this.tableContents.fieldProtected[3][var3] = true;
  1049.                      this.tableContents.repaint();
  1050.                   }
  1051.  
  1052.                   if (this.tableContents.getPrevColumn() == 1) {
  1053.                      this.tableContents.nothingChanged = false;
  1054.                      int var4 = JDPUtils.getODBCValue(this.tableContents.currentText[1][var3]);
  1055.                      if (JDPUtils.isOdbcChar(var4) && !JDPUtils.isOdbcMemo(var4)) {
  1056.                         if (this.tableContents.currentText[2][var3].equals("")) {
  1057.                            this.tableContents.currentText[2][var3] = "10";
  1058.                         }
  1059.  
  1060.                         this.tableContents.currentText[3][var3] = "";
  1061.                         this.tableContents.fieldProtected[3][var3] = true;
  1062.                         this.tableContents.repaint();
  1063.                      } else if (!JDPUtils.isOdbcMemo(var4) && !JDPUtils.isOdbcInt(var4) && !JDPUtils.isOdbcDate(var4) && !JDPUtils.isOdbcBinary(var4)) {
  1064.                         if (this.tableContents.currentText[2][var3].equals("")) {
  1065.                            this.tableContents.currentText[2][var3] = "10";
  1066.                         }
  1067.  
  1068.                         if (this.tableContents.currentText[3][var3].equals("")) {
  1069.                            this.tableContents.currentText[3][var3] = "2";
  1070.                         }
  1071.  
  1072.                         this.tableContents.fieldProtected[2][var3] = false;
  1073.                         this.tableContents.fieldProtected[3][var3] = false;
  1074.                         this.tableContents.repaint();
  1075.                      } else {
  1076.                         this.tableContents.currentText[2][var3] = "";
  1077.                         this.tableContents.fieldProtected[2][var3] = true;
  1078.                         this.tableContents.currentText[3][var3] = "";
  1079.                         this.tableContents.fieldProtected[3][var3] = true;
  1080.                         this.tableContents.repaint();
  1081.                      }
  1082.                   }
  1083.  
  1084.                   return true;
  1085.                }
  1086.  
  1087.                return true;
  1088.             }
  1089.          default:
  1090.             return false;
  1091.       }
  1092.    }
  1093.  
  1094.    void loadGrid(String[] var1) {
  1095.       int var3 = 0;
  1096.       int var5 = 0;
  1097.       String var7 = "";
  1098.       JDPJagg var8 = new JDPJagg(super.user.jaggPath);
  1099.       String var9 = var8.getSEP();
  1100.       new Vector();
  1101.       new Vector();
  1102.       this.setGridSettings();
  1103.       this.tableContents.columnHeader[4] = "Key";
  1104.       this.tableContents.columnProtected[4] = true;
  1105.       this.tableContents.pullDownList[4][0] = this.pullDownList[5];
  1106.       this.tableContents.columnWidth[4] = 36;
  1107.       this.tableContents.columnHeader[5] = "Nulls";
  1108.       this.tableContents.columnWidth[5] = 36;
  1109.       this.tableContents.columnProtected[5] = true;
  1110.       this.tableContents.pullDownList[5][0] = this.pullDownList[6];
  1111.       this.tableContents.columnHeader[6] = "Default";
  1112.       this.tableContents.columnWidth[6] = 100;
  1113.       super.user.mainmsg.setStatusMsg("Accessing database...", 0);
  1114.       String[] var10;
  1115.       if (var1 != null) {
  1116.          var10 = var1;
  1117.       } else {
  1118.          var10 = this.tree.getSelectedBranch();
  1119.       }
  1120.  
  1121.       String var11 = var10[3];
  1122.       int var12 = var11.indexOf(".");
  1123.       if (var12 >= 0) {
  1124.          var11 = var11.substring(var12 + 1);
  1125.       }
  1126.  
  1127.       this.tablename.setText(var11);
  1128.       int var13 = this.getIndex(var10[1]);
  1129.       var8.setDSN(var10[1]);
  1130.       String var14 = (String)this.connectionStrings.get(var10[1]);
  1131.       String var15 = null;
  1132.       if (this.passwordPanel.isVisible()) {
  1133.          var14 = null;
  1134.       }
  1135.  
  1136.       if (var14 == null) {
  1137.          var15 = "DSN=" + var10[1] + ";UID=" + this.userid.getText() + ";PWD=" + this.password.getText() + ";";
  1138.          var14 = var15;
  1139.       }
  1140.  
  1141.       var8.setJdbcDriver(this.jdbcDriver[var13]);
  1142.       var8.setJdbcPrefix(this.jdbcPrefix[var13]);
  1143.       var8.setJdbcSuffix(this.jdbcSuffix[var13]);
  1144.       var8.setCSTR(var14);
  1145.       var8.setFCTN("SQLColumns");
  1146.       this.tablename.setEditable(false);
  1147.       String var16 = ";;" + this.tablename.getText() + ";;";
  1148.       var8.setFCTNP(var16);
  1149.       Vector var4 = new Vector();
  1150.       var3 = var8.execSQL(var7, var4);
  1151.       if (var3 == -1) {
  1152.          super.user.u.setSqlMessage(var8, var7);
  1153.       } else {
  1154.          if (var15 != null) {
  1155.             this.connectionStrings.put(var10[1], var15);
  1156.          }
  1157.  
  1158.          this.totalRows = var8.getRowCount();
  1159.          var5 = var8.getRowCount() + 20;
  1160.          this.tableContents.currentText = new String[this.columnCount][var5];
  1161.          this.tableContents.fieldProtected = new boolean[this.columnCount][var5];
  1162.          this.tableContents.cellChanged = null;
  1163.          this.tableContents.rowChanged = null;
  1164.          this.tableContents.columnSelected = null;
  1165.  
  1166.          for(int var17 = 0; var17 < var5 - 20; ++var17) {
  1167.             String var6 = (String)var4.elementAt(var17);
  1168.             if (var6 != null && var6.trim().compareTo("") != 0) {
  1169.                StringTokenizer var2 = new StringTokenizer(var6);
  1170.                var2.nextToken(var9).trim();
  1171.                var2.nextToken(var9).trim();
  1172.                var2.nextToken(var9).trim();
  1173.                this.tableContents.currentText[0][var17] = var2.nextToken(var9).trim();
  1174.                int var18 = Integer.parseInt(var2.nextToken(var9).trim());
  1175.                this.tableContents.currentText[1][var17] = JDPUtils.getODBCValue(var18);
  1176.                var2.nextToken(var9).trim();
  1177.                var2.nextToken(var9).trim();
  1178.                this.tableContents.currentText[2][var17] = var2.nextToken(var9).trim();
  1179.                this.tableContents.currentText[3][var17] = var2.nextToken(var9).trim();
  1180.                var2.nextToken(var9).trim();
  1181.                this.tableContents.currentText[4][var17] = "No";
  1182.                String var19 = var2.nextToken(var9).trim();
  1183.                this.tableContents.currentText[5][var17] = "No";
  1184.                if (var19.equals("1")) {
  1185.                   this.tableContents.currentText[5][var17] = "Yes";
  1186.                }
  1187.  
  1188.                var2.nextToken(var9).trim();
  1189.                if (JDPUtils.isOdbcChar(var18) && !JDPUtils.isOdbcMemo(var18)) {
  1190.                   if (this.tableContents.currentText[2][var17].equals("")) {
  1191.                      this.tableContents.currentText[2][var17] = "10";
  1192.                   }
  1193.  
  1194.                   this.tableContents.currentText[3][var17] = "";
  1195.                   this.tableContents.fieldProtected[3][var17] = true;
  1196.                } else if (!JDPUtils.isOdbcMemo(var18) && !JDPUtils.isOdbcInt(var18) && !JDPUtils.isOdbcDate(var18) && !JDPUtils.isOdbcBinary(var18)) {
  1197.                   if (this.tableContents.currentText[2][var17].equals("")) {
  1198.                      this.tableContents.currentText[2][var17] = "10";
  1199.                   }
  1200.  
  1201.                   if (this.tableContents.currentText[3][var17].equals("")) {
  1202.                      this.tableContents.currentText[3][var17] = "2";
  1203.                   }
  1204.  
  1205.                   this.tableContents.fieldProtected[2][var17] = false;
  1206.                   this.tableContents.fieldProtected[3][var17] = false;
  1207.                } else {
  1208.                   this.tableContents.currentText[2][var17] = "";
  1209.                   this.tableContents.fieldProtected[2][var17] = true;
  1210.                   this.tableContents.currentText[3][var17] = "";
  1211.                   this.tableContents.fieldProtected[3][var17] = true;
  1212.                }
  1213.  
  1214.                if (this.tableContents.currentText[5][var17] == null || this.tableContents.currentText[5][var17].equals("")) {
  1215.                   this.tableContents.currentText[5][var17] = "No";
  1216.                }
  1217.             }
  1218.          }
  1219.  
  1220.          this.tableContents.newTable();
  1221.          this.saveCurrentText = new String[this.columnCount][var5 - 20];
  1222.  
  1223.          for(int var22 = 0; var22 < var5 - 20; ++var22) {
  1224.             for(int var23 = 0; var23 < this.columnCount; ++var23) {
  1225.                this.saveCurrentText[var23][var22] = this.tableContents.currentText[var23][var22];
  1226.             }
  1227.          }
  1228.  
  1229.          super.user.mainmsg.clearStatusMsg();
  1230.       }
  1231.    }
  1232.  
  1233.    public void InitClass(JDPUser var1, Panel var2, String var3) {
  1234.       super.user = var1;
  1235.       ((Container)this).setLayout(new BorderLayout());
  1236.       ((Component)this).setFont(var1.plainFont);
  1237.       this.popuppanel = new JDPPopupMessage(var1, var2);
  1238.       ((Container)var2).add(this.popuppanel);
  1239.       this.dragPanel = new JDPDragItem(var1, this);
  1240.       ((Container)var2).add(this.dragPanel);
  1241.       Panel var4 = new Panel();
  1242.       ((Container)var4).setLayout(new BorderLayout());
  1243.       Panel var5 = new Panel();
  1244.       ((Container)var5).setLayout(new BorderLayout());
  1245.       Panel var6 = new Panel();
  1246.       ((Container)var6).setLayout(new BorderLayout());
  1247.       Panel var7 = new Panel();
  1248.       ((Container)var7).setLayout(new BorderLayout());
  1249.       this.cardPanel = new Panel();
  1250.       this.cardPanel.setLayout(new CardLayout());
  1251.       Panel var8 = new Panel();
  1252.       ((Container)var8).setLayout(new BorderLayout());
  1253.       Panel var9 = new Panel();
  1254.       ((Container)var9).setLayout(new BorderLayout());
  1255.       Panel var10 = new Panel();
  1256.       ((Container)var10).setLayout(new BorderLayout());
  1257.       Panel var11 = new Panel();
  1258.       ((Container)var11).setLayout(new BorderLayout());
  1259.       JDPScrollPanel var12 = new JDPScrollPanel();
  1260.       this.passwordPanel = new JDPScrollPanel();
  1261.       Panel var13 = new Panel();
  1262.       ((Container)var13).setLayout(new BorderLayout());
  1263.       this.popup = new JDPPopupMenu(var1, this);
  1264.       ((Container)var2).add(this.popup);
  1265.       this.createPopupMenus();
  1266.       this.tablename = new TextField("", 22);
  1267.       this.userid = new TextField(var1.cust.username, 12);
  1268.       this.password = new TextField(var1.cust.password, 12);
  1269.       this.password.setEchoCharacter('*');
  1270.       this.loadChoices();
  1271.       this.tree = new JDPTreePicker(var1, var2, this.dragPanel);
  1272.       ((Container)var12).add("Left", new JDPWrapLabel(var1, "Name:", Color.black));
  1273.       Panel var14 = new Panel();
  1274.       ((Container)var14).setLayout(new JDPLineLayout());
  1275.       ((Container)var14).add("Left", this.tablename);
  1276.       ((Container)var12).add("Right", var14);
  1277.       this.passwordPanel.add("Left", new JDPWrapLabel(var1, "Username:", Color.black));
  1278.       Panel var15 = new Panel();
  1279.       ((Container)var15).setLayout(new JDPLineLayout());
  1280.       ((Container)var15).add("Left", this.userid);
  1281.       ((Container)var15).add("Left", new JDPWrapLabel(var1, "Password:", Color.black));
  1282.       ((Container)var15).add("Left", this.password);
  1283.       this.passwordPanel.add("Right", var15);
  1284.       this.cardPanel.add("Normal", var8);
  1285.       this.cardPanel.add("Password", this.passwordPanel);
  1286.       this.cardPanel.add("Template", var11);
  1287.       this.cardPanel.add("Group", var10);
  1288.       this.cardPanel.add("Database", var9);
  1289.       ((Container)var6).add("Center", this.cardPanel);
  1290.       ((Container)var8).add("North", var12);
  1291.       ((Container)var8).add("Center", var7);
  1292.       this.templateMaint = new JDPTemplateMaint(var1, var11, var3, this);
  1293.       ((Container)var11).add("Center", this.templateMaint);
  1294.       this.groupMaint = new JDPGroupMaint(var1, var10, var3, this);
  1295.       ((Container)var10).add("Center", this.groupMaint);
  1296.       this.datasourceMaint = new JDPSelectDSN();
  1297.       this.datasourceMaint.InitClass(var1, var2, "JDPDatabaseMaint");
  1298.       this.datasourceMaint.enterNewDatasource();
  1299.       ((Container)var9).add("Center", this.datasourceMaint);
  1300.       this.tableContents = new JDPTextGrid(var1);
  1301.       ((Container)var7).add("Center", this.tableContents);
  1302.       if (var3.compareTo("Inquiry") == 0) {
  1303.          this.tablename.setEditable(false);
  1304.          String[] var16 = new String[]{""};
  1305.          ((Container)var7).add("South", new JDPButtons(var1, var16, JDPButtons.HORIZONTAL));
  1306.       } else {
  1307.          this.tablename.setEditable(false);
  1308.          String[] var19 = new String[]{"Save", "Reset"};
  1309.          int[] var17 = new int[]{0, 6};
  1310.          JDPButtons var18 = new JDPButtons(var1, var19, var17, JDPButtons.HORIZONTAL);
  1311.          ((Container)var7).add("South", var18);
  1312.          this.popuppanel.addComponent(var18.button[0], "Save changes", "Save changes to the database");
  1313.          this.popuppanel.addComponent(var18.button[1], "Undo changes", "Restore previous settings");
  1314.       }
  1315.  
  1316.       ((Container)var4).add("Center", var6);
  1317.       this.tree.setMinWidth(200);
  1318.       int[] var20 = new int[]{4, 3, 2, 1};
  1319.       this.tree.setIcons(var20);
  1320.       ((Container)var13).add("Center", this.tree);
  1321.       ((Container)var4).add("West", var13);
  1322.       ((Container)this).add("Center", new JDPChiselFramePanel(var1, "Database Maintenance", var4, "North"));
  1323.       ((Component)var2).paintAll(((Component)var2).getGraphics());
  1324.       var1.gParm.addElement(this);
  1325.       this.loadDataSources();
  1326.       this.connectionStrings = new Hashtable();
  1327.    }
  1328.  
  1329.    boolean dropTable(String var1) {
  1330.       boolean var2 = false;
  1331.       Vector var3 = new Vector();
  1332.       JDPJagg var4 = new JDPJagg(super.user.jaggPath);
  1333.       var4.getSEP();
  1334.       String var5 = "";
  1335.       var5 = "DROP TABLE " + var1;
  1336.       String[] var6 = this.tree.getSelectedBranch();
  1337.       String var7 = var6[1];
  1338.       var4.setDSN(var7);
  1339.       int var8 = this.getIndex(var6[1]);
  1340.       var4.setJdbcDriver(this.jdbcDriver[var8]);
  1341.       var4.setJdbcPrefix(this.jdbcPrefix[var8]);
  1342.       var4.setJdbcSuffix(this.jdbcSuffix[var8]);
  1343.       var4.setCSTR("DSN=" + var7 + ";UID=" + this.userid.getText() + ";PWD=" + this.password.getText() + ";");
  1344.       var4.execSQL(var5, var3);
  1345.       return true;
  1346.    }
  1347.  
  1348.    boolean saveTable(String var1) {
  1349.       int var2 = 0;
  1350.       Vector var3 = new Vector();
  1351.       JDPJagg var4 = new JDPJagg(super.user.jaggPath);
  1352.       var4.getSEP();
  1353.       String var5 = "";
  1354.       super.user.mainmsg.setStatusMsg("Saving existing table data...", 0);
  1355.       this.dropTable("tmp88934");
  1356.       var5 = "SELECT * INTO tmp88934 FROM " + var1;
  1357.       String[] var6 = this.tree.getSelectedBranch();
  1358.       String var7 = var6[1];
  1359.       var4.setDSN(var7);
  1360.       int var8 = this.getIndex(var6[1]);
  1361.       var4.setJdbcDriver(this.jdbcDriver[var8]);
  1362.       var4.setJdbcPrefix(this.jdbcPrefix[var8]);
  1363.       var4.setJdbcSuffix(this.jdbcSuffix[var8]);
  1364.       var4.setCSTR("DSN=" + var7 + ";UID=" + this.userid.getText() + ";PWD=" + this.password.getText() + ";");
  1365.       var2 = var4.execSQL(var5, var3);
  1366.       if (var2 == -1) {
  1367.          super.user.u.setSqlMessage(var4, var5);
  1368.          return false;
  1369.       } else {
  1370.          this.dropTable(var1);
  1371.          return true;
  1372.       }
  1373.    }
  1374. }
  1375.