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

  1. import java.awt.BorderLayout;
  2. import java.awt.Button;
  3. import java.awt.Component;
  4. import java.awt.Container;
  5. import java.awt.Event;
  6. import java.awt.GridLayout;
  7. import java.awt.Label;
  8. import java.awt.Panel;
  9. import java.awt.TextField;
  10. import java.util.StringTokenizer;
  11. import java.util.Vector;
  12.  
  13. public class JDPSelectTable extends JDPClassLayout {
  14.    JDPSelectDSN targetDSN;
  15.    JDPChoice tableTypes;
  16.    JDPList tables;
  17.    JDPList stables;
  18.    JDPList temptables;
  19.    TextField datasource;
  20.    TextField connectstring;
  21.    String prevconnectstring;
  22.    TextField qualifier;
  23.    TextField owner;
  24.    TextField tablename;
  25.    TextField tabletype;
  26.    TextField remarks;
  27.    TextField alias;
  28.    Label listCount;
  29.    JDPComboBox join1;
  30.    JDPComboBox compare;
  31.    JDPComboBox join2;
  32.    JDPList joinConditions;
  33.    Panel selectPanel;
  34.    JDPScrollPanel joinPanel;
  35.    JDPPopupMessage popuppanel;
  36.    String prevDSNString = "";
  37.    String prevTableString;
  38.    String prevTypes = "";
  39.    JDPTextGrid tableContents;
  40.    String[] tableQualifier;
  41.    String[] tableOwner;
  42.    String[] tableName;
  43.    String[] tableType;
  44.    String[] tableRemarks;
  45.    String[] tableAlias;
  46.    String[] stableAlias;
  47.    String[] ctableQualifier;
  48.    String[] ctableOwner;
  49.    String[] ctableName;
  50.    String[] columnName;
  51.    int[] columnDatatype;
  52.    String[] columnTypename;
  53.    String[] columnPrecision;
  54.    String[] columnLength;
  55.    String[] columnScale;
  56.    String[] columnRadix;
  57.    String[] columnNullable;
  58.    String[] columnRemarks;
  59.    String lastAcceptedTableString = "";
  60.    Vector gParmObject;
  61.    String moduleParameter;
  62.    JDPTabSelectPanel tabPanel;
  63.  
  64.    boolean restoreSelections() {
  65.       JDPSaveProps var1 = super.user.saveProperties;
  66.       if (super.user.prevProperties != null) {
  67.          var1 = super.user.prevProperties;
  68.       }
  69.  
  70.       String var2 = "JDPSelectTable" + super.componentName;
  71.  
  72.       for(int var3 = 0; var3 < this.tables.countItems(); ++var3) {
  73.          this.tables.deselect(var3);
  74.       }
  75.  
  76.       for(int var7 = 0; var7 < this.stables.countItems(); ++var7) {
  77.          this.stables.deselect(var7);
  78.       }
  79.  
  80.       String var8 = this.tableTypes.getSelectedItem();
  81.       var1.restoreObject(this.tableTypes, var2, "tableTypes");
  82.       if (this.tableTypes.getSelectedItem().equals(var8)) {
  83.          this.loadList();
  84.       }
  85.  
  86.       if (this.tables.countItems() > 0) {
  87.          var1.restoreObject(this.tables, var2, "tables");
  88.       }
  89.  
  90.       if (this.stables.countItems() > 0) {
  91.          var1.restoreObject(this.stables, var2, "stables");
  92.       }
  93.  
  94.       this.resetAlias();
  95.  
  96.       for(int var4 = 0; var4 < this.joinConditions.countItems(); ++var4) {
  97.          this.joinConditions.deselect(var4);
  98.       }
  99.  
  100.       this.joinConditions.clear();
  101.       var1.restoreObject(this.joinConditions, var2, "joinConditions", 1);
  102.       String var9 = "";
  103.       if (this.tables.getSelectedIndex() >= 0) {
  104.          var9 = var9 + this.tables.getSelectedItem();
  105.       }
  106.  
  107.       String[] var5 = this.stables.getSelectedItems();
  108.  
  109.       for(int var6 = 0; var6 < var5.length; ++var6) {
  110.          var9 = var9 + var5[var6];
  111.       }
  112.  
  113.       if (!var9.equals("")) {
  114.          this.lastAcceptedTableString = var9;
  115.       }
  116.  
  117.       return true;
  118.    }
  119.  
  120.    void clearList() {
  121.       this.tables.clear();
  122.       this.stables.clear();
  123.    }
  124.  
  125.    void loadList() {
  126.       String var1 = this.targetDSN.datasource.getText().trim() + this.targetDSN.userid.getText() + this.targetDSN.password.getText();
  127.       if (!var1.equals(this.prevDSNString) || !this.prevTypes.equals(this.tableTypes.getSelectedItem())) {
  128.          this.prevDSNString = var1;
  129.          this.prevTypes = this.tableTypes.getSelectedItem();
  130.          int var3 = 0;
  131.          JDPJagg var5 = new JDPJagg(super.user.jaggPath);
  132.          String var6 = var5.getSEP();
  133.          int var7 = 0;
  134.          String var9 = "";
  135.          this.clearList();
  136.          this.clearFields();
  137.          this.datasource.getText();
  138.          if (this.targetDSN != null && !this.targetDSN.datasource.getText().equals("")) {
  139.             if (((Component)this).isShowing()) {
  140.                super.user.mainmsg.setStatusMsg("Loading Table definitions, please wait...", 0);
  141.             }
  142.  
  143.             super.user.jaggSQL.getDSN();
  144.             super.user.jaggSQL.getCSTR();
  145.             var5.loadSettings(this.targetDSN);
  146.             var5.setFCTN("SQLTables");
  147.             var5.setMRW("100000");
  148.             var7 = (byte)100;
  149.             this.tableQualifier = new String[var7];
  150.             this.tableOwner = new String[var7];
  151.             String[] var10 = new String[var7];
  152.             this.tableType = new String[var7];
  153.             this.tableRemarks = new String[var7];
  154.             this.tableAlias = new String[var7];
  155.             this.stableAlias = new String[var7];
  156.             String var11 = this.tableTypes.getSelectedKey();
  157.             if (!JDPJagg.useJaggServer) {
  158.                var11 = var11.replace(';', ',');
  159.             }
  160.  
  161.             int var12 = 0;
  162.             var5.setFCTNP(";;;" + var11 + ";");
  163.             Vector var4 = new Vector();
  164.             var3 = var5.execSQL(var9, var4);
  165.             if (var3 == -1) {
  166.                if (((Component)this).isShowing()) {
  167.                   super.user.mainmsg.setStatusMsg("Could not connect to datasource. Please check the Connect String.", 20);
  168.                }
  169.  
  170.                this.tabPanel = JDPUtils.getTabPanel(this);
  171.                if (this.tabPanel != null) {
  172.                   this.tabPanel.loadPrevTab();
  173.                }
  174.  
  175.             } else {
  176.                if (super.user.DEBUG) {
  177.                   System.out.println("JDPSelectTable/loadList COL: " + Integer.toString(var5.getColumnCount()));
  178.                }
  179.  
  180.                var5.getColumnCount();
  181.                var7 = var5.getRowCount();
  182.                this.tableQualifier = new String[var7];
  183.                this.tableOwner = new String[var7];
  184.                var10 = new String[var7];
  185.                this.tableType = new String[var7];
  186.                this.tableRemarks = new String[var7];
  187.                this.tableAlias = new String[var7];
  188.                this.stableAlias = new String[var7];
  189.  
  190.                for(int var13 = 0; var13 < var7; ++var13) {
  191.                   String var8 = (String)var4.elementAt(var13);
  192.                   if (var8 != null && var8.trim().compareTo("") != 0) {
  193.                      StringTokenizer var2 = new StringTokenizer(var8, var6);
  194.                      this.tableQualifier[var12] = var2.nextToken().trim();
  195.                      this.tableOwner[var12] = var2.nextToken().trim();
  196.                      if (this.tableOwner[var12].length() > 0) {
  197.                         var10[var12] = this.tableOwner[var12] + "." + var2.nextToken().trim();
  198.                      } else {
  199.                         var10[var12] = var2.nextToken().trim();
  200.                      }
  201.  
  202.                      this.tableType[var12] = var2.nextToken().trim();
  203.                      this.tableRemarks[var12] = var2.nextToken().trim();
  204.                      if (var10[var12].indexOf(" ") >= 0) {
  205.                         var10[var12] = "`" + var10[var12] + "`";
  206.                      }
  207.  
  208.                      this.tables.addItem(var10[var12], 1);
  209.                      this.stables.addItem(var10[var12], 1);
  210.                      ++var12;
  211.                   }
  212.                }
  213.  
  214.                this.tableName = new String[var12];
  215.                System.arraycopy(var10, 0, this.tableName, 0, var12);
  216.                if (((Component)this).isShowing()) {
  217.                   super.user.mainmsg.clearStatusMsg();
  218.                }
  219.  
  220.             }
  221.          }
  222.       }
  223.    }
  224.  
  225.    void loadJoinCriteria() {
  226.       this.join1.clear();
  227.       this.join2.clear();
  228.       if (this.stables.getSelectedIndexes().length != 0) {
  229.          if (this.moduleParameter.compareTo("JDPTemplateMaint") != 0) {
  230.             if (this.tables.getSelectedIndex() < 0) {
  231.                return;
  232.             }
  233.  
  234.             String var1 = this.tables.getSelectedItem();
  235.  
  236.             for(int var2 = 0; var2 < this.ctableName.length; ++var2) {
  237.                if (this.ctableName[var2].equals(var1)) {
  238.                   if (this.columnName[var2].indexOf(" ") < 0 && this.columnName[var2].indexOf("#") < 0) {
  239.                      this.join1.addItem("a." + this.columnName[var2].trim());
  240.                      this.join2.addItem("a." + this.columnName[var2].trim());
  241.                   } else {
  242.                      this.join1.addItem("a.`" + this.columnName[var2].trim() + "`");
  243.                      this.join2.addItem("a.`" + this.columnName[var2].trim() + "`");
  244.                   }
  245.                }
  246.             }
  247.          }
  248.  
  249.          int[] var5 = this.stables.getSelectedIndexes();
  250.  
  251.          for(int var6 = 0; var6 < var5.length; ++var6) {
  252.             String var3 = this.stables.getItem(var5[var6]);
  253.  
  254.             for(int var4 = 0; var4 < this.ctableName.length; ++var4) {
  255.                if (this.ctableName[var4].equals(var3)) {
  256.                   if (this.columnName[var4].indexOf(" ") < 0 && this.columnName[var4].indexOf("#") < 0) {
  257.                      this.join1.addItem(this.stableAlias[var5[var6]] + "." + this.columnName[var4].trim());
  258.                      this.join2.addItem(this.stableAlias[var5[var6]] + "." + this.columnName[var4].trim());
  259.                   } else {
  260.                      this.join1.addItem(this.stableAlias[var5[var6]] + ".`" + this.columnName[var4].trim() + "`");
  261.                      this.join2.addItem(this.stableAlias[var5[var6]] + ".`" + this.columnName[var4].trim() + "`");
  262.                   }
  263.                }
  264.             }
  265.          }
  266.  
  267.       }
  268.    }
  269.  
  270.    void clearFields() {
  271.       this.qualifier.setText("");
  272.       this.owner.setText("");
  273.       this.tablename.setText("");
  274.       this.tabletype.setText("");
  275.       this.remarks.setText("");
  276.    }
  277.  
  278.    void setNewTable() {
  279.       String var1 = "";
  280.       if (this.tables.getSelectedIndex() >= 0) {
  281.          var1 = var1 + this.tables.getSelectedItem();
  282.       }
  283.  
  284.       String[] var2 = this.stables.getSelectedItems();
  285.  
  286.       for(int var3 = 0; var3 < var2.length; ++var3) {
  287.          var1 = var1 + var2[var3];
  288.       }
  289.  
  290.       if (!this.lastAcceptedTableString.equals("") && !var1.equals(this.lastAcceptedTableString)) {
  291.          for(int var5 = 2; var5 < super.thisBranch.relatedComps.length; ++var5) {
  292.             ((JDPClassLayout)super.thisBranch.relatedComps[var5]).removeSelections();
  293.          }
  294.       }
  295.  
  296.       this.lastAcceptedTableString = var1;
  297.  
  298.       for(int var6 = 0; var6 < super.user.gParm.size(); ++var6) {
  299.          if (super.user.gParm.elementAt(var6) instanceof Vector) {
  300.             Vector var4 = (Vector)super.user.gParm.elementAt(var6);
  301.             if (((String)var4.elementAt(0)).compareTo("SelectColumns" + super.componentName) == 0) {
  302.                ((JDPClassLayout)var4.elementAt(1)).refresh();
  303.             }
  304.          }
  305.       }
  306.  
  307.       if (((Component)this).isShowing()) {
  308.          super.user.mainmsg.setStatusMsg("Selection accepted.", 5);
  309.       }
  310.  
  311.    }
  312.  
  313.    void restoreTypeSelection() {
  314.       JDPSaveProps var1 = super.user.saveProperties;
  315.       if (super.user.prevProperties != null) {
  316.          var1 = super.user.prevProperties;
  317.       }
  318.  
  319.       String var2 = "JDPSelectTable" + super.componentName;
  320.       this.tableTypes.getSelectedItem();
  321.       var1.restoreObject(this.tableTypes, var2, "tableTypes");
  322.    }
  323.  
  324.    void loadColumns() {
  325.       int var2 = 0;
  326.       new Vector();
  327.       JDPJagg var4 = new JDPJagg(super.user.jaggPath);
  328.       String var5 = var4.getSEP();
  329.       var4.setKeepConnectionOpen(true);
  330.       short var6 = 0;
  331.       String var8 = "";
  332.       if (this.tables.countItems() > 0) {
  333.          int var9 = 0;
  334.          String var10 = "";
  335.          String[] var11 = new String[50];
  336.          String[] var12 = new String[50];
  337.          if (this.tables.getSelectedIndex() >= 0) {
  338.             var12[var9] = this.tableQualifier[this.tables.getSelectedIndex()];
  339.             var11[var9++] = this.tables.getSelectedItem();
  340.             var10 = var10 + this.tables.getSelectedItem();
  341.          }
  342.  
  343.          String[] var13 = this.stables.getSelectedItems();
  344.          int[] var14 = this.stables.getSelectedIndexes();
  345.  
  346.          for(int var15 = 0; var15 < var13.length; ++var15) {
  347.             var12[var9] = this.tableQualifier[var14[var15]];
  348.             var11[var9++] = var13[var15];
  349.             var10 = var10 + var13[var15];
  350.          }
  351.  
  352.          if (this.prevTableString == null || !var10.equals(this.prevTableString)) {
  353.             if (((Component)this).isShowing()) {
  354.                super.user.mainmsg.setStatusMsg("Loading Column definitions, please wait...", 0);
  355.             }
  356.  
  357.             this.prevTableString = var10;
  358.             var4.loadSettings(this.targetDSN);
  359.             var4.setFCTN("SQLColumns");
  360.             var4.setMRW("100000");
  361.             var6 = 2000;
  362.             this.ctableQualifier = new String[var6];
  363.             this.ctableOwner = new String[var6];
  364.             String[] var24 = new String[var6];
  365.             String[] var16 = new String[var6];
  366.             this.columnDatatype = new int[var6];
  367.             this.columnTypename = new String[var6];
  368.             this.columnPrecision = new String[var6];
  369.             this.columnLength = new String[var6];
  370.             this.columnScale = new String[var6];
  371.             this.columnRadix = new String[var6];
  372.             this.columnNullable = new String[var6];
  373.             this.columnRemarks = new String[var6];
  374.             int var17 = 0;
  375.  
  376.             for(int var18 = 0; var18 < var9; ++var18) {
  377.                String var19 = ";;" + var11[var18] + ";;";
  378.                int var20 = var11[var18].indexOf(".");
  379.                if (var20 >= 0) {
  380.                   var19 = ";" + var11[var18].substring(0, var20) + ";" + var11[var18].substring(var20 + 1) + ";;";
  381.                }
  382.  
  383.                var4.setFCTNP(var19);
  384.                Vector var3 = new Vector();
  385.                var2 = var4.execSQL(var8, var3);
  386.                if (var2 == -1) {
  387.                   super.user.u.setSqlMessage(var4, var8);
  388.                   return;
  389.                }
  390.  
  391.                var4.getColumnCount();
  392.  
  393.                for(int var21 = 0; var21 < var2; ++var21) {
  394.                   String var7 = (String)var3.elementAt(var21);
  395.                   if (var7 != null && var7.trim().compareTo("") != 0) {
  396.                      StringTokenizer var1 = new StringTokenizer(var7, var5);
  397.                      if (var1.hasMoreTokens()) {
  398.                         this.ctableQualifier[var17] = var1.nextToken().trim();
  399.                      }
  400.  
  401.                      if (var1.hasMoreTokens()) {
  402.                         this.ctableOwner[var17] = var1.nextToken().trim();
  403.                      }
  404.  
  405.                      if (this.ctableOwner[var17].length() > 0) {
  406.                         if (var1.hasMoreTokens()) {
  407.                            var24[var17] = this.ctableOwner[var17] + "." + var1.nextToken().trim();
  408.                         }
  409.                      } else if (var1.hasMoreTokens()) {
  410.                         var24[var17] = var1.nextToken().trim();
  411.                      }
  412.  
  413.                      if (var1.hasMoreTokens()) {
  414.                         var24[var17] = var11[var18];
  415.                      }
  416.  
  417.                      if (var1.hasMoreTokens()) {
  418.                         var16[var17] = var1.nextToken().trim();
  419.                      }
  420.  
  421.                      if (var1.hasMoreTokens()) {
  422.                         this.columnDatatype[var17] = Integer.parseInt(var1.nextToken().trim());
  423.                      }
  424.  
  425.                      if (var1.hasMoreTokens()) {
  426.                         this.columnTypename[var17] = var1.nextToken().trim();
  427.                      }
  428.  
  429.                      if (var1.hasMoreTokens()) {
  430.                         this.columnPrecision[var17] = var1.nextToken().trim();
  431.                      }
  432.  
  433.                      if (var1.hasMoreTokens()) {
  434.                         this.columnLength[var17] = Integer.toString(Integer.parseInt(var1.nextToken().trim()) + 2);
  435.                      }
  436.  
  437.                      if (var1.hasMoreTokens()) {
  438.                         this.columnScale[var17] = var1.nextToken().trim();
  439.                      }
  440.  
  441.                      if (var1.hasMoreTokens()) {
  442.                         this.columnRadix[var17] = var1.nextToken().trim();
  443.                      }
  444.  
  445.                      if (var1.hasMoreTokens()) {
  446.                         this.columnNullable[var17] = var1.nextToken().trim();
  447.                      }
  448.  
  449.                      if (var1.hasMoreTokens()) {
  450.                         this.columnRemarks[var17] = var1.nextToken().trim();
  451.                      }
  452.  
  453.                      ++var17;
  454.                   }
  455.                }
  456.             }
  457.  
  458.             this.ctableName = new String[var17];
  459.             System.arraycopy(var24, 0, this.ctableName, 0, var17);
  460.             this.columnName = new String[var17];
  461.             System.arraycopy(var16, 0, this.columnName, 0, var17);
  462.             var4.setKeepConnectionOpen(false);
  463.             if (((Component)this).isShowing()) {
  464.                super.user.mainmsg.clearStatusMsg();
  465.             }
  466.  
  467.          }
  468.       }
  469.    }
  470.  
  471.    void resetAlias() {
  472.       this.loadColumns();
  473.       String var1 = "bcdefghijklmnopqrstuvwxyz";
  474.       if (this.moduleParameter.compareTo("JDPTemplateMaint") == 0) {
  475.          var1 = "a" + var1;
  476.       }
  477.  
  478.       boolean var2 = false;
  479.       if (this.moduleParameter.compareTo("JDPTemplateMaint") != 0 && this.tables.getSelectedIndex() < 0) {
  480.          var2 = true;
  481.       } else {
  482.          if (this.moduleParameter.compareTo("JDPTemplateMaint") != 0) {
  483.             this.tableAlias[this.tables.getSelectedIndex()] = "a";
  484.          }
  485.  
  486.          int[] var3 = this.stables.getSelectedIndexes();
  487.  
  488.          for(int var4 = 0; var4 < var3.length; ++var4) {
  489.             if (this.stableAlias[var3[var4]] != null && !this.stableAlias[var3[var4]].equals(var1.substring(var4, var4 + 1))) {
  490.                var2 = true;
  491.             }
  492.  
  493.             this.stableAlias[var3[var4]] = var1.substring(var4, var4 + 1);
  494.          }
  495.       }
  496.  
  497.       if (var2) {
  498.          this.joinConditions.clear();
  499.       }
  500.  
  501.       this.loadJoinCriteria();
  502.    }
  503.  
  504.    boolean saveSelections() {
  505.       JDPSaveProps var1 = super.user.saveProperties;
  506.       String var2 = "JDPSelectTable" + super.componentName;
  507.       var1.saveObject(this.tableTypes, var2, "tableTypes");
  508.       var1.saveObject(this.tables, var2, "tables");
  509.       var1.saveObject(this.stables, var2, "stables");
  510.       var1.saveObject(this.joinConditions, var2, "joinConditions", 1);
  511.       return true;
  512.    }
  513.  
  514.    void refresh() {
  515.       this.retrieveDSN();
  516.       this.restoreTypeSelection();
  517.       this.loadList();
  518.       this.restoreSelections();
  519.       if (super.componentName.indexOf("Search") >= 0 && ((Component)this).isShowing()) {
  520.          super.user.mainmsg.setStatusMsg("Please select the same tables as those you selected for your Result List.", 30);
  521.       }
  522.  
  523.    }
  524.  
  525.    boolean removeSelections() {
  526.       JDPSaveProps var1 = super.user.saveProperties;
  527.       String var2 = "JDPSelectTable" + super.componentName;
  528.       var1.removeObject(this.tableTypes, var2, "tableTypes");
  529.       var1.removeObject(this.tables, var2, "tables");
  530.       var1.removeObject(this.stables, var2, "stables");
  531.       var1.removeObject(this.joinConditions, var2, "joinConditions");
  532.       return true;
  533.    }
  534.  
  535.    public boolean handleEvent(Event var1) {
  536.       switch (var1.id) {
  537.          case 503:
  538.          case 504:
  539.          case 505:
  540.             this.popuppanel.postEvent(var1);
  541.             return false;
  542.          case 701:
  543.             if (var1.target instanceof JDPList) {
  544.                this.resetAlias();
  545.                if (var1.target.equals(this.tables)) {
  546.                   this.loadItem(this.tables.getSelectedIndex());
  547.                   if (this.tableAlias[this.tables.getSelectedIndex()] != null) {
  548.                      this.alias.setText(this.tableAlias[this.tables.getSelectedIndex()]);
  549.                   }
  550.                } else {
  551.                   int var6 = (Integer)var1.arg;
  552.                   this.loadItem(var6);
  553.                   if (this.stableAlias[var6] != null) {
  554.                      this.alias.setText(this.stableAlias[var6]);
  555.                   }
  556.                }
  557.  
  558.                return true;
  559.             }
  560.  
  561.             return false;
  562.          case 1001:
  563.             if (var1.target.equals(this.tableTypes)) {
  564.                this.loadList();
  565.                return true;
  566.             } else {
  567.                if (var1.target instanceof Button) {
  568.                   String var2 = (String)var1.arg;
  569.                   if (var2.trim().compareTo("Accept") == 0) {
  570.                      if (this.tables.getSelectedIndexes().length == 0) {
  571.                         super.user.mainmsg.setStatusMsg("You must select a primary table.", 7);
  572.                         return true;
  573.                      }
  574.  
  575.                      if (this.stables.getSelectedIndexes().length > 0 && this.joinConditions.countItems() == 0) {
  576.                         super.user.mainmsg.setStatusMsg("You have selected more than one table but have not defined a join condition.", 13);
  577.                         return true;
  578.                      }
  579.  
  580.                      this.setNewTable();
  581.                      this.saveSelections();
  582.                      if (super.componentName.equals("")) {
  583.                         super.user.jdpMenuPanel.loadNextTab();
  584.                      } else {
  585.                         this.tabPanel = JDPUtils.getTabPanel(this);
  586.                         if (this.tabPanel != null) {
  587.                            this.tabPanel.loadNextTab();
  588.                         }
  589.                      }
  590.  
  591.                      return true;
  592.                   }
  593.  
  594.                   if (var2.trim().compareTo("Reset") == 0) {
  595.                      if (this.tables.getSelectedIndex() >= 0) {
  596.                         this.tables.deselect(this.tables.getSelectedIndex());
  597.                      }
  598.  
  599.                      for(int var9 = 0; var9 < this.stables.countItems(); ++var9) {
  600.                         this.stables.deselect(var9);
  601.                      }
  602.  
  603.                      this.joinConditions.clear();
  604.                      this.resetAlias();
  605.                      return true;
  606.                   }
  607.  
  608.                   if (var2.trim().compareTo("Add") == 0) {
  609.                      if (this.join1.getSelectedItem() != null && this.join2.getSelectedItem() != null) {
  610.                         String var3 = this.join1.getSelectedItem();
  611.                         String var4 = this.compare.getSelectedKey();
  612.                         if (var4.indexOf("*") > 0 && this.stables.getSelectedIndexes().length != 1) {
  613.                            super.user.mainmsg.setStatusMsg("You must select one and only one secondary table when performing an outer join.", 8);
  614.                            return true;
  615.                         }
  616.  
  617.                         if (var4.indexOf("*") > 0) {
  618.                            for(int var5 = 0; var5 < this.joinConditions.countItems(); ++var5) {
  619.                               if (this.joinConditions.getItem(var5).indexOf("*") > 0) {
  620.                                  super.user.mainmsg.setStatusMsg("You may only select one outer join condition.", 8);
  621.                                  return true;
  622.                               }
  623.                            }
  624.                         }
  625.  
  626.                         var3 = var3 + var4;
  627.                         var3 = var3 + this.join2.getSelectedItem();
  628.                         this.joinConditions.addItem(var3);
  629.                      }
  630.  
  631.                      return true;
  632.                   }
  633.  
  634.                   if (var2.trim().compareTo("Remove") == 0) {
  635.                      if (this.joinConditions.getSelectedIndex() >= 0) {
  636.                         this.joinConditions.delItem(this.joinConditions.getSelectedIndex());
  637.                      }
  638.  
  639.                      return true;
  640.                   }
  641.                }
  642.  
  643.                return false;
  644.             }
  645.          default:
  646.             return false;
  647.       }
  648.    }
  649.  
  650.    void loadItem(int var1) {
  651.       this.qualifier.setText(this.tableQualifier[var1]);
  652.       this.owner.setText(this.tableOwner[var1]);
  653.       this.tablename.setText(this.tableName[var1]);
  654.       this.tabletype.setText(this.tableType[var1]);
  655.       this.remarks.setText(this.tableRemarks[var1]);
  656.    }
  657.  
  658.    void retrieveDSN() {
  659.       for(int var1 = 0; var1 < super.user.gParm.size(); ++var1) {
  660.          if (super.user.gParm.elementAt(var1) instanceof Vector) {
  661.             Vector var2 = (Vector)super.user.gParm.elementAt(var1);
  662.             if (this.moduleParameter.compareTo("JDPTemplateMaint") != 0) {
  663.                if (((String)var2.elementAt(0)).compareTo("SelectDSN" + super.componentName) == 0) {
  664.                   this.targetDSN = (JDPSelectDSN)var2.elementAt(3);
  665.                   this.datasource.setText(this.targetDSN.datasource.getText());
  666.                   this.connectstring.setText(this.targetDSN.connectstring.getText());
  667.                }
  668.             } else if (((String)var2.elementAt(0)).compareTo("SelectDSNTemplate") == 0) {
  669.                this.targetDSN = (JDPSelectDSN)var2.elementAt(3);
  670.                this.datasource.setText(this.targetDSN.datasource.getText());
  671.                this.connectstring.setText(this.targetDSN.connectstring.getText());
  672.             }
  673.          }
  674.       }
  675.  
  676.    }
  677.  
  678.    public void InitClass(JDPUser var1, Panel var2, String var3) {
  679.       super.user = var1;
  680.       this.moduleParameter = var3;
  681.       super.moduleName = "SelectTable";
  682.       if (var3.startsWith("JDPLayoutMgr:")) {
  683.          super.componentName = var3.substring(13);
  684.          var3 = "";
  685.          this.moduleParameter = "";
  686.       }
  687.  
  688.       ((Container)this).setLayout(new BorderLayout());
  689.       ((Component)this).setFont(var1.plainFont);
  690.       this.popuppanel = new JDPPopupMessage(var1, var2);
  691.       ((Container)var2).add(this.popuppanel);
  692.       Panel var4 = new Panel();
  693.       ((Container)var4).setLayout(new BorderLayout());
  694.       Panel var5 = new Panel();
  695.       ((Container)var5).setLayout(new BorderLayout());
  696.       Panel var6 = new Panel();
  697.       ((Container)var6).setLayout(new BorderLayout());
  698.       JDPScrollPanel var7 = new JDPScrollPanel();
  699.       this.tableTypes = new JDPChoice(var1);
  700.       this.tableTypes.addItem("All Types", "TABLE;VIEW;SYSTEM TABLE;GLOBAL TEMPORARY;LOCAL TEMPORARY;ALIAS;SYNONYM");
  701.       this.tableTypes.addItem("All Tables", "TABLE;VIEW;SYSTEM TABLE");
  702.       this.tableTypes.addItem("Tables and Views", "TABLE;VIEW");
  703.       this.tableTypes.addItem("Tables", "TABLE");
  704.       this.tableTypes.addItem("Views", "VIEW");
  705.       this.tableTypes.addItem("System Tables", "SYSTEM TABLE");
  706.       this.tableTypes.addItem("Global Temporarys", "GLOBAL TEMPORARY");
  707.       this.tableTypes.addItem("Local Temporarys", "LOCAL TEMPORARY");
  708.       this.tableTypes.addItem("Aliases", "ALIAS");
  709.       this.tableTypes.addItem("Synonyms", "SYNONYM");
  710.       this.tableTypes.select(2);
  711.       this.datasource = new TextField("", 20);
  712.       this.connectstring = new TextField("", 40);
  713.       this.qualifier = new TextField("", 25);
  714.       this.owner = new TextField("", 20);
  715.       this.tablename = new TextField("", 20);
  716.       this.tabletype = new TextField("", 20);
  717.       this.remarks = new TextField("", 25);
  718.       this.alias = new TextField("", 3);
  719.       this.datasource.setEditable(false);
  720.       this.qualifier.setEditable(false);
  721.       this.owner.setEditable(false);
  722.       this.tablename.setEditable(false);
  723.       this.tabletype.setEditable(false);
  724.       this.remarks.setEditable(false);
  725.       this.alias.setEditable(false);
  726.       ((Container)var7).add("Left", new JDPWrapLabel(var1, "Selected Data Source:"));
  727.       ((Container)var7).add("Right", this.datasource);
  728.       ((Container)var7).add("Left", new JDPWrapLabel(var1, "DataBase/Qualifier:"));
  729.       ((Container)var7).add("Right", this.qualifier);
  730.       ((Container)var7).add("Left", new JDPWrapLabel(var1, "Owner:"));
  731.       ((Container)var7).add("Right", this.owner);
  732.       ((Container)var7).add("Left", new JDPWrapLabel(var1, "Table Name:"));
  733.       ((Container)var7).add("Right", this.tablename);
  734.       ((Container)var7).add("Left", new JDPWrapLabel(var1, "Table Type:"));
  735.       ((Container)var7).add("Right", this.tabletype);
  736.       ((Container)var7).add("Left", new JDPWrapLabel(var1, "Remarks:"));
  737.       ((Container)var7).add("Right", this.remarks);
  738.       ((Container)var7).add("Left", new JDPWrapLabel(var1, "Table alias:"));
  739.       ((Container)var7).add("Right", this.alias);
  740.       Panel var8 = new Panel();
  741.       ((Container)var8).setLayout(new BorderLayout());
  742.       ((Container)var8).add("Center", var7);
  743.       this.joinPanel = new JDPScrollPanel();
  744.       Panel var9 = new Panel();
  745.       ((Container)var9).setLayout(new BorderLayout());
  746.       this.selectPanel = new Panel();
  747.       this.selectPanel.setLayout(new GridLayout(1, 3));
  748.       ((Container)var9).add("North", this.selectPanel);
  749.       this.join1 = new JDPComboBox(var1, "", 15);
  750.       this.compare = new JDPComboBox(var1, "", 15);
  751.       this.join2 = new JDPComboBox(var1, "", 15);
  752.       this.join1.setEditable(false);
  753.       this.compare.setEditable(false);
  754.       this.join2.setEditable(false);
  755.       this.joinPanel.add("Left", new JDPWrapLabel(var1, "Table Join Criteria:"));
  756.       this.joinPanel.add("Left", var9);
  757.       this.joinPanel.add("Right", new Panel());
  758.       this.joinPanel.add("Right", new Panel());
  759.       this.selectPanel.add(this.join1);
  760.       this.selectPanel.add(this.compare);
  761.       this.compare.addItem("Equals", " = ");
  762.       this.compare.addItem("Not Equal", " NOT = ");
  763.       this.compare.addItem("Left Outer Join", " *= ");
  764.       this.compare.addItem("Right Outer Join", " =* ");
  765.       this.selectPanel.add(this.join2);
  766.       this.popuppanel.addComponent(this.join1, "Join columns", "Choose the column by which to join Primary and Secondary tables");
  767.       this.popuppanel.addComponent(this.compare, "Join operator", "Choose the operator by which to join Primary and Secondary tables");
  768.       this.popuppanel.addComponent(this.join2, "Join columns", "Choose the column by which to join Primary and Secondary tables");
  769.       this.joinConditions = new JDPList(var1);
  770.       this.joinConditions.setMinHeight(70);
  771.       ((Container)var9).add("South", this.joinConditions);
  772.       this.popuppanel.addComponent(this.joinConditions, "Join criteria", "Choose the criteria by which to join Primary and Secondary tables");
  773.       String[] var10 = new String[]{"Add", "Remove"};
  774.       int[] var11 = new int[]{7, 8};
  775.       String[] var12 = new String[]{"Table Join Definition", "Table Details"};
  776.       Panel[] var13 = new Panel[]{this.joinPanel, var8};
  777.       if (var3.compareTo("JDPTemplateMaint") != 0) {
  778.          JDPTabSelectPanel var14 = new JDPTabSelectPanel(var1, var12, var13, "North");
  779.          ((Container)var6).add("Center", var14);
  780.       } else {
  781.          ((Container)var6).add("Center", this.joinPanel);
  782.       }
  783.  
  784.       JDPButtons var18 = new JDPButtons(var1, var10, var11, JDPButtons.HORIZONTAL);
  785.       this.joinPanel.add("Left", var18);
  786.       this.popuppanel.addComponent(var18.button[0], "Add join condition", "Add the current join condition to the list of join conditions");
  787.       this.popuppanel.addComponent(var18.button[1], "Remove join condition", "Remove the selected join condition from the list");
  788.       if (var3.compareTo("JDPTemplateMaint") != 0) {
  789.          String[] var15 = new String[]{"Accept", "Reset"};
  790.          int[] var16 = new int[]{5, 6};
  791.          JDPButtons var17 = new JDPButtons(var1, var15, var16, JDPButtons.HORIZONTAL);
  792.          ((Container)var6).add("South", var17);
  793.          this.popuppanel.addComponent(var17.button[0], "Accept Selections", "Accept selections and proceed to selecting table columns");
  794.          this.popuppanel.addComponent(var17.button[1], "Reset Selections", "Reset selections back to default settings");
  795.       }
  796.  
  797.       ((Container)var4).add("Center", var6);
  798.       this.tables = new JDPList(var1);
  799.       this.tables.setMinWidth(160);
  800.       this.stables = new JDPList(var1);
  801.       this.stables.allowMultipleSelections(true);
  802.       this.stables.setMinWidth(160);
  803.       this.stables.setMinHeight(150);
  804.       Panel var19 = new Panel();
  805.       ((Container)var19).setLayout(new BorderLayout());
  806.       ((Container)var19).add("North", this.tableTypes);
  807.       Panel var20 = new Panel();
  808.       ((Container)var20).setLayout(new BorderLayout());
  809.       ((Container)var19).add("Center", var20);
  810.       ((Container)var4).add("West", var19);
  811.       if (var3.compareTo("JDPTemplateMaint") != 0) {
  812.          ((Container)var20).add("North", new JDPWrapLabel(var1, "Primary Table:"));
  813.          ((Container)var20).add("Center", this.tables);
  814.          Panel var21 = new Panel();
  815.          ((Container)var21).setLayout(new BorderLayout());
  816.          ((Container)var21).add("North", new JDPWrapLabel(var1, "Secondary Tables:"));
  817.          ((Container)var21).add("South", this.stables);
  818.          ((Container)var20).add("South", var21);
  819.          ((Container)this).add("Center", new JDPChiselFramePanel(var1, "Select a Table", var4, "North"));
  820.          this.popuppanel.addComponent(this.tables, "Primary tables", "Choose the Primary table over which to build your new module");
  821.          this.popuppanel.addComponent(this.stables, "Secondary tables", "Choose 1 or many tables to join with the Primary table (optional)");
  822.       } else {
  823.          ((Container)var20).add("Center", this.stables);
  824.          ((Container)this).add("Center", var4);
  825.          this.popuppanel.addComponent(this.stables, "Select tables", "Choose the tables that contain the required data");
  826.       }
  827.  
  828.       this.retrieveDSN();
  829.       this.gParmObject = new Vector();
  830.       if (var3.compareTo("JDPTemplateMaint") != 0) {
  831.          this.gParmObject.addElement(super.moduleName + super.componentName);
  832.       } else {
  833.          this.gParmObject.addElement("SelectTableTemplate");
  834.       }
  835.  
  836.       this.gParmObject.addElement(this);
  837.       var1.gParm.addElement(this.gParmObject);
  838.       if (var3.compareTo("JDPTemplateMaint") != 0) {
  839.       }
  840.  
  841.       ((Component)var2).paintAll(((Component)var2).getGraphics());
  842.       if (super.componentName.equals("")) {
  843.          new JDPPanelLoader("JDPSelectColumns");
  844.       }
  845.  
  846.    }
  847. }
  848.