home *** CD-ROM | disk | FTP | other *** search
/ CD Actual Thematic 7: Programming / CDAT7.iso / Share / Java / JDesignerPro / Jdp3_0.exe / data1.cab / Program_Files / JDPSelectColumns.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-04-09  |  14.3 KB  |  790 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.List;
  7. import java.awt.Panel;
  8. import java.awt.TextField;
  9. import java.util.StringTokenizer;
  10. import java.util.Vector;
  11.  
  12. public class JDPSelectColumns extends JDPClassLayout {
  13.    JDPSelectDSN targetDSN;
  14.    JDPSelectTable target;
  15.    JDPPopupMessage popuppanel;
  16.    JDPDragItem dragPanel;
  17.    int tableIndex = -1;
  18.    JDPList columns;
  19.    JDPList keys;
  20.    JDPList keysUpdate;
  21.    TextField table;
  22.    TextField columnname;
  23.    TextField datatype;
  24.    TextField typename;
  25.    TextField precision;
  26.    TextField length;
  27.    TextField scale;
  28.    TextField radix;
  29.    TextField nullable;
  30.    TextField remarks;
  31.    JDPChoice useRemarks;
  32.    String[] tableQualifier;
  33.    String[] tableOwner;
  34.    String[] tableName;
  35.    String[] columnName;
  36.    int[] columnDatatype;
  37.    String[] columnTypename;
  38.    String[] columnPrecision;
  39.    String[] columnLength;
  40.    String[] columnScale;
  41.    String[] columnRadix;
  42.    String[] columnNullable;
  43.    String[] columnRemarks;
  44.    boolean[] columnIsIdentity;
  45.    String[] saveColumns;
  46.    String[] savetableQualifier;
  47.    String[] savetableOwner;
  48.    String[] savetableName;
  49.    String[] savecolumnName;
  50.    int[] savecolumnDatatype;
  51.    String[] savecolumnTypename;
  52.    String[] savecolumnPrecision;
  53.    String[] savecolumnLength;
  54.    String[] savecolumnScale;
  55.    String[] savecolumnRadix;
  56.    String[] savecolumnNullable;
  57.    String[] savecolumnRemarks;
  58.    boolean[] savecolumnIsIdentity;
  59.    Vector gParmObject;
  60.    JDPTabSelectPanel tabPanel;
  61.  
  62.    boolean setNewColumns() {
  63.       if (this.columns.getSelectedIndexes().length < 1) {
  64.          if (super.componentName.equals("") && ((Component)this).isShowing()) {
  65.             super.user.mainmsg.setStatusMsg("You have not selected any columns.", 10);
  66.          }
  67.  
  68.          return false;
  69.       } else if (this.keys.getSelectedIndexes().length < 1) {
  70.          if (((Component)this).isShowing()) {
  71.             super.user.mainmsg.setStatusMsg("You must select a key for selecting rows from this table.", 10);
  72.          }
  73.  
  74.          return false;
  75.       } else if (this.keysUpdate.getSelectedIndexes().length < 1) {
  76.          if (((Component)this).isShowing()) {
  77.             super.user.mainmsg.setStatusMsg("You must select a unique key for performing updates on this table.", 10);
  78.          }
  79.  
  80.          return false;
  81.       } else {
  82.          for(int var1 = 0; var1 < super.user.gParm.size(); ++var1) {
  83.             if (super.user.gParm.elementAt(var1) instanceof Vector) {
  84.                Vector var2 = (Vector)super.user.gParm.elementAt(var1);
  85.                if (((String)var2.elementAt(0)).compareTo("SearchLayout" + super.componentName) == 0) {
  86.                   ((JDPClassLayout)var2.elementAt(1)).refresh();
  87.                }
  88.  
  89.                if (((String)var2.elementAt(0)).compareTo("ListLayout" + super.componentName) == 0) {
  90.                   ((JDPClassLayout)var2.elementAt(1)).refresh();
  91.                }
  92.  
  93.                if (((String)var2.elementAt(0)).compareTo("ScreenSettings" + super.componentName) == 0) {
  94.                   ((JDPClassLayout)var2.elementAt(1)).refresh();
  95.                }
  96.  
  97.                if (((String)var2.elementAt(0)).compareTo("GridSettings" + super.componentName) == 0) {
  98.                   ((JDPClassLayout)var2.elementAt(1)).refresh();
  99.                }
  100.  
  101.                if (((String)var2.elementAt(0)).compareTo("EmailLayout" + super.componentName) == 0) {
  102.                   ((JDPClassLayout)var2.elementAt(1)).refresh();
  103.                }
  104.  
  105.                if (((String)var2.elementAt(0)).compareTo("AlphaLayout" + super.componentName) == 0) {
  106.                   ((JDPClassLayout)var2.elementAt(1)).refresh();
  107.                }
  108.             }
  109.          }
  110.  
  111.          for(int var3 = 0; var3 < super.user.gParm.size(); ++var3) {
  112.             if (super.user.gParm.elementAt(var3) instanceof Vector) {
  113.                Vector var4 = (Vector)super.user.gParm.elementAt(var3);
  114.                if (((String)var4.elementAt(0)).compareTo("ScreenLayout" + super.componentName) == 0) {
  115.                   ((JDPClassLayout)var4.elementAt(1)).refresh();
  116.                }
  117.  
  118.                if (((String)var4.elementAt(0)).compareTo("SelectReportDef" + super.componentName) == 0) {
  119.                   ((JDPClassLayout)var4.elementAt(1)).refresh();
  120.                }
  121.  
  122.                if (((String)var4.elementAt(0)).compareTo("SelectChartDef" + super.componentName) == 0) {
  123.                   ((JDPClassLayout)var4.elementAt(1)).refresh();
  124.                }
  125.             }
  126.          }
  127.  
  128.          if (((Component)this).isShowing()) {
  129.             super.user.mainmsg.setStatusMsg("Selections accepted.", 5);
  130.          }
  131.  
  132.          return true;
  133.       }
  134.    }
  135.  
  136.    void clearList() {
  137.       this.columns.clear();
  138.       this.keys.clear();
  139.       this.keysUpdate.clear();
  140.    }
  141.  
  142.    void loadList() {
  143.       new Vector();
  144.       super.user.jaggSQL.getSEP();
  145.       boolean var1 = false;
  146.       this.clearList();
  147.       this.clearFields();
  148.       this.retrieveTable();
  149.       if (this.tableIndex == -1) {
  150.          this.tabPanel = JDPUtils.getTabPanel(this);
  151.          if (this.tabPanel != null) {
  152.             this.tabPanel.select("Select Table");
  153.          }
  154.  
  155.       } else if (this.target.tables.countItems() > 0) {
  156.          this.table.setText(this.target.tableName[this.tableIndex]);
  157.          int var2 = 0;
  158.          String var3 = this.target.tables.getSelectedItem();
  159.  
  160.          for(int var4 = 0; var4 < this.target.columnName.length; ++var4) {
  161.             if (this.target.ctableName[var4] != null && this.target.ctableName[var4].equals(var3)) {
  162.                ++var2;
  163.             }
  164.          }
  165.  
  166.          int[] var10 = this.target.stables.getSelectedIndexes();
  167.  
  168.          for(int var5 = 0; var5 < var10.length; ++var5) {
  169.             String var6 = this.target.stables.getItem(var10[var5]);
  170.  
  171.             for(int var7 = 0; var7 < this.target.columnName.length; ++var7) {
  172.                if (this.target.ctableName[var7] != null && this.target.ctableName[var7].equals(var6)) {
  173.                   ++var2;
  174.                }
  175.             }
  176.          }
  177.  
  178.          this.tableQualifier = new String[var2];
  179.          this.tableOwner = new String[var2];
  180.          this.tableName = new String[var2];
  181.          this.columnName = new String[var2];
  182.          this.columnDatatype = new int[var2];
  183.          this.columnTypename = new String[var2];
  184.          this.columnPrecision = new String[var2];
  185.          this.columnLength = new String[var2];
  186.          this.columnScale = new String[var2];
  187.          this.columnRadix = new String[var2];
  188.          this.columnNullable = new String[var2];
  189.          this.columnRemarks = new String[var2];
  190.          this.columnIsIdentity = new boolean[var2];
  191.          var2 = 0;
  192.  
  193.          for(int var11 = 0; var11 < this.target.columnName.length; ++var11) {
  194.             if (this.target.ctableName[var11] != null && this.target.ctableName[var11].equals(var3)) {
  195.                this.tableQualifier[var2] = this.target.ctableQualifier[var11];
  196.                this.tableOwner[var2] = this.target.ctableOwner[var11];
  197.                this.tableName[var2] = this.target.ctableName[var11];
  198.                this.columnName[var2] = this.target.columnName[var11];
  199.                this.columnDatatype[var2] = this.target.columnDatatype[var11];
  200.                this.columnTypename[var2] = this.target.columnTypename[var11];
  201.                String var13 = this.columnTypename[var2].toUpperCase();
  202.                if (var13.indexOf("IDENTITY") >= 0 || var13.indexOf("COUNTER") >= 0) {
  203.                   this.columnIsIdentity[var2] = true;
  204.                }
  205.  
  206.                this.columnPrecision[var2] = this.target.columnPrecision[var11];
  207.                this.columnLength[var2] = this.target.columnPrecision[var11];
  208.  
  209.                int var15;
  210.                try {
  211.                   var15 = Integer.parseInt(this.columnLength[var2]);
  212.                   if (var15 > 500) {
  213.                      var15 = 40;
  214.                   }
  215.  
  216.                   if (var15 < 0) {
  217.                      var15 = 40;
  218.                   }
  219.                } catch (Exception var8) {
  220.                   var15 = 40;
  221.                }
  222.  
  223.                this.columnLength[var2] = Integer.toString(var15);
  224.                this.columnScale[var2] = this.target.columnScale[var11];
  225.                this.columnRadix[var2] = this.target.columnRadix[var11];
  226.                this.columnNullable[var2] = this.target.columnNullable[var11];
  227.                this.columnRemarks[var2] = this.target.columnRemarks[var11];
  228.                if (this.columnName[var2].indexOf(" ") >= 0 || this.columnName[var2].indexOf("#") >= 0) {
  229.                   this.columnName[var2] = "`" + this.columnName[var2] + "`";
  230.                }
  231.  
  232.                if (var10.length > 0) {
  233.                   this.columns.addItem("a." + this.columnName[var2], 8);
  234.                   this.columns.select(var2);
  235.                   this.keys.addItem("a." + this.columnName[var2], 8);
  236.                   this.keysUpdate.addItem("a." + this.columnName[var2], 8);
  237.                } else {
  238.                   this.columns.addItem(this.columnName[var2], 8);
  239.                   this.columns.select(var2);
  240.                   this.keys.addItem(this.columnName[var2], 8);
  241.                   this.keysUpdate.addItem(this.columnName[var2], 8);
  242.                }
  243.  
  244.                ++var2;
  245.             }
  246.          }
  247.  
  248.          for(int var12 = 0; var12 < var10.length; ++var12) {
  249.             String var14 = this.target.stables.getItem(var10[var12]);
  250.  
  251.             for(int var16 = 0; var16 < this.target.columnName.length; ++var16) {
  252.                if (this.target.ctableName[var16] != null && this.target.ctableName[var16].equals(var14)) {
  253.                   this.tableQualifier[var2] = this.target.ctableQualifier[var16];
  254.                   this.tableOwner[var2] = this.target.ctableOwner[var16];
  255.                   this.tableName[var2] = this.target.ctableName[var16];
  256.                   this.columnName[var2] = this.target.columnName[var16];
  257.                   this.columnDatatype[var2] = this.target.columnDatatype[var16];
  258.                   this.columnTypename[var2] = this.target.columnTypename[var16];
  259.                   this.columnPrecision[var2] = this.target.columnPrecision[var16];
  260.                   this.columnLength[var2] = this.target.columnLength[var16];
  261.                   this.columnScale[var2] = this.target.columnScale[var16];
  262.                   this.columnRadix[var2] = this.target.columnRadix[var16];
  263.                   this.columnNullable[var2] = this.target.columnNullable[var16];
  264.                   this.columnRemarks[var2] = this.target.columnRemarks[var16];
  265.                   if (this.columnName[var2].indexOf(" ") >= 0 || this.columnName[var2].indexOf("#") >= 0) {
  266.                      this.columnName[var2] = "`" + this.columnName[var2] + "`";
  267.                   }
  268.  
  269.                   this.columns.addItem(this.target.stableAlias[var10[var12]] + "." + this.columnName[var2], 8);
  270.                   this.columns.select(var2);
  271.                   ++var2;
  272.                }
  273.             }
  274.          }
  275.  
  276.          if (this.columns.countItems() > 0) {
  277.             this.columns.makeVisible(0);
  278.          }
  279.  
  280.          if (this.keys.countItems() > 0) {
  281.             this.keys.makeVisible(0);
  282.          }
  283.  
  284.          if (this.keysUpdate.countItems() > 0) {
  285.             this.keysUpdate.makeVisible(0);
  286.          }
  287.  
  288.          this.loadKeys();
  289.       }
  290.    }
  291.  
  292.    boolean restoreSelections() {
  293.       JDPSaveProps var1 = super.user.saveProperties;
  294.       if (super.user.prevProperties != null) {
  295.          var1 = super.user.prevProperties;
  296.       }
  297.  
  298.       String var2 = "JDPSelectColumns" + super.componentName;
  299.       String[] var3 = new String[0];
  300.       JDPList var4 = new JDPList(super.user);
  301.       var1.restoreObject(var4, var2, "columnsItems", 1);
  302.       if (var4.countItems() > 0) {
  303.          this.saveArrays();
  304.          JDPList var5 = new JDPList(super.user);
  305.  
  306.          for(int var6 = 0; var6 < this.columns.countItems(); ++var6) {
  307.             var5.addItem(this.columns.getItem(var6));
  308.          }
  309.  
  310.          this.columns.clear();
  311.          String var10 = "";
  312.  
  313.          for(int var7 = 0; var7 < var4.countItems(); ++var7) {
  314.             if (var5.getItem(var4.getItem(var7)) != -1) {
  315.                this.columns.addItem(var4.getItem(var7));
  316.                this.columns.select(this.columns.countItems() - 1);
  317.                this.setNewArrayElement(var7, var4.getItem(var7));
  318.                var10 = this.savetableName[var7];
  319.             } else {
  320.                super.user.mainmsg.setStatusMsg("Column " + var4.getItem(var7) + " has been removed from table " + var10 + ". Application load may fail.", 0);
  321.                System.out.println("Column " + var4.getItem(var7) + " has been removed from table " + var10 + ". Application load may fail.");
  322.             }
  323.          }
  324.  
  325.          for(int var13 = 0; var13 < var5.countItems(); ++var13) {
  326.             if (this.columns.getItem(var5.getItem(var13)) == -1) {
  327.                this.columns.addItem(var5.getItem(var13));
  328.                this.columns.select(this.columns.countItems() - 1);
  329.                this.setNewArrayElement(this.columns.countItems() - 1, var5.getItem(var13));
  330.             }
  331.          }
  332.  
  333.          var3 = this.columns.getSelectedItems();
  334.       }
  335.  
  336.       List var9 = new List();
  337.       var1.restoreObject(var9, var2, "keysItems", 1);
  338.       if (var9.countItems() > 0) {
  339.          List var11 = new List();
  340.  
  341.          for(int var14 = 0; var14 < this.keys.countItems(); ++var14) {
  342.             var11.addItem(this.keys.getItem(var14));
  343.          }
  344.  
  345.          this.keys.clear();
  346.  
  347.          for(int var15 = 0; var15 < var9.countItems(); ++var15) {
  348.             this.keys.addItem(var9.getItem(var15));
  349.          }
  350.  
  351.          for(int var16 = 0; var16 < var11.countItems(); ++var16) {
  352.             if (this.keys.getItem(var11.getItem(var16)) == -1) {
  353.                this.keys.addItem(var11.getItem(var16));
  354.             }
  355.          }
  356.       }
  357.  
  358.       List var12 = new List();
  359.       var1.restoreObject(var12, var2, "keysUpdateItems", 1);
  360.       if (var12.countItems() > 0) {
  361.          List var17 = new List();
  362.  
  363.          for(int var8 = 0; var8 < this.keysUpdate.countItems(); ++var8) {
  364.             var17.addItem(this.keysUpdate.getItem(var8));
  365.          }
  366.  
  367.          this.keysUpdate.clear();
  368.  
  369.          for(int var21 = 0; var21 < var12.countItems(); ++var21) {
  370.             this.keysUpdate.addItem(var12.getItem(var21));
  371.          }
  372.  
  373.          for(int var22 = 0; var22 < var17.countItems(); ++var22) {
  374.             if (this.keysUpdate.getItem(var17.getItem(var22)) == -1) {
  375.                this.keysUpdate.addItem(var17.getItem(var22));
  376.             }
  377.          }
  378.       }
  379.  
  380.       if (this.columns.countItems() > 0) {
  381.          for(int var18 = 0; var18 < this.columns.countItems(); ++var18) {
  382.             this.columns.select(var18);
  383.          }
  384.       }
  385.  
  386.       for(int var19 = 0; var19 < var3.length; ++var19) {
  387.          this.columns.select(var3[var19]);
  388.       }
  389.  
  390.       if (this.keys.countItems() > 0) {
  391.          var1.restoreObject(this.keys, var2, "keys");
  392.       }
  393.  
  394.       if (this.keysUpdate.countItems() > 0) {
  395.          var1.restoreObject(this.keysUpdate, var2, "keysUpdate");
  396.       }
  397.  
  398.       if (this.keysUpdate.getSelectedItems().length == 0) {
  399.          String[] var20 = this.keys.getSelectedItems();
  400.  
  401.          for(int var23 = 0; var23 < var20.length; ++var23) {
  402.             this.keysUpdate.select(var20[var23]);
  403.          }
  404.       }
  405.  
  406.       return true;
  407.    }
  408.  
  409.    void clearFields() {
  410.       this.table.setText("");
  411.       this.columnname.setText("");
  412.       this.datatype.setText("");
  413.       this.typename.setText("");
  414.       this.precision.setText("");
  415.       this.length.setText("");
  416.       this.scale.setText("");
  417.       this.radix.setText("");
  418.       this.nullable.setText("");
  419.       this.remarks.setText("");
  420.    }
  421.  
  422.    void loadKeys() {
  423.       int var2 = 0;
  424.       Vector var3 = new Vector();
  425.       String var4 = super.user.jaggSQL.getSEP();
  426.       String var6 = "";
  427.       this.retrieveTable();
  428.       if (this.tableIndex == -1) {
  429.          if (((Component)this).isShowing()) {
  430.             super.user.mainmsg.setStatusMsg("You must first select a table.", 5);
  431.          }
  432.  
  433.       } else {
  434.          if (((Component)this).isShowing()) {
  435.             super.user.mainmsg.setStatusMsg("Accessing database...", 0);
  436.          }
  437.  
  438.          JDPJagg var7 = new JDPJagg(super.user.jaggPath);
  439.          var7.loadSettings(this.targetDSN);
  440.          var7.setFCTN("SQLPrimaryKeys");
  441.          String var8 = this.target.tableName[this.tableIndex];
  442.          String var9 = ";;" + var8 + ";;";
  443.          int var10 = var8.indexOf(".");
  444.          if (var10 >= 0) {
  445.             var9 = ";" + var8.substring(0, var10) + ";" + var8.substring(var10 + 1) + ";;";
  446.          }
  447.  
  448.          var7.setFCTNP(var9);
  449.          var2 = var7.execSQL(var6, var3);
  450.          if (var2 == -1) {
  451.             if (((Component)this).isShowing()) {
  452.                super.user.mainmsg.clearStatusMsg();
  453.             }
  454.  
  455.          } else {
  456.             if (super.user.DEBUG) {
  457.                System.out.println("JDPSelectColumns/loadList COL: " + Integer.toString(var7.getColumnCount()));
  458.             }
  459.  
  460.             if (var2 == 0 && ((Component)this).isShowing()) {
  461.                super.user.mainmsg.setStatusMsg("No key defined for this table - Please create a key before proceeding.", 20);
  462.             }
  463.  
  464.             for(int var12 = 0; var12 < var7.getRowCount(); ++var12) {
  465.                String var5 = (String)var3.elementAt(var12);
  466.                if (var5 != null && var5.trim().compareTo("") != 0) {
  467.                   StringTokenizer var1 = new StringTokenizer(var5);
  468.                   String var11 = var1.nextToken(var4).trim();
  469.                   var11 = var1.nextToken(var4).trim();
  470.                   var11 = var1.nextToken(var4).trim();
  471.                   var11 = var1.nextToken(var4).trim();
  472.  
  473.                   for(int var13 = 0; var13 < this.keysUpdate.countItems(); ++var13) {
  474.                      String var14 = this.keysUpdate.getItem(var13);
  475.                      if (var14.startsWith("a.")) {
  476.                         var14 = var14.substring(2);
  477.                      }
  478.  
  479.                      if (var14.equals(var11)) {
  480.                         this.keysUpdate.select(var13);
  481.                      }
  482.  
  483.                      if (var14.equals(var11)) {
  484.                         this.keys.select(var13);
  485.                      }
  486.                   }
  487.                }
  488.             }
  489.  
  490.             if (((Component)this).isShowing()) {
  491.                super.user.mainmsg.clearStatusMsg();
  492.             }
  493.  
  494.          }
  495.       }
  496.    }
  497.  
  498.    void saveArrays() {
  499.       this.savetableQualifier = this.tableQualifier;
  500.       this.savetableOwner = this.tableOwner;
  501.       this.savetableName = this.tableName;
  502.       this.savecolumnName = this.columnName;
  503.       this.savecolumnDatatype = this.columnDatatype;
  504.       this.savecolumnTypename = this.columnTypename;
  505.       this.savecolumnPrecision = this.columnPrecision;
  506.       this.savecolumnLength = this.columnLength;
  507.       this.savecolumnScale = this.columnScale;
  508.       this.savecolumnRadix = this.columnRadix;
  509.       this.savecolumnNullable = this.columnNullable;
  510.       this.savecolumnRemarks = this.columnRemarks;
  511.       this.savecolumnIsIdentity = this.columnIsIdentity;
  512.       int var1 = this.columns.countItems();
  513.       this.saveColumns = new String[var1];
  514.  
  515.       for(int var2 = 0; var2 < var1; ++var2) {
  516.          this.saveColumns[var2] = this.columns.getItem(var2);
  517.       }
  518.  
  519.       this.tableQualifier = new String[var1];
  520.       this.tableOwner = new String[var1];
  521.       this.tableName = new String[var1];
  522.       this.columnName = new String[var1];
  523.       this.columnDatatype = new int[var1];
  524.       this.columnTypename = new String[var1];
  525.       this.columnPrecision = new String[var1];
  526.       this.columnLength = new String[var1];
  527.       this.columnScale = new String[var1];
  528.       this.columnRadix = new String[var1];
  529.       this.columnNullable = new String[var1];
  530.       this.columnRemarks = new String[var1];
  531.       this.columnIsIdentity = new boolean[var1];
  532.    }
  533.  
  534.    void setNewArrayElement(int var1, String var2) {
  535.       boolean var3 = false;
  536.       int var4 = 0;
  537.  
  538.       for(var4 = 0; var4 < this.saveColumns.length; ++var4) {
  539.          if (this.saveColumns[var4].equals(var2)) {
  540.             var3 = true;
  541.             break;
  542.          }
  543.       }
  544.  
  545.       if (var3) {
  546.          this.tableQualifier[var1] = this.savetableQualifier[var4];
  547.          this.tableOwner[var1] = this.savetableOwner[var4];
  548.          this.tableName[var1] = this.savetableName[var4];
  549.          this.columnName[var1] = this.savecolumnName[var4];
  550.          this.columnDatatype[var1] = this.savecolumnDatatype[var4];
  551.          this.columnTypename[var1] = this.savecolumnTypename[var4];
  552.          this.columnPrecision[var1] = this.savecolumnPrecision[var4];
  553.          this.columnLength[var1] = this.savecolumnLength[var4];
  554.          this.columnScale[var1] = this.savecolumnScale[var4];
  555.          this.columnRadix[var1] = this.savecolumnRadix[var4];
  556.          this.columnNullable[var1] = this.savecolumnNullable[var4];
  557.          this.columnRemarks[var1] = this.savecolumnRemarks[var4];
  558.          this.columnIsIdentity[var1] = this.savecolumnIsIdentity[var4];
  559.       }
  560.    }
  561.  
  562.    boolean saveSelections() {
  563.       JDPSaveProps var1 = super.user.saveProperties;
  564.       String var2 = "JDPSelectColumns" + super.componentName;
  565.       var1.saveObject(this.columns, var2, "columnsItems", 1);
  566.       var1.saveObject(this.keys, var2, "keysItems", 1);
  567.       var1.saveObject(this.keysUpdate, var2, "keysUpdateItems", 1);
  568.       var1.saveObject(this.columns, var2, "columns");
  569.       var1.saveObject(this.keys, var2, "keys");
  570.       var1.saveObject(this.keysUpdate, var2, "keysUpdate");
  571.       return true;
  572.    }
  573.  
  574.    void refresh() {
  575.       this.retrieveTable();
  576.       this.loadList();
  577.       this.restoreSelections();
  578.    }
  579.  
  580.    int[] getKeyIndexes(JDPList var1) {
  581.       String[] var2 = ((JDPTreePicker)var1).getSelectedItems();
  582.       int[] var3 = new int[var2.length];
  583.  
  584.       for(int var4 = 0; var4 < var2.length; ++var4) {
  585.          var3[var4] = this.columns.getItem(var2[var4]);
  586.       }
  587.  
  588.       return var3;
  589.    }
  590.  
  591.    public boolean handleEvent(Event var1) {
  592.       switch (var1.id) {
  593.          case 503:
  594.          case 504:
  595.          case 505:
  596.             this.popuppanel.postEvent(var1);
  597.             return false;
  598.          case 701:
  599.             if (var1.target instanceof JDPList) {
  600.                int var4 = (Integer)var1.arg;
  601.                this.loadItem(var4);
  602.                return true;
  603.             }
  604.  
  605.             return false;
  606.          case 1001:
  607.             if (var1.target instanceof TextField) {
  608.                return true;
  609.             } else {
  610.                if (var1.target instanceof Button) {
  611.                   String var2 = (String)var1.arg;
  612.                   if (var2.trim().compareTo("Accept") == 0) {
  613.                      this.keys.clear();
  614.  
  615.                      for(int var3 = 0; var3 < this.keysUpdate.countItems(); ++var3) {
  616.                         this.keys.addItem(this.keysUpdate.getItem(var3));
  617.                         if (this.keysUpdate.isSelected(var3)) {
  618.                            this.keys.select(var3);
  619.                         }
  620.                      }
  621.  
  622.                      if (this.setNewColumns()) {
  623.                         this.saveSelections();
  624.                         if (super.componentName.equals("")) {
  625.                            super.user.jdpMenuPanel.loadNextTab();
  626.                         } else {
  627.                            this.tabPanel = JDPUtils.getTabPanel(this);
  628.                            if (this.tabPanel != null) {
  629.                               this.tabPanel.loadNextTab();
  630.                            }
  631.                         }
  632.                      }
  633.  
  634.                      return true;
  635.                   }
  636.                }
  637.  
  638.                return false;
  639.             }
  640.          default:
  641.             return false;
  642.       }
  643.    }
  644.  
  645.    boolean removeSelections() {
  646.       JDPSaveProps var1 = super.user.saveProperties;
  647.       String var2 = "JDPSelectColumns" + super.componentName;
  648.       var1.removeObject(this.columns, var2, "columnsItems");
  649.       var1.removeObject(this.keys, var2, "keysItems");
  650.       var1.removeObject(this.keysUpdate, var2, "keysUpdateItems");
  651.       var1.removeObject(this.columns, var2, "columns");
  652.       var1.removeObject(this.keys, var2, "keys");
  653.       var1.removeObject(this.keysUpdate, var2, "keysUpdate");
  654.       var1.removeObject(this.columnLength, var2, "keysUpdate");
  655.       return true;
  656.    }
  657.  
  658.    void loadItem(int var1) {
  659.       this.table.setText(this.tableName[var1]);
  660.       this.columnname.setText(this.columnName[var1]);
  661.       this.datatype.setText(JDPUtils.getODBCValue(this.columnDatatype[var1]));
  662.       this.typename.setText(this.columnTypename[var1]);
  663.       this.precision.setText(this.columnPrecision[var1]);
  664.       this.length.setText(this.columnLength[var1]);
  665.       this.scale.setText(this.columnScale[var1]);
  666.       this.radix.setText(this.columnRadix[var1]);
  667.       this.nullable.setText(this.columnNullable[var1]);
  668.       this.remarks.setText(this.columnRemarks[var1]);
  669.    }
  670.  
  671.    public void InitClass(JDPUser var1, Panel var2, String var3) {
  672.       super.user = var1;
  673.       super.moduleName = "SelectColumns";
  674.       if (var3.startsWith("JDPLayoutMgr:")) {
  675.          super.componentName = var3.substring(13);
  676.          var3 = "";
  677.       }
  678.  
  679.       ((Container)this).setLayout(new BorderLayout());
  680.       ((Component)this).setFont(var1.plainFont);
  681.       this.popuppanel = new JDPPopupMessage(var1, var2);
  682.       ((Container)var2).add(this.popuppanel);
  683.       this.dragPanel = new JDPDragItem(var1, var2);
  684.       ((Container)var2).add(this.dragPanel);
  685.       Panel var4 = new Panel();
  686.       ((Container)var4).setLayout(new BorderLayout());
  687.       Panel var5 = new Panel();
  688.       ((Container)var5).setLayout(new BorderLayout());
  689.       Panel var6 = new Panel();
  690.       ((Container)var6).setLayout(new BorderLayout());
  691.       JDPScrollPanel var7 = new JDPScrollPanel();
  692.       this.table = new TextField("", 20);
  693.       this.columnname = new TextField("", 20);
  694.       this.datatype = new TextField("", 20);
  695.       this.typename = new TextField("", 20);
  696.       this.precision = new TextField("", 10);
  697.       this.length = new TextField("", 10);
  698.       this.scale = new TextField("", 10);
  699.       this.radix = new TextField("", 10);
  700.       this.nullable = new TextField("", 10);
  701.       this.remarks = new TextField("", 25);
  702.       this.table.setEditable(false);
  703.       this.columnname.setEditable(false);
  704.       this.datatype.setEditable(false);
  705.       this.typename.setEditable(false);
  706.       this.precision.setEditable(false);
  707.       this.length.setEditable(false);
  708.       this.scale.setEditable(false);
  709.       this.radix.setEditable(false);
  710.       this.nullable.setEditable(false);
  711.       this.remarks.setEditable(false);
  712.       this.useRemarks = new JDPChoice(var1);
  713.       this.useRemarks.addItem("Yes");
  714.       this.useRemarks.addItem("No");
  715.       ((Container)var7).add("Left", new JDPWrapLabel(var1, "Table:"));
  716.       ((Container)var7).add("Right", this.table);
  717.       ((Container)var7).add("Left", new JDPWrapLabel(var1, "Column Name:"));
  718.       ((Container)var7).add("Right", this.columnname);
  719.       ((Container)var7).add("Left", new JDPWrapLabel(var1, "Data Type:"));
  720.       ((Container)var7).add("Right", this.datatype);
  721.       ((Container)var7).add("Left", new JDPWrapLabel(var1, "Type Name:"));
  722.       ((Container)var7).add("Right", this.typename);
  723.       ((Container)var7).add("Left", new JDPWrapLabel(var1, "Length:"));
  724.       ((Container)var7).add("Right", this.precision);
  725.       ((Container)var7).add("Left", new JDPWrapLabel(var1, "Decimal:"));
  726.       ((Container)var7).add("Right", this.scale);
  727.       ((Container)var7).add("Left", new JDPWrapLabel(var1, "Nullable:"));
  728.       ((Container)var7).add("Right", this.nullable);
  729.       ((Container)var7).add("Left", new JDPWrapLabel(var1, "Remarks:"));
  730.       ((Container)var7).add("Right", this.remarks);
  731.       ((Container)var7).add("Left", new JDPWrapLabel(var1, "Use remarks for Labels:"));
  732.       ((Container)var7).add("Right", this.useRemarks);
  733.       ((Container)var6).add("Center", var7);
  734.       String[] var8 = new String[]{"Accept"};
  735.       int[] var9 = new int[]{5};
  736.       JDPButtons var10 = new JDPButtons(var1, var8, var9, JDPButtons.HORIZONTAL);
  737.       ((Container)var6).add("South", var10);
  738.       this.popuppanel.addComponent(var10.button[0], "Accept Selections", "Accept selections and proceed to next screen");
  739.       ((Container)var4).add("Center", var6);
  740.       this.columns = new JDPList(var1);
  741.       this.columns.allowMultipleSelections(true);
  742.       this.columns.setMinWidth(160);
  743.       this.keys = new JDPList(var1);
  744.       this.keys.allowMultipleSelections(true);
  745.       this.keys.setMinWidth(160);
  746.       this.keys.setSelectionsCheckboxes(true);
  747.       this.keys.setAllowChangeOrder(true);
  748.       this.keysUpdate = new JDPList(var1);
  749.       this.keysUpdate.allowMultipleSelections(true);
  750.       this.keysUpdate.setMinWidth(160);
  751.       this.keysUpdate.setSelectionsCheckboxes(true);
  752.       this.keysUpdate.setAllowChangeOrder(true);
  753.       Panel var11 = new Panel();
  754.       ((Container)var11).setLayout(new BorderLayout());
  755.       ((Container)var11).add("North", new JDPWrapLabel(var1, "Unique Key for Selects:"));
  756.       ((Container)var11).add("Center", this.keys);
  757.       Panel var12 = new Panel();
  758.       ((Container)var12).setLayout(new BorderLayout());
  759.       ((Container)var12).add("North", new JDPWrapLabel(var1, "Unique Key:"));
  760.       ((Container)var12).add("Center", this.keysUpdate);
  761.       this.popuppanel.addComponent(this.keysUpdate, "Primary table unique key", "Choose the columns that make up the unique key of the primary table. Drag columns to change the order.");
  762.       ((Container)var4).add("West", var12);
  763.       ((Container)this).add("Center", new JDPChiselFramePanel(var1, "Define key for selects and updates", var4, "North"));
  764.       this.gParmObject = new Vector();
  765.       this.gParmObject.addElement(super.moduleName + super.componentName);
  766.       this.gParmObject.addElement(this);
  767.       var1.gParm.addElement(this.gParmObject);
  768.       ((Component)var2).paintAll(((Component)var2).getGraphics());
  769.    }
  770.  
  771.    void retrieveTable() {
  772.       this.tableIndex = -1;
  773.  
  774.       for(int var1 = 0; var1 < super.user.gParm.size(); ++var1) {
  775.          if (super.user.gParm.elementAt(var1) instanceof Vector) {
  776.             Vector var2 = (Vector)super.user.gParm.elementAt(var1);
  777.             if (((String)var2.elementAt(0)).compareTo("SelectDSN" + super.componentName) == 0) {
  778.                this.targetDSN = (JDPSelectDSN)var2.elementAt(3);
  779.             }
  780.  
  781.             if (((String)var2.elementAt(0)).compareTo("SelectTable" + super.componentName) == 0) {
  782.                this.target = (JDPSelectTable)var2.elementAt(1);
  783.                this.tableIndex = this.target.tables.getSelectedIndex();
  784.             }
  785.          }
  786.       }
  787.  
  788.    }
  789. }
  790.