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

  1. import java.awt.BorderLayout;
  2. import java.awt.Component;
  3. import java.awt.Container;
  4. import java.awt.Event;
  5. import java.awt.FlowLayout;
  6. import java.awt.Font;
  7. import java.awt.GridLayout;
  8. import java.awt.Label;
  9. import java.awt.Panel;
  10. import java.awt.TextField;
  11. import java.lang.reflect.Constructor;
  12. import java.lang.reflect.Method;
  13. import java.util.StringTokenizer;
  14. import java.util.Vector;
  15.  
  16. public class JDPInstanceMgr extends JDPClassLayout {
  17.    JDPLayoutMgr target;
  18.    JDPJagg jaggSQL;
  19.    JDPPopupMessage popuppanel;
  20.    Panel targetPanel;
  21.    JDPDragItem dragPanel;
  22.    Panel Main;
  23.    JDPChiselFramePanel ChiselPanel1;
  24.    Panel Panel2;
  25.    Panel Panel1;
  26.    JDPTreePicker Constructors;
  27.    JDPTreePicker Parameters;
  28.    JDPTreePicker Objects;
  29.    Panel ParametersPanel;
  30.    JDPButtons JDPButtons1;
  31.    JDPScrollPanel constantPanel;
  32.    Label constantLabel;
  33.    TextField constantValue;
  34.    JDPChoice constantChoice;
  35.    JDPChoice layoutChoice;
  36.    int constructorIndex;
  37.    String[] layoutEntry;
  38.    int[] icons;
  39.    Component baseComponent;
  40.    Object thisComponent;
  41.    String compType;
  42.    String compPosition;
  43.    String[] text;
  44.    String[][] properties;
  45.    Vector treeVector;
  46.    static Vector constructorCache;
  47.    boolean justReloaded;
  48.  
  49.    Class getClass(JDPTreeBranch var1) {
  50.       return this.getClass(var1.compType, var1.thisObject);
  51.    }
  52.  
  53.    Class getClass(String var1) {
  54.       return this.getClass(var1, (Object)null);
  55.    }
  56.  
  57.    Class getClass(String var1, Object var2) {
  58.       Class var3 = null;
  59.       if (var1.indexOf(" ") > 0) {
  60.          var1 = var1.substring(0, var1.indexOf(" "));
  61.       }
  62.  
  63.       if (var1.equals("int")) {
  64.          return Integer.TYPE;
  65.       } else if (var1.equals("boolean")) {
  66.          return Boolean.TYPE;
  67.       } else if (var1.equals("char")) {
  68.          return Character.TYPE;
  69.       } else if (var1.equals("byte")) {
  70.          return Byte.TYPE;
  71.       } else if (var1.equals("short")) {
  72.          return Short.TYPE;
  73.       } else if (var1.equals("long")) {
  74.          return Long.TYPE;
  75.       } else if (var1.equals("float")) {
  76.          return Float.TYPE;
  77.       } else if (var1.equals("double")) {
  78.          return Double.TYPE;
  79.       } else if (var1.equals("void")) {
  80.          return Void.TYPE;
  81.       } else {
  82.          if (var2 != null && !(var2 instanceof String)) {
  83.             var1 = var2.toString();
  84.          }
  85.  
  86.          if (var1.equals("String")) {
  87.             var1 = "java.lang.String";
  88.          }
  89.  
  90.          if (var2 != null && var2 instanceof String) {
  91.             var1 = "java.lang.String";
  92.          }
  93.  
  94.          if (var1.equals("JDPGridLayout")) {
  95.             var1 = "JDPTextGrid";
  96.          }
  97.  
  98.          if (var1.equals("JDPChartLayout")) {
  99.             var1 = "JDPChart";
  100.          }
  101.  
  102.          if (var1.indexOf("[") > 0) {
  103.             var1 = var1.substring(0, var1.indexOf("["));
  104.          }
  105.  
  106.          if (var1.indexOf(" ") > 0) {
  107.             var1 = var1.substring(0, var1.indexOf(" "));
  108.          }
  109.  
  110.          if (var1.indexOf("@") > 0) {
  111.             var1 = var1.substring(0, var1.indexOf("@"));
  112.          }
  113.  
  114.          try {
  115.             var3 = Class.forName(var1);
  116.          } catch (Exception var6) {
  117.             ((Throwable)var6).printStackTrace();
  118.          }
  119.  
  120.          return var3;
  121.       }
  122.    }
  123.  
  124.    public void restoreBranchObjects(JDPTreeBranch var1) {
  125.       String var2 = var1.name.trim();
  126.       if (var2.startsWith("String (")) {
  127.          String var3 = var2.substring(9, var2.length() - 2);
  128.          var1.thisObject = new String(var3);
  129.       } else if (var2.startsWith("LayoutManager (")) {
  130.          String var5 = var2.substring(15, var2.length() - 1);
  131.          if (var5.equals("BorderLayout")) {
  132.             var1.thisObject = new BorderLayout();
  133.          } else if (var5.equals("GridLayout")) {
  134.             var1.thisObject = new GridLayout(1, 1);
  135.          } else if (var5.equals("FlowLayout")) {
  136.             var1.thisObject = new FlowLayout();
  137.          } else if (var5.equals("JDPLineLayout")) {
  138.             var1.thisObject = new JDPLineLayout();
  139.          } else if (var5.equals("JDPRowLayout")) {
  140.             var1.thisObject = new JDPRowLayout();
  141.          } else {
  142.             var1.thisObject = new BorderLayout();
  143.          }
  144.       } else if (var2.startsWith("int (")) {
  145.          String var6 = var2.substring(5, var2.length() - 1);
  146.          var1.thisObject = new Integer(var6);
  147.       } else if (var2.startsWith("boolean (")) {
  148.          String var7 = var2.substring(9, var2.length() - 1);
  149.          if (var7.equals("true")) {
  150.             var1.thisObject = new Boolean(true);
  151.          } else {
  152.             var1.thisObject = new Boolean(false);
  153.          }
  154.       } else if (var2.startsWith("byte (")) {
  155.          String var8 = var2.substring(6, var2.length() - 1);
  156.          var1.thisObject = new Byte(var8);
  157.       } else if (var2.startsWith("char (")) {
  158.          String var9 = var2.substring(6, 7);
  159.          var1.thisObject = new Character(var9.charAt(0));
  160.       } else if (var2.startsWith("short (")) {
  161.          String var10 = var2.substring(7, var2.length() - 1);
  162.          var1.thisObject = new Short(var10);
  163.       } else if (var2.startsWith("long (")) {
  164.          String var11 = var2.substring(6, var2.length() - 1);
  165.          var1.thisObject = new Long(var11);
  166.       } else if (var2.startsWith("float (")) {
  167.          String var12 = var2.substring(7, var2.length() - 1);
  168.          var1.thisObject = new Float(var12);
  169.       } else if (var2.startsWith("double (")) {
  170.          String var13 = var2.substring(8, var2.length() - 1);
  171.          var1.thisObject = new Double(var13);
  172.       } else {
  173.          var1.thisObject = this.locateObject(var1);
  174.       }
  175.  
  176.       if (var1.leaves != null) {
  177.          for(int var14 = 0; var14 < var1.leaves.size(); ++var14) {
  178.             JDPTreeBranch var4 = (JDPTreeBranch)var1.leaves.elementAt(var14);
  179.             this.restoreBranchObjects(var4);
  180.          }
  181.       }
  182.  
  183.    }
  184.  
  185.    boolean restoreSelections() {
  186.       JDPSaveProps var1 = super.user.saveProperties;
  187.       if (super.user.prevProperties != null) {
  188.          var1 = super.user.prevProperties;
  189.       }
  190.  
  191.       String var2 = super.moduleName + super.componentName;
  192.       this.constructorIndex = -1;
  193.       this.Parameters.setRoot("", false);
  194.       var1.restoreObject(this.Parameters.treeRoot, var2, "Parms");
  195.       this.constructorIndex = var1.restoreObject(this.constructorIndex, var2, "conIdx", 0);
  196.       this.Parameters.resetSelections();
  197.       this.Parameters.reDraw();
  198.       this.setConstantDisplay((JDPTreeBranch)null);
  199.       if (this.constructorIndex >= 0) {
  200.          this.Constructors.select(this.constructorIndex);
  201.       }
  202.  
  203.       this.restoreBranchObjects(this.Parameters.treeRoot);
  204.       if (this.target.projectLoading) {
  205.          this.createNewInstance();
  206.       }
  207.  
  208.       return true;
  209.    }
  210.  
  211.    public void loadParameterTree(String var1) {
  212.       this.Parameters.setRoot("Constructor Parameters", true);
  213.       int[] var2 = new int[]{8, 1, 2, 1};
  214.       String[] var3 = new String[]{"", null, null, null};
  215.       boolean[] var4 = new boolean[]{true, false, true, false};
  216.       this.Parameters.setIcons(var2);
  217.       this.Parameters.setExpanded(var4);
  218.       int var5 = 0;
  219.       int var6 = var1.indexOf("(");
  220.       if (var6 >= 0) {
  221.          String var7 = var1.substring(var6);
  222.          StringTokenizer var8 = new StringTokenizer(var7, ",()");
  223.  
  224.          while(var8.hasMoreTokens()) {
  225.             ++var5;
  226.             var3[0] = var8.nextToken();
  227.  
  228.             for(var2[1] = 1; this.Parameters.addEntry(var3, var2, var3[0]); var3[0] = var3[0] + " ") {
  229.             }
  230.          }
  231.       } else {
  232.          var3[0] = var1;
  233.          var2[1] = 1;
  234.          this.Parameters.addEntry(var3, var2, var3[0]);
  235.       }
  236.  
  237.       this.Parameters.reDraw();
  238.       this.Objects.setRoot("Choose an Object or method", true);
  239.    }
  240.  
  241.    Vector retrieveConstructors(String var1) {
  242.       if (constructorCache == null) {
  243.          constructorCache = new Vector();
  244.       }
  245.  
  246.       for(int var2 = 0; var2 < constructorCache.size(); ++var2) {
  247.          Vector var3 = (Vector)constructorCache.elementAt(var2);
  248.          String var4 = (String)var3.elementAt(0);
  249.          if (var4.equals(var1)) {
  250.             return (Vector)var3.elementAt(1);
  251.          }
  252.       }
  253.  
  254.       Vector var5 = new Vector();
  255.       this.jaggSQL.loadSettings(super.user);
  256.       this.jaggSQL.setFCTN("JavaBeanGetConstructors");
  257.       this.jaggSQL.setFCTNP(var1 + ";");
  258.       this.jaggSQL.execSQL("", var5);
  259.       Vector var6 = new Vector();
  260.       var6.addElement(var1);
  261.       var6.addElement(var5);
  262.       constructorCache.addElement(var6);
  263.       return var5;
  264.    }
  265.  
  266.    public void createNewInstance() {
  267.       JDPTreeBranch var1 = null;
  268.       JDPTreeBranch var2 = null;
  269.       Object var3 = null;
  270.       Object var4 = null;
  271.       Object var5 = null;
  272.       Object var6 = null;
  273.  
  274.       try {
  275.          Class var7 = Class.forName(this.Constructors.treeRoot.name);
  276.          if (System.getProperty("java.version").startsWith("1.0")) {
  277.             var6 = var7.newInstance();
  278.          } else {
  279.             Constructor[] var8 = var7.getConstructors();
  280.             int var9 = this.Parameters.treeRoot.leaves.size();
  281.             Object[] var10 = new Object[var9];
  282.  
  283.             for(int var11 = 0; var11 < var9; ++var11) {
  284.                var1 = (JDPTreeBranch)this.Parameters.treeRoot.leaves.elementAt(var11);
  285.                if (var1.leaves.size() > 0) {
  286.                   var2 = (JDPTreeBranch)var1.leaves.elementAt(0);
  287.                   var10[var11] = var2.thisObject;
  288.                   if (var2.leaves != null && var2.leaves.size() == 1) {
  289.                      JDPTreeBranch var17 = (JDPTreeBranch)var2.leaves.elementAt(0);
  290.                      if (var17.thisObject == null) {
  291.                         var17.thisObject = this.locateObject(var2);
  292.                      }
  293.  
  294.                      Class[] var18 = new Class[0];
  295.                      var5 = new Object[0];
  296.                      if (var17.leaves != null && var17.leaves.size() >= 1) {
  297.                         var18 = new Class[var17.leaves.size()];
  298.                         var5 = new Object[var17.leaves.size()];
  299.  
  300.                         for(int var12 = 0; var12 < var18.length; ++var12) {
  301.                            JDPTreeBranch var13 = (JDPTreeBranch)var17.leaves.elementAt(var12);
  302.                            if (var13.leaves != null && var13.leaves.size() >= 1) {
  303.                               JDPTreeBranch var14 = (JDPTreeBranch)var13.leaves.elementAt(0);
  304.                               var18[var12] = this.getClass(var14);
  305.                               ((Object[])var5)[var12] = var14.thisObject;
  306.                            }
  307.                         }
  308.                      }
  309.  
  310.                      if (var17.thisObject != null) {
  311.                         Class var22 = this.getClass(var17);
  312.                         Method var24 = var22.getMethod(var17.name.substring(0, var17.name.length() - 2), var18);
  313.                         var10[var11] = var24.invoke(var17.thisObject, (Object[])var5);
  314.                      } else if (var2.thisObject != null) {
  315.                         Class var23 = this.getClass(var2);
  316.                         Method var25 = var23.getMethod(var2.name.substring(0, var2.name.length()), var18);
  317.                         Object[] var10000 = new Object[1];
  318.                         var10[var11] = var25.invoke(var2.thisObject, (Object[])var5);
  319.                      } else {
  320.                         super.user.mainmsg.setStatusMsg("Could not invoke method on Object to create new instance", 20);
  321.                      }
  322.                   }
  323.                }
  324.             }
  325.  
  326.             if (var10.length == 0) {
  327.                var6 = var7.newInstance();
  328.             } else if (var1.name.equals("Create from other object")) {
  329.                var6 = var2.thisObject;
  330.             } else if (var10 != null && var10.length > 0 && var10[0] != null) {
  331.                var6 = var8[this.constructorIndex].newInstance(var10);
  332.             } else {
  333.                var6 = var2.thisObject;
  334.             }
  335.          }
  336.       } catch (Exception var16) {
  337.          super.user.mainmsg.setStatusMsg("Failed to create a new instance of the selected object with the required parameters", 15);
  338.          System.out.println("exception: " + ((Throwable)var16).getLocalizedMessage());
  339.          ((Throwable)var16).toString();
  340.          ((Throwable)var16).printStackTrace();
  341.          return;
  342.       }
  343.  
  344.       JDPTreeBranch var21 = this.target.cMgr.currentBranch;
  345.       if (this.target.projectLoading) {
  346.          this.target.lView.removeSelectedLeaf();
  347.          this.target.lView.addEntry(this.layoutEntry, this.icons, this.baseComponent, var6, this.compType, this.compPosition, this.text, this.properties, this.treeVector);
  348.          var21 = this.target.lView.tree.getLastAddedBranch();
  349.       } else {
  350.          var21.thisObject = var6;
  351.          this.target.interactionMgr.loadMethodTree(var21, false);
  352.       }
  353.  
  354.       var21.relatedComps = new Panel[1];
  355.       var21.relatedComps[0] = this;
  356.       if (this.justReloaded && this.properties != null) {
  357.          var21.text = this.text;
  358.          var21.properties = this.properties;
  359.          this.target.cMgr.updateProperties(0);
  360.       }
  361.  
  362.       if (!(var6 instanceof Component) && var21.compPosition != null && !var21.compPosition.equals("")) {
  363.          var21.compPosition = "";
  364.          var21.properties = null;
  365.          this.target.cMgr.setProperties(var21);
  366.       }
  367.  
  368.       this.justReloaded = false;
  369.       if (!this.target.projectLoading) {
  370.          this.target.reLoadComponents(this.target.compTree);
  371.       }
  372.  
  373.    }
  374.  
  375.    Object locateObject(JDPTreeBranch var1) {
  376.       JDPTreeBranch[] var2 = this.target.layoutTree.getTreeBranch(var1.name);
  377.       if (var2 != null) {
  378.          return var2[var2.length - 1].thisObject;
  379.       } else if (var1.name.equals("user")) {
  380.          return super.user;
  381.       } else if (var1.name.equals("user.cust")) {
  382.          return super.user.cust;
  383.       } else if (var1.name.equals("user.u")) {
  384.          return super.user.u;
  385.       } else {
  386.          return var1.name.equals("user.mainmsg") ? super.user.mainmsg : null;
  387.       }
  388.    }
  389.  
  390.    boolean saveSelections() {
  391.       JDPSaveProps var1 = super.user.saveProperties;
  392.       String var2 = super.moduleName + super.componentName;
  393.       var1.saveObject(this.Parameters.treeRoot, var2, "Parms");
  394.       var1.saveObject(this.constructorIndex, var2, "conIdx", 0);
  395.       return true;
  396.    }
  397.  
  398.    public void setParameterObject(JDPTreeBranch[] var1, JDPTreeBranch[] var2, int var3, int var4) {
  399.       int[] var5 = new int[21];
  400.       var5[0] = 8;
  401.       var5[1] = 1;
  402.       var5[2] = 2;
  403.       var5[3] = 1;
  404.       String[] var6 = new String[20];
  405.       boolean[] var7 = new boolean[21];
  406.  
  407.       for(int var8 = 0; var8 < var7.length; ++var8) {
  408.          var7[var8] = true;
  409.       }
  410.  
  411.       this.Parameters.setIcons(var5);
  412.       this.Parameters.setExpanded(var7);
  413.  
  414.       for(int var12 = 0; var12 < var4; ++var12) {
  415.          var6[var12] = var2[var12 + 1].name;
  416.       }
  417.  
  418.       if (var3 == 3) {
  419.          String var13 = var1[var1.length - 1].name;
  420.          String var9 = var13.substring(var13.indexOf("("));
  421.          var13 = var13.substring(0, var13.indexOf("(")) + "()";
  422.          var6[var4] = var1[var1.length - 3].name.trim();
  423.          var6[var4 + 1] = var13;
  424.          var5[var4 + 1] = var1[var1.length - 3].icon;
  425.          var5[var4 + 2] = 2;
  426.          var2[var4].expanded = true;
  427.          var2[var4].leaves = null;
  428.          var2[var4].leaves = new Vector();
  429.          if (var9.length() > 2) {
  430.             var7[var4 + 2] = true;
  431.             this.Parameters.setExpanded(var7);
  432.          }
  433.  
  434.          this.Parameters.addEntry(var6, var5, var1[var3].name);
  435.          JDPTreeBranch var10 = this.Parameters.getLastAddedBranch();
  436.          this.Parameters.getTreeBranch(var10)[var4 + 1].iconImage = var1[var1.length - 3].iconImage;
  437.          var10.thisObject = this.locateObject(var1[1]);
  438.          StringTokenizer var11 = new StringTokenizer(var9, "(),");
  439.  
  440.          while(var11.hasMoreTokens()) {
  441.             var6[var4 + 2] = var11.nextToken();
  442.             var5[var4 + 3] = 1;
  443.             this.Parameters.addEntry(var6, var5, var6[var4 + 2]);
  444.          }
  445.       } else if (var3 == 1) {
  446.          var6[var4] = var1[var1.length - 1].name.trim();
  447.          var5[var4 + 1] = var1[var1.length - 1].icon;
  448.          var2[var4].expanded = true;
  449.          var2[var4].leaves = null;
  450.          var2[var4].leaves = new Vector();
  451.          this.Parameters.addEntry(var6, var5, var1[1].name);
  452.          JDPTreeBranch var15 = this.Parameters.getLastAddedBranch();
  453.          var15.thisObject = var1[1].thisObject;
  454.          if (var15.name.equals("user")) {
  455.             var15.thisObject = super.user;
  456.          }
  457.       }
  458.  
  459.       this.Parameters.reDraw();
  460.       this.setConstantDisplay(var2[var4]);
  461.    }
  462.  
  463.    void refresh() {
  464.       if (super.thisBranch != null && super.thisBranch.relatedComps != null && super.thisBranch.relatedComps[0] == this) {
  465.          if (super.thisBranch != null) {
  466.             this.loadConstructors(super.thisBranch.compType);
  467.          }
  468.  
  469.          this.restoreSelections();
  470.          String[] var1 = this.target.lView.tree.getSelectedBranch();
  471.          if (var1 != null) {
  472.             this.layoutEntry = new String[var1.length - 1];
  473.  
  474.             for(int var2 = 0; var2 < var1.length - 1; ++var2) {
  475.                this.layoutEntry[var2] = var1[var2 + 1];
  476.             }
  477.  
  478.             this.icons = this.target.lView.tree.getSelectedBranchIcons();
  479.             JDPTreeBranch var3 = this.target.lView.tree.getCurrentBranch();
  480.             if (var3 != null) {
  481.                this.compType = var3.compType;
  482.                this.text = var3.text;
  483.                this.properties = var3.properties;
  484.                this.justReloaded = true;
  485.             }
  486.          }
  487.  
  488.       }
  489.    }
  490.  
  491.    public boolean handleEvent(Event var1) {
  492.       switch (var1.id) {
  493.          case 401:
  494.             if (var1.key == 9 && var1.modifiers != 1) {
  495.                if (var1.target.equals(this.Constructors)) {
  496.                   super.user.u.cursor(this.Parameters);
  497.                   return true;
  498.                }
  499.  
  500.                if (var1.target.equals(this.Parameters)) {
  501.                   super.user.u.cursor(this.Objects);
  502.                   return true;
  503.                }
  504.  
  505.                if (var1.target.equals(this.Objects)) {
  506.                   super.user.u.cursor(this.JDPButtons1);
  507.                   return true;
  508.                }
  509.  
  510.                if (var1.target.equals(this.JDPButtons1)) {
  511.                   super.user.u.cursor(this.Constructors);
  512.                   return true;
  513.                }
  514.             }
  515.  
  516.             if (var1.key == 9 && var1.modifiers == 1) {
  517.                if (var1.target.equals(this.Constructors)) {
  518.                   super.user.u.cursor(this.Objects);
  519.                   return true;
  520.                }
  521.  
  522.                if (var1.target.equals(this.Parameters)) {
  523.                   super.user.u.cursor(this.Constructors);
  524.                   return true;
  525.                }
  526.  
  527.                if (var1.target.equals(this.Objects)) {
  528.                   super.user.u.cursor(this.Parameters);
  529.                   return true;
  530.                }
  531.  
  532.                if (var1.target.equals(this.JDPButtons1)) {
  533.                   super.user.u.cursor(this.Objects);
  534.                   return true;
  535.                }
  536.             }
  537.  
  538.             return false;
  539.          case 503:
  540.          case 504:
  541.          case 505:
  542.             this.popuppanel.postEvent(var1);
  543.             return false;
  544.          case 701:
  545.             String var2 = (String)var1.arg;
  546.             if (!var1.target.equals(this.Parameters) || this.Parameters.getSelectedLvl() != 1 && this.Parameters.getSelectedLvl() != 4) {
  547.                if (var1.target.equals(this.Objects) && this.Objects.getSelectedLvl() == 1 && var2.equals("BranchOpen")) {
  548.                   JDPTreeBranch var3 = this.Objects.getCurrentBranch();
  549.                   String var4 = this.Parameters.getSelectedItem().trim();
  550.                   if (var4.equals("Create from other object")) {
  551.                      var4 = this.Constructors.treeRoot.name;
  552.                   }
  553.  
  554.                   if (var3.leaves.size() <= 2) {
  555.                      this.target.interactionMgr.loadSourceBuilderTree(this.Objects, var4, var3);
  556.                   }
  557.  
  558.                   return true;
  559.                } else if (var1.target.equals(this.Objects) && (this.Parameters.getSelectedLvl() == 1 || this.Parameters.getSelectedLvl() == 4) && (this.Objects.getSelectedLvl() == 1 || this.Objects.getSelectedLvl() == 3) && !var2.equals("BranchOpen")) {
  560.                   this.setParameterObject(this.Objects.getTreeBranch(this.Objects.getCurrentBranch()), this.Parameters.getTreeBranch(this.Parameters.getCurrentBranch()), this.Objects.getSelectedLvl(), this.Parameters.getSelectedLvl());
  561.                   return true;
  562.                } else {
  563.                   return false;
  564.                }
  565.             } else {
  566.                this.setConstantDisplay(this.Parameters.getCurrentBranch());
  567.                this.loadObjectTree(this.target.compTree, this.Parameters.getSelectedItem().trim());
  568.                return true;
  569.             }
  570.          case 1001:
  571.             if (var1.target.equals(this.Constructors) && this.Constructors.getSelectedLvl() == 1) {
  572.                this.constructorIndex = this.Constructors.getSelectedIndex();
  573.                this.loadParameterTree(this.Constructors.getSelectedItem());
  574.                this.target.setAppChanged(true);
  575.                return true;
  576.             } else {
  577.                if (!var1.target.equals(this.Parameters) || this.Parameters.getSelectedLvl() != 1 && this.Parameters.getSelectedLvl() != 4) {
  578.                   if (!var1.target.equals(this.Objects) || this.Parameters.getSelectedLvl() != 1 && this.Parameters.getSelectedLvl() != 4 || this.Objects.getSelectedLvl() != 1 && this.Objects.getSelectedLvl() != 3) {
  579.                      if (var1.target.equals(this.JDPButtons1.button[0])) {
  580.                         if (this.constantPanel.isVisible()) {
  581.                            this.setConstantValue(this.Parameters.getTreeBranch(this.Parameters.getCurrentBranch()), this.Parameters.getSelectedLvl());
  582.                         }
  583.  
  584.                         this.saveSelections();
  585.                         this.createNewInstance();
  586.                         this.target.setAppChanged(true);
  587.                         this.Parameters.reDraw();
  588.                         return true;
  589.                      }
  590.  
  591.                      if (var1.target.equals(this.JDPButtons1.button[1])) {
  592.                         this.target.lView.removeSelectedLeaf();
  593.                         this.target.setButton("Layout");
  594.                         return true;
  595.                      }
  596.  
  597.                      if (var1.target.equals(this.constantChoice)) {
  598.                         this.setConstantValue(this.Parameters.getTreeBranch(this.Parameters.getCurrentBranch()), this.Parameters.getSelectedLvl());
  599.                         this.target.setAppChanged(true);
  600.                         this.Parameters.reDraw();
  601.                         return true;
  602.                      }
  603.  
  604.                      if (var1.target.equals(this.layoutChoice)) {
  605.                         this.setConstantValue(this.Parameters.getTreeBranch(this.Parameters.getCurrentBranch()), this.Parameters.getSelectedLvl());
  606.                         this.target.setAppChanged(true);
  607.                         this.Parameters.reDraw();
  608.                         return true;
  609.                      }
  610.  
  611.                      if (var1.target.equals(this.constantValue)) {
  612.                         this.setConstantValue(this.Parameters.getTreeBranch(this.Parameters.getCurrentBranch()), this.Parameters.getSelectedLvl());
  613.                         this.Parameters.reDraw();
  614.                         this.target.setAppChanged(true);
  615.                         return true;
  616.                      }
  617.  
  618.                      return false;
  619.                   }
  620.  
  621.                   this.setParameterObject(this.Objects.getTreeBranch(this.Objects.getCurrentBranch()), this.Parameters.getTreeBranch(this.Parameters.getCurrentBranch()), this.Objects.getSelectedLvl(), this.Parameters.getSelectedLvl());
  622.                   this.target.setAppChanged(true);
  623.                   return true;
  624.                }
  625.  
  626.                this.setConstantDisplay(this.Parameters.getCurrentBranch());
  627.                this.loadObjectTree(this.target.compTree, this.Parameters.getSelectedItem().trim());
  628.                this.target.setAppChanged(true);
  629.                return true;
  630.             }
  631.          case 1005:
  632.             if (var1.target.equals(this.constantValue)) {
  633.                this.setConstantValue(this.Parameters.getTreeBranch(this.Parameters.getCurrentBranch()), this.Parameters.getSelectedLvl());
  634.                this.Parameters.reDraw();
  635.                this.target.setAppChanged(true);
  636.                return true;
  637.             }
  638.  
  639.             return true;
  640.          default:
  641.             return false;
  642.       }
  643.    }
  644.  
  645.    public void loadObjectTree(JDPTreeBranch var1, String var2) {
  646.       int[] var3 = new int[]{4, 8, 1};
  647.       String[] var4 = new String[]{"", null, null, null};
  648.       boolean[] var5 = new boolean[]{true, false, true, false};
  649.       this.Objects.setIcons(var3);
  650.       this.Objects.setExpanded(var5);
  651.       if (var2.equals("Create from other object")) {
  652.          var2 = this.Constructors.treeRoot.name;
  653.       }
  654.  
  655.       if (var1.equals(this.target.compTree)) {
  656.          this.Objects.setRoot("Choose an Object or method", true);
  657.          if (this.Parameters.getSelectedLvl() == 1) {
  658.             this.target.interactionMgr.loadSourceBuilderTree(this.Objects, var2);
  659.          }
  660.  
  661.          this.Objects.treeRoot.name = "Choose an Object or method";
  662.          if (var2.equals("LayoutManager")) {
  663.             var4[0] = var2 + " (\"BorderLayout\")";
  664.             var3[1] = 8;
  665.             this.Objects.addEntry(var4, var3, var4[0]);
  666.          }
  667.  
  668.          if (var2.equals("String")) {
  669.             var4[0] = var2 + " (\"String\")";
  670.             var3[1] = 8;
  671.             this.Objects.addEntry(var4, var3, var4[0]);
  672.          }
  673.  
  674.          if (var2.equals("int") || var2.equals("short") || var2.equals("long") || var2.equals("float") || var2.equals("double")) {
  675.             var4[0] = var2 + " (0)";
  676.             var3[1] = 8;
  677.             this.Objects.addEntry(var4, var3, var4[0]);
  678.          }
  679.  
  680.          if (var2.equals("boolean")) {
  681.             var4[0] = var2 + " (true)";
  682.             var3[1] = 8;
  683.             this.Objects.addEntry(var4, var3, var4[0]);
  684.          }
  685.  
  686.          if (var2.equals("byte")) {
  687.             var4[0] = var2 + " (c)";
  688.             var3[1] = 8;
  689.             this.Objects.addEntry(var4, var3, var4[0]);
  690.          }
  691.  
  692.          if (var2.equals("char")) {
  693.             var4[0] = var2 + " (b)";
  694.             var3[1] = 8;
  695.             this.Objects.addEntry(var4, var3, var4[0]);
  696.          }
  697.       }
  698.  
  699.       if (!var1.equals(this.target.layoutTree.getCurrentBranch())) {
  700.          if (!var1.compType.equals(var2) && (!var1.compType.startsWith("java") || !var1.compType.endsWith(var2) || var2.equals("Create from other object"))) {
  701.             if (var1.thisObject != null) {
  702.                try {
  703.                   Class var9 = var1.thisObject.getClass();
  704.                   if (var9 == null) {
  705.                      var9 = Class.forName(var1.compType);
  706.                   }
  707.  
  708.                   for(; var9 != null; var9 = var9.getSuperclass()) {
  709.                      if (var9.getName().equals(var2) || var9.getName().startsWith("java") && var9.getName().endsWith(var2)) {
  710.                         var4[0] = var1.name + " ";
  711.                         var3[1] = var1.icon;
  712.                         this.Objects.addEntry(var4, var3, var4[0]);
  713.                         JDPTreeBranch var7 = this.Objects.getLastAddedBranch();
  714.                         var7.iconImage = var1.iconImage;
  715.                      }
  716.                   }
  717.                } catch (Exception var8) {
  718.                }
  719.             }
  720.          } else {
  721.             var4[0] = var1.name + " ";
  722.             var3[1] = var1.icon;
  723.             this.Objects.addEntry(var4, var3, var4[0]);
  724.             JDPTreeBranch var6 = this.Objects.getLastAddedBranch();
  725.             var6.thisObject = var1.thisObject;
  726.             var6.iconImage = var1.iconImage;
  727.          }
  728.       }
  729.  
  730.       if (var1.leaves != null) {
  731.          for(int var10 = 0; var10 < var1.leaves.size(); ++var10) {
  732.             JDPTreeBranch var11 = (JDPTreeBranch)var1.leaves.elementAt(var10);
  733.             this.loadObjectTree(var11, var2);
  734.          }
  735.       }
  736.  
  737.       this.Objects.reDraw();
  738.    }
  739.  
  740.    void addEntry(String[] var1, int[] var2, Component var3, Object var4, String var5, String var6, String[] var7, String[][] var8, Vector var9) {
  741.       this.layoutEntry = var1;
  742.       this.icons = var2;
  743.       this.baseComponent = var3;
  744.       this.thisComponent = var4;
  745.       this.compType = var5;
  746.       this.compPosition = var6;
  747.       this.text = var7;
  748.       this.properties = var8;
  749.       this.treeVector = var9;
  750.    }
  751.  
  752.    public void setConstantDisplay(JDPTreeBranch var1) {
  753.       this.constantPanel.remove(this.constantValue);
  754.       this.constantPanel.remove(this.constantChoice);
  755.       this.constantPanel.remove(this.layoutChoice);
  756.       this.ParametersPanel.remove(this.constantPanel);
  757.       if (var1 == null) {
  758.          this.Main.layout();
  759.          this.Main.paintAll(this.Main.getGraphics());
  760.       } else {
  761.          var1.name.trim();
  762.          String var2 = "";
  763.          if (var1.leaves != null && var1.leaves.size() == 1) {
  764.             JDPTreeBranch var3 = (JDPTreeBranch)var1.leaves.elementAt(0);
  765.             String var4 = var3.name.trim();
  766.             int var5 = var4.indexOf("(") + 1;
  767.             if (var4.startsWith("LayoutManager (")) {
  768.                var2 = var4.substring(var5, var4.length() - 1);
  769.                this.constantLabel.setText("Layout:  ");
  770.                this.layoutChoice.select(var2);
  771.                this.constantPanel.add("Right", this.layoutChoice);
  772.                this.ParametersPanel.add("South", this.constantPanel);
  773.                this.ParametersPanel.layout();
  774.                this.ParametersPanel.paintAll(this.ParametersPanel.getGraphics());
  775.                this.Main.layout();
  776.                this.Main.paintAll(this.Main.getGraphics());
  777.                this.layoutChoice.requestFocus();
  778.                return;
  779.             }
  780.  
  781.             if (var4.startsWith("boolean (")) {
  782.                var2 = var4.substring(var5, var4.length() - 1);
  783.                this.constantLabel.setText("Boolean value:  ");
  784.                this.constantChoice.select(var2);
  785.                this.constantPanel.add("Right", this.constantChoice);
  786.                this.ParametersPanel.add("South", this.constantPanel);
  787.                this.ParametersPanel.layout();
  788.                this.ParametersPanel.paintAll(this.ParametersPanel.getGraphics());
  789.                this.Main.layout();
  790.                this.Main.paintAll(this.Main.getGraphics());
  791.                this.constantChoice.requestFocus();
  792.                return;
  793.             }
  794.  
  795.             if (var4.startsWith("char (")) {
  796.                var2 = var4.substring(var5, var5 + 1);
  797.                this.constantLabel.setText("Character value:  ");
  798.                this.constantValue.setText(var2);
  799.                this.constantPanel.add("Right", this.constantValue);
  800.                this.ParametersPanel.add("South", this.constantPanel);
  801.                this.ParametersPanel.layout();
  802.                this.ParametersPanel.paintAll(this.ParametersPanel.getGraphics());
  803.                this.Main.layout();
  804.                this.Main.paintAll(this.Main.getGraphics());
  805.                this.constantValue.selectAll();
  806.                this.constantValue.requestFocus();
  807.                return;
  808.             }
  809.  
  810.             if (var4.startsWith("String (")) {
  811.                var2 = var4.substring(var5 + 1, var4.length() - 2);
  812.                this.constantLabel.setText(var4.substring(0, 1).toUpperCase() + var4.substring(1, var5 - 2) + " value:  ");
  813.                this.constantValue.setText(var2);
  814.                this.constantPanel.add("Right", this.constantValue);
  815.                this.ParametersPanel.add("South", this.constantPanel);
  816.                this.ParametersPanel.layout();
  817.                this.ParametersPanel.paintAll(this.ParametersPanel.getGraphics());
  818.                this.Main.layout();
  819.                this.Main.paintAll(this.Main.getGraphics());
  820.                this.constantValue.selectAll();
  821.                this.constantValue.requestFocus();
  822.                return;
  823.             }
  824.  
  825.             if (var4.startsWith("int (") || var4.startsWith("byte (") || var4.startsWith("short (") || var4.startsWith("long (") || var4.startsWith("float (") || var4.startsWith("double (")) {
  826.                var2 = var4.substring(var5, var4.length() - 1);
  827.                this.constantLabel.setText(var4.substring(0, 1).toUpperCase() + var4.substring(1, var5 - 2) + " value:  ");
  828.                this.constantValue.setText(var2);
  829.                this.constantPanel.add("Right", this.constantValue);
  830.                this.ParametersPanel.add("South", this.constantPanel);
  831.                this.ParametersPanel.layout();
  832.                this.ParametersPanel.paintAll(this.ParametersPanel.getGraphics());
  833.                this.Main.layout();
  834.                this.Main.paintAll(this.Main.getGraphics());
  835.                this.constantValue.selectAll();
  836.                this.constantValue.requestFocus();
  837.             }
  838.          }
  839.  
  840.       }
  841.    }
  842.  
  843.    public boolean loadConstructors(String var1) {
  844.       boolean var2 = false;
  845.       boolean var3 = true;
  846.       if (super.thisBranch == null || super.thisBranch.relatedComps == null || super.thisBranch.relatedComps[0] != this) {
  847.          var3 = false;
  848.       }
  849.  
  850.       Vector var4 = this.retrieveConstructors(var1);
  851.       if (var3) {
  852.          this.Constructors.setRoot(var1, true);
  853.       }
  854.  
  855.       int[] var5 = new int[]{4, 8};
  856.       String[] var6 = new String[1];
  857.  
  858.       for(int var7 = 0; var7 < var4.size(); ++var7) {
  859.          if (!((String)var4.elementAt(var7)).equals(" ")) {
  860.             StringTokenizer var8 = new StringTokenizer((String)var4.elementAt(var7), this.jaggSQL.getSEP());
  861.             var6[0] = "(";
  862.             int var9 = var8.countTokens() - 1;
  863.             var8.nextToken();
  864.  
  865.             for(int var10 = 0; var10 < var9; ++var10) {
  866.                if (var10 > 0) {
  867.                   var6[0] = var6[0] + ",";
  868.                }
  869.  
  870.                var6[0] = var6[0] + JDPInteractionMgr.convertParm(var8.nextToken());
  871.             }
  872.  
  873.             var6[0] = var6[0] + ")";
  874.             if (var6[0].equals("()")) {
  875.                var2 = true;
  876.             }
  877.  
  878.             if (var3) {
  879.                this.Constructors.addEntry(var6, var5, var6[0]);
  880.             }
  881.          }
  882.       }
  883.  
  884.       if (var3) {
  885.          var6[0] = "Create from other object";
  886.          this.Constructors.addEntry(var6, var5, var6[0]);
  887.          if (var6[0].equals("()")) {
  888.             this.Constructors.selectLastAddedBranch();
  889.          }
  890.  
  891.          this.Constructors.sortTree();
  892.          this.Constructors.reDraw();
  893.          this.Parameters.setRoot("Constructor Parameters", true);
  894.          this.Objects.setRoot("Choose an Object or method", true);
  895.       }
  896.  
  897.       return var2;
  898.    }
  899.  
  900.    public void setConstantValue(JDPTreeBranch[] var1, int var2) {
  901.       if (var1 != null && (var2 == 1 || var2 == 4)) {
  902.          JDPTreeBranch var3 = (JDPTreeBranch)var1[var2].leaves.elementAt(0);
  903.          String var4 = var3.name.trim();
  904.          if (var4.startsWith("String (")) {
  905.             var3.thisObject = new String(this.constantValue.getText());
  906.             var3.name = "String (\"" + this.constantValue.getText() + "\")";
  907.          } else if (var4.startsWith("LayoutManager (")) {
  908.             if (this.layoutChoice.getSelectedItem().equals("BorderLayout")) {
  909.                var3.thisObject = new BorderLayout();
  910.             } else if (this.layoutChoice.getSelectedItem().equals("GridLayout")) {
  911.                var3.thisObject = new GridLayout(1, 1);
  912.             } else if (this.layoutChoice.getSelectedItem().equals("FlowLayout")) {
  913.                var3.thisObject = new FlowLayout();
  914.             } else if (this.layoutChoice.getSelectedItem().equals("JDPLineLayout")) {
  915.                var3.thisObject = new JDPLineLayout();
  916.             } else if (this.layoutChoice.getSelectedItem().equals("JDPRowLayout")) {
  917.                var3.thisObject = new JDPRowLayout();
  918.             } else {
  919.                var3.thisObject = new BorderLayout();
  920.             }
  921.  
  922.             var3.name = "LayoutManager (" + this.layoutChoice.getSelectedItem() + ")";
  923.          } else if (var4.startsWith("int (")) {
  924.             var3.thisObject = new Integer(this.constantValue.getText());
  925.             var3.name = "int (" + this.constantValue.getText() + ")";
  926.          } else if (var4.startsWith("boolean (")) {
  927.             if (this.constantChoice.getSelectedItem().equals("true")) {
  928.                var3.thisObject = new Boolean(true);
  929.             } else {
  930.                var3.thisObject = new Boolean(false);
  931.             }
  932.  
  933.             var3.name = "boolean (" + this.constantChoice.getSelectedItem() + ")";
  934.          } else if (var4.startsWith("byte (")) {
  935.             var3.thisObject = new Byte(this.constantValue.getText());
  936.             var3.name = "byte (" + this.constantValue.getText() + ")";
  937.          } else if (var4.startsWith("char (")) {
  938.             var3.thisObject = new Character(this.constantValue.getText().charAt(0));
  939.             var3.name = "char (" + this.constantValue.getText() + ")";
  940.          } else if (var4.startsWith("short (")) {
  941.             var3.thisObject = new Short(this.constantValue.getText());
  942.             var3.name = "short (" + this.constantValue.getText() + ")";
  943.          } else if (var4.startsWith("long (")) {
  944.             var3.thisObject = new Long(this.constantValue.getText());
  945.             var3.name = "long (" + this.constantValue.getText() + ")";
  946.          } else if (var4.startsWith("float (")) {
  947.             var3.thisObject = new Float(this.constantValue.getText());
  948.             var3.name = "float (" + this.constantValue.getText() + ")";
  949.          } else {
  950.             if (var4.startsWith("double (")) {
  951.                var3.thisObject = new Double(this.constantValue.getText());
  952.                var3.name = "double (" + this.constantValue.getText() + ")";
  953.             }
  954.  
  955.          }
  956.       }
  957.    }
  958.  
  959.    public void InitClass(JDPUser var1, JDPLayoutMgr var2, String var3) {
  960.       super.user = var1;
  961.       this.target = var2;
  962.       this.targetPanel = this;
  963.       this.dragPanel = var2.dragPanel;
  964.       super.moduleName = "JDPInstanceMgr";
  965.       if (var3.startsWith("JDPLayoutMgr:")) {
  966.          super.componentName = var3.substring(13);
  967.       }
  968.  
  969.       this.jaggSQL = new JDPJagg(var1.jaggPath);
  970.       ((Container)this).setLayout(new BorderLayout());
  971.       this.popuppanel = new JDPPopupMessage(var1, this.targetPanel);
  972.       this.targetPanel.add(this.popuppanel);
  973.       this.Main = new Panel();
  974.       this.ChiselPanel1 = new JDPChiselFramePanel(var1, "Define a new Instance");
  975.       this.Panel2 = new Panel();
  976.       this.Panel1 = new Panel();
  977.       this.Constructors = new JDPTreePicker(var1);
  978.       int[] var4 = new int[]{4, 8};
  979.       this.Constructors.setIcons(var4);
  980.       this.Constructors.setRoot("Constructors", true);
  981.       this.Parameters = new JDPTreePicker(var1);
  982.       int[] var5 = new int[]{8, 1, 2, 1};
  983.       this.Parameters.setIcons(var5);
  984.       this.Parameters.setRoot("Parameters", true);
  985.       this.ParametersPanel = new Panel();
  986.       this.ParametersPanel.setLayout(new BorderLayout());
  987.       this.Objects = new JDPTreePicker(var1);
  988.       this.Objects.setIcons(var4);
  989.       this.Objects.setRoot("Objects", true);
  990.       this.constantPanel = new JDPScrollPanel();
  991.       this.constantLabel = new Label("String value:   ", 0);
  992.       this.constantPanel.add("Left", this.constantLabel);
  993.       this.constantValue = new TextField("", 10);
  994.       this.constantChoice = new JDPChoice();
  995.       this.constantChoice.addItem("true");
  996.       this.constantChoice.addItem("false");
  997.       this.layoutChoice = new JDPChoice();
  998.       this.layoutChoice.addItem("BorderLayout");
  999.       this.layoutChoice.addItem("GridLayout");
  1000.       this.layoutChoice.addItem("FlowLayout");
  1001.       this.layoutChoice.addItem("JDPLineLayout");
  1002.       this.layoutChoice.addItem("JDPRowLayout");
  1003.       String[] var6 = new String[]{"Accept", "Cancel"};
  1004.       int[] var7 = new int[]{JDPButton.getIconValue("Save"), JDPButton.getIconValue("Undo")};
  1005.       this.JDPButtons1 = new JDPButtons(var1, var6, var7, JDPButtons.getAlignmentValue("Horizontal"));
  1006.       this.Main.setLayout(new GridLayout(1, 3));
  1007.       this.Main.setFont(new Font("Helvetica", 0, 11));
  1008.       this.Main.setForeground(var1.u._cvtcolor("Black"));
  1009.       ((Container)this).add("Center", this.Main);
  1010.       this.Main.add(this.ChiselPanel1);
  1011.       this.ChiselPanel1.add("Center", this.Panel2);
  1012.       this.Panel2.setLayout(new BorderLayout());
  1013.       this.Panel2.add("Center", this.Panel1);
  1014.       this.Panel1.setLayout(new GridLayout(1, 3));
  1015.       this.Panel1.add(this.Constructors);
  1016.       this.ParametersPanel.add("Center", this.Parameters);
  1017.       this.Panel1.add(this.ParametersPanel);
  1018.       this.Panel1.add(this.Objects);
  1019.       this.Panel2.add("South", this.JDPButtons1);
  1020.       this.Constructors.setBackground(var1.u._cvtcolor("White"));
  1021.       this.popuppanel.addComponent(this.Constructors, "Choose a constructor", "Choose a contructor to use to create an instance of this Object");
  1022.       this.Parameters.setBackground(var1.u._cvtcolor("White"));
  1023.       this.popuppanel.addComponent(this.Parameters, "Select each parameter", "Select each parameter and choose the Object to use to create the instance");
  1024.       this.Objects.setBackground(var1.u._cvtcolor("White"));
  1025.       this.popuppanel.addComponent(this.Objects, "Choose an Object", "Select the Object to pass for this parameter to create the new Instance");
  1026.       this.popuppanel.addComponent(this.JDPButtons1.button[0], "Accept Definition", "Accept this definition and create the new Instance");
  1027.       this.popuppanel.addComponent(this.JDPButtons1.button[1], "Cancel", "Cancel the creation of the instance of the new Object");
  1028.       Vector var8 = new Vector();
  1029.       var8.addElement(super.moduleName + super.componentName);
  1030.       var8.addElement(this);
  1031.       var1.gParm.addElement(var8);
  1032.    }
  1033. }
  1034.