home *** CD-ROM | disk | FTP | other *** search
/ CD Actual Thematic 7: Programming / CDAT7.iso / Share / Java / JDesignerPro / Jdp3_0.exe / data1.cab / Program_Files / JDPSourceLayout.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-04-09  |  19.5 KB  |  1,018 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.Font;
  6. import java.awt.Label;
  7. import java.awt.Panel;
  8. import java.awt.TextArea;
  9. import java.awt.TextField;
  10. import java.util.StringTokenizer;
  11. import java.util.Vector;
  12.  
  13. public class JDPSourceLayout extends JDPClassLayout {
  14.    JDPUser user;
  15.    JDPJagg jaggSQL;
  16.    JDPPopupMessage popuppanel;
  17.    JDPMaskEdit JDPMaskEditMain;
  18.    String moduleParameter;
  19.    Panel Main;
  20.    Panel Panel1;
  21.    JDPTabSelectPanel TabPanel1;
  22.    JDPMethodExplorer JDPMethodExplorer1;
  23.    Panel source;
  24.    Panel Panel3;
  25.    Panel Panel4;
  26.    Label Label2;
  27.    TextField searchField;
  28.    JDPButtons JDPButtons1;
  29.    Label Label3;
  30.    Label Label1;
  31.    JDPSpinner currentLine;
  32.    Panel Panel5;
  33.    JDPButton JDPButton1;
  34.    JDPSplitPanel Panel2;
  35.    TextArea sourcePanel;
  36.    JDPList methodList;
  37.    JDPDefineAll JDPDefineAll1;
  38.    boolean searchForward = true;
  39.    JDPSourceItem currentItem;
  40.    // $FF: renamed from: mt JDPMethodTree
  41.    JDPMethodTree field_0;
  42.    public String definePos = "North";
  43.    public String explorePos = "Center";
  44.    public String sourcePos = "South";
  45.    public String tabPos = "Hidden";
  46.    boolean appChanged = false;
  47.    Thread thisThread;
  48.    boolean threadRunning = false;
  49.    String sepChars = " \t\n\r;()/*[]\\!|&%$#@";
  50.    StringBuffer textSoFar;
  51.    String beforeSelection;
  52.    String afterSelection;
  53.    int saveSelectionStartPos;
  54.    JDPInteractionMgr interactionMgr;
  55.    StringBuffer thisEntry;
  56.    Vector listItems;
  57.    int lastSearchLine;
  58.    String lastSearchText = "";
  59.    int lastCursorStartPos;
  60.    int lastCursorEndPos;
  61.  
  62.    public void InitClass(JDPUser var1, Panel var2, String var3) {
  63.       this.user = var1;
  64.       this.moduleParameter = var3;
  65.       super.targetPanel = var2;
  66.       this.jaggSQL = new JDPJagg(var1.jaggPath);
  67.       ((Container)this).setLayout(new BorderLayout());
  68.       this.popuppanel = new JDPPopupMessage(var1, this);
  69.       ((Container)this).add(this.popuppanel);
  70.       this.JDPMaskEditMain = new JDPMaskEdit();
  71.       this.Main = new Panel();
  72.       this.Panel1 = new Panel();
  73.       String[] var4 = new String[1];
  74.       Panel[] var5 = new Panel[]{new Panel()};
  75.       var5[0].setLayout(new BorderLayout());
  76.       var4[0] = "Tab 1";
  77.       this.TabPanel1 = new JDPTabSelectPanel(var1, var4, var5, "North");
  78.       this.JDPMethodExplorer1 = new JDPMethodExplorer(var1.getJDPUser());
  79.       this.source = new Panel();
  80.       this.Panel3 = new Panel();
  81.       this.Panel4 = new Panel();
  82.       this.Label2 = new Label("Search:", 0);
  83.       this.searchField = new TextField("", 20);
  84.       String[] var6 = new String[]{"Fwd", "Back"};
  85.       int[] var7 = new int[]{JDPButton.getIconValue("SearchFwd"), JDPButton.getIconValue("SearchBack")};
  86.       this.JDPButtons1 = new JDPButtons(var1, var7, var6, JDPButtons.getAlignmentValue("Horizontal"));
  87.       this.Label3 = new Label("", 0);
  88.       this.Label1 = new Label("Line:", 0);
  89.       this.currentLine = new JDPSpinner(var1, "", 5);
  90.       this.Panel5 = new Panel();
  91.       this.JDPButton1 = new JDPButton(JDPButton.getIconValue("Documents"), "", JDPButton.getAlignmentValue("Center"));
  92.       this.Panel2 = new JDPSplitPanel(var1);
  93.       this.sourcePanel = new TextArea("", 15, 20);
  94.       this.methodListMain();
  95.       this.JDPDefineAll1 = new JDPDefineAll();
  96.       this.JDPDefineAll1.InitClass(var1, var2, var3);
  97.       this.Main.setLayout(new BorderLayout());
  98.       ((Container)this).add("Center", this.Main);
  99.       this.Main.add("Center", this.Panel1);
  100.       this.Panel1.setLayout(new BorderLayout());
  101.       this.Panel1.add("East", this.TabPanel1);
  102.       this.Panel1.add("Center", this.JDPMethodExplorer1);
  103.       this.Panel1.add("South", this.source);
  104.       this.source.setLayout(new BorderLayout());
  105.       this.source.add("South", this.Panel3);
  106.       this.Panel3.setLayout(new BorderLayout());
  107.       this.Panel3.add("West", this.Panel4);
  108.       this.Panel4.setLayout(new JDPLineLayout());
  109.       this.Panel4.add("Left", this.Label2);
  110.       this.Panel4.add("Left", this.searchField);
  111.       this.Panel4.add("Left", this.JDPButtons1);
  112.       this.Panel4.add("Left", this.Label3);
  113.       this.Panel4.add("Left", this.Label1);
  114.       this.Panel4.add("Left", this.currentLine);
  115.       this.Panel3.add("East", this.Panel5);
  116.       this.Panel5.setLayout(new BorderLayout());
  117.       this.Panel5.add("Center", this.JDPButton1);
  118.       this.source.add("Center", this.Panel2);
  119.       this.Panel2.add("Center", this.sourcePanel);
  120.       this.Panel2.add("Right", this.methodList);
  121.       this.Panel1.add("North", this.JDPDefineAll1);
  122.       this.TabPanel1.hide();
  123.       this.TabPanel1.setTabcolor(0, var1.u._cvtcolor("Black"), var1.u._cvtcolor("LightGray"));
  124.       this.popuppanel.addComponent(this.JDPButtons1.button[0], "Search forward", "Search forward");
  125.       this.popuppanel.addComponent(this.JDPButtons1.button[1], "Search backward", "Search backward");
  126.       this.currentLine.setMinValue(0);
  127.       this.currentLine.setMaxValue(999999);
  128.       this.popuppanel.addComponent(this.JDPButton1, "Display/hide source helper", "Display/hide the source helper");
  129.       this.JDPButton1.setStayOn(true);
  130.       this.JDPButton1.setPressed(true);
  131.       this.Panel2.setLeftPercentage(80.0F);
  132.       this.Panel2.setTopPercentage(50.0F);
  133.       this.sourcePanel.setFont(new Font("Courier", 0, 12));
  134.       this.sourcePanel.setBackground(var1.u._cvtcolor("White"));
  135.       this.methodList.setBackground(var1.u._cvtcolor("White"));
  136.       this.methodList.setMinWidth(200);
  137.       var1.gParm.addElement(this);
  138.       this.InitComponents();
  139.    }
  140.  
  141.    public boolean handleEvent(Event var1) {
  142.       switch (var1.id) {
  143.          case 401:
  144.             if (var1.target.equals(this.methodList)) {
  145.                if (var1.key == 9) {
  146.                   this.sourcePanel.requestFocus();
  147.                }
  148.  
  149.                return false;
  150.             }
  151.  
  152.             return false;
  153.          case 402:
  154.             if (var1.target.equals(this.sourcePanel)) {
  155.                if (var1.key == 10) {
  156.                   JDPUtils.insertTabs(this.sourcePanel);
  157.                   return false;
  158.                }
  159.  
  160.                if (var1.key == 9) {
  161.                   return false;
  162.                }
  163.  
  164.                this.startThread();
  165.                return false;
  166.             }
  167.  
  168.             return false;
  169.          case 404:
  170.             if (var1.target.equals(this.sourcePanel) && var1.key == 1006) {
  171.                if (this.threadRunning) {
  172.                   if (this.thisThread != null) {
  173.                      this.thisThread.interrupt();
  174.                   }
  175.                } else {
  176.                   this.threadRunning = true;
  177.                   this.thisThread = new Thread(this);
  178.                   this.thisThread.start();
  179.                }
  180.  
  181.                return false;
  182.             } else {
  183.                if (var1.target.equals(this.sourcePanel) && var1.key == 1007) {
  184.                   if (this.threadRunning) {
  185.                      if (this.thisThread != null) {
  186.                         this.thisThread.interrupt();
  187.                      }
  188.                   } else {
  189.                      this.threadRunning = true;
  190.                      this.thisThread = new Thread(this);
  191.                      this.thisThread.start();
  192.                   }
  193.  
  194.                   return false;
  195.                }
  196.  
  197.                return false;
  198.             }
  199.          case 503:
  200.          case 504:
  201.          case 505:
  202.             this.popuppanel.postEvent(var1);
  203.             return false;
  204.          case 701:
  205.             if (var1.target.equals(this.JDPMethodExplorer1)) {
  206.                JDPSourceItem var6 = this.JDPMethodExplorer1.getSelectedItem();
  207.                if (var6 == null && this.field_0 != null) {
  208.                   var6 = this.field_0.getSelectedSourceItem();
  209.                }
  210.  
  211.                this.currentItem = var6;
  212.                this.JDPDefineAll1.setSourceItem(var6);
  213.                if (var6 != null) {
  214.                   this.sourcePanel.setText(var6.actualSource);
  215.                   if (this.field_0 != null) {
  216.                      this.field_0.select(var6);
  217.                   }
  218.  
  219.                   if (var6.node != null) {
  220.                      if (var6.node.nodeColumn == 1001) {
  221.                         this.searchField.setText(var6.name);
  222.                      }
  223.  
  224.                      if (var6.node.nodeColumn == 999) {
  225.                         this.searchField.setText(this.JDPMethodExplorer1.nodeRoot.name);
  226.                      }
  227.                   }
  228.                } else {
  229.                   this.sourcePanel.setText("");
  230.                }
  231.  
  232.                return true;
  233.             } else {
  234.                if (var1.target.equals(this.methodList)) {
  235.                   this.replaceSelectedText(this.methodList.getSelectedItem());
  236.                   this.startThread();
  237.                   return true;
  238.                }
  239.  
  240.                return false;
  241.             }
  242.          case 1001:
  243.             if (var1.target.equals(this.JDPMethodExplorer1)) {
  244.                JDPSourceItem var5 = this.JDPMethodExplorer1.getSelectedItem();
  245.                if (var5 == null && this.field_0 != null) {
  246.                   var5 = this.field_0.getSelectedSourceItem();
  247.                }
  248.  
  249.                this.currentItem = var5;
  250.                this.JDPDefineAll1.setSourceItem(var5);
  251.                if (var5 != null) {
  252.                   this.sourcePanel.setText(var5.actualSource);
  253.                   if (this.field_0 != null) {
  254.                      this.field_0.select(var5);
  255.                   }
  256.                } else {
  257.                   this.sourcePanel.setText("");
  258.                }
  259.  
  260.                return true;
  261.             } else if (var1.target.equals(this.searchField)) {
  262.                this.searchForText(this.searchField.getText(), this.searchForward);
  263.                return true;
  264.             } else if (var1.target.equals(this.JDPButtons1.button[0])) {
  265.                this.searchForText(this.searchField.getText(), true);
  266.                this.searchForward = true;
  267.                return true;
  268.             } else if (var1.target.equals(this.JDPButtons1.button[1])) {
  269.                this.searchForText(this.searchField.getText(), false);
  270.                this.searchForward = false;
  271.                return true;
  272.             } else if (var1.target.equals(this.JDPButton1)) {
  273.                if (this.methodList.isVisible()) {
  274.                   this.methodList.hide();
  275.                   this.JDPButton1.setPressed(false);
  276.                } else {
  277.                   this.methodList.show();
  278.                }
  279.  
  280.                this.source.layout();
  281.                this.source.paintAll(this.source.getGraphics());
  282.                return true;
  283.             } else {
  284.                if (var1.target.equals(this.methodList)) {
  285.                   this.replaceSelectedText(this.methodList.getSelectedItem());
  286.                   this.startThread();
  287.                   return true;
  288.                }
  289.  
  290.                return false;
  291.             }
  292.          case 1004:
  293.             if (var1.target.equals(this.sourcePanel)) {
  294.                this.saveLastCursorPos();
  295.                return false;
  296.             }
  297.  
  298.             return false;
  299.          case 1005:
  300.             if (var1.target.equals(this.sourcePanel)) {
  301.                this.saveLastCursorPos();
  302.                this.handleLostFocus();
  303.                return false;
  304.             } else if (!var1.target.equals(this.JDPDefineAll1)) {
  305.                return false;
  306.             } else {
  307.                if (this.currentItem != null) {
  308.                   String var2 = this.currentItem.name;
  309.                   this.JDPMethodExplorer1.sp.removeCalledMethod(this.currentItem);
  310.                   int var3 = 0;
  311.                   if (this.currentItem.type == 2 && this.currentItem.parmNames != null) {
  312.                      var3 = this.currentItem.parmNames.size();
  313.                   }
  314.  
  315.                   if (this.JDPDefineAll1.updateSourceItem(this.currentItem) != null) {
  316.                      JDPSourceParser.reCreateHeader(this.currentItem);
  317.                      this.JDPMethodExplorer1.sp.reParseSource(this.currentItem);
  318.                      this.sourcePanel.setText(this.currentItem.actualSource);
  319.                      if (this.field_0 != null) {
  320.                         this.field_0.refreshBranchFromItem(this.currentItem);
  321.                      }
  322.  
  323.                      this.JDPMethodExplorer1.refreshNodeFromItem(this.currentItem);
  324.                      if (!var2.equals(this.currentItem.name)) {
  325.                         JDPSourceParser.changeMethodName(this.currentItem, var2);
  326.                      }
  327.  
  328.                      int var4 = 0;
  329.                      if (this.currentItem.parmNames != null) {
  330.                         var4 = this.currentItem.parmNames.size();
  331.                      }
  332.  
  333.                      if ((this.currentItem.type != 2 || var3 == var4) && var2.equals(this.currentItem.name)) {
  334.                         this.JDPMethodExplorer1.refreshRelations(this.currentItem);
  335.                      } else {
  336.                         this.JDPMethodExplorer1.refreshAllRelations(this.JDPMethodExplorer1.sp.classHeader);
  337.                      }
  338.  
  339.                      this.setAppChanged(true);
  340.                   }
  341.                }
  342.  
  343.                return true;
  344.             }
  345.          default:
  346.             return false;
  347.       }
  348.    }
  349.  
  350.    public void InitComponents() {
  351.       this.jaggSQL.setKeepConnectionOpen(false);
  352.       this.TabPanel1.removeAllTabs();
  353.    }
  354.  
  355.    public void setSourceItem(JDPSourceItem var1) {
  356.       this.currentItem = var1;
  357.       if (var1 == null) {
  358.          this.sourcePanel.setText("");
  359.          this.JDPMethodExplorer1.clear();
  360.          this.JDPMethodExplorer1.reDraw();
  361.          var1 = new JDPSourceItem();
  362.          var1.type = 0;
  363.          var1.name = "";
  364.          this.JDPDefineAll1.setSourceItem(var1);
  365.          this.setAppChanged(false);
  366.       } else {
  367.          this.JDPDefineAll1.setSourceItem(var1);
  368.          this.sourcePanel.setText(var1.actualSource);
  369.          this.JDPMethodExplorer1.setRootNode(var1);
  370.          this.JDPMethodExplorer1.makeVisible(var1);
  371.       }
  372.    }
  373.  
  374.    public JDPSourceItem getSourceItem() {
  375.       JDPSourceItem var1 = this.JDPDefineAll1.getSourceItem();
  376.       var1.actualSource = this.sourcePanel.getText();
  377.       return var1;
  378.    }
  379.  
  380.    public void setSourceFile(String var1, JDPMethodTree var2) {
  381.       this.field_0 = var2;
  382.       this.JDPMethodExplorer1.loadSource(var1, var2);
  383.       this.setSourceItem(this.JDPMethodExplorer1.getSelectedItem());
  384.    }
  385.  
  386.    public void setPanelPosition(String var1, String var2) {
  387.       Object var3 = null;
  388.       String var4 = "";
  389.       String var5 = "";
  390.       if (var1.equals("Definition Panel")) {
  391.          var3 = this.JDPDefineAll1;
  392.          var4 = "Definition";
  393.          var5 = this.definePos;
  394.          this.definePos = var2;
  395.       } else if (var1.equals("Explorer Panel")) {
  396.          var3 = this.JDPMethodExplorer1;
  397.          var4 = "Explorer";
  398.          var5 = this.explorePos;
  399.          this.explorePos = var2;
  400.       } else if (var1.equals("Source Panel")) {
  401.          var3 = this.source;
  402.          var4 = "Source";
  403.          var5 = this.sourcePos;
  404.          this.sourcePos = var2;
  405.       } else if (var1.equals("Tab Panel")) {
  406.          var3 = this.TabPanel1;
  407.          this.tabPos = var2;
  408.       }
  409.  
  410.       if (var3 != null) {
  411.          Container var6 = ((Component)var3).getParent();
  412.          if (var6 != null) {
  413.             if (var5.equals("TabPanel")) {
  414.                this.TabPanel1.removeTab((Component)var3);
  415.             } else {
  416.                var6.remove((Component)var3);
  417.             }
  418.          }
  419.  
  420.          if (var2.equals("Hidden")) {
  421.             ((Component)var3).hide();
  422.          } else if (var2.equals("TabPanel")) {
  423.             ((Component)var3).show();
  424.             this.TabPanel1.add((Component)var3, var4);
  425.          } else {
  426.             ((Component)var3).show();
  427.             this.Panel1.add(var2, (Component)var3);
  428.          }
  429.  
  430.          if (this.TabPanel1.getTabnames()[0].equals("Tab 1")) {
  431.             this.TabPanel1.hide();
  432.             this.TabPanel1.removeAllTabs();
  433.          }
  434.  
  435.          if (var2.equals("TabPanel") && !this.tabPos.equals("Hidden")) {
  436.             this.TabPanel1.show();
  437.          }
  438.  
  439.          ((Container)this).layout();
  440.          ((Component)this).paintAll(((Component)this).getGraphics());
  441.       }
  442.    }
  443.  
  444.    public Vector getPanelPositions(String var1) {
  445.       Vector var2 = new Vector();
  446.       String[] var3 = new String[]{"Center", "North", "South"};
  447.  
  448.       for(int var4 = 0; var4 < var3.length; ++var4) {
  449.          if (!this.definePos.equals(var3[var4]) && !this.explorePos.equals(var3[var4]) && !this.sourcePos.equals(var3[var4]) && !this.tabPos.equals(var3[var4])) {
  450.             var2.addElement(var3[var4]);
  451.          }
  452.       }
  453.  
  454.       if (var1.equals("definePanel") && !this.definePos.equals("TabPanel") || var1.equals("explorePanel") && !this.explorePos.equals("TabPanel") || var1.equals("sourcePanel") && !this.sourcePos.equals("TabPanel")) {
  455.          var2.addElement("TabPanel");
  456.       }
  457.  
  458.       if (var1.equals("definePanel") && !this.definePos.equals("Hidden") || var1.equals("explorePanel") && !this.explorePos.equals("Hidden") || var1.equals("sourcePanel") && !this.sourcePos.equals("Hidden") || var1.equals("TabPanel") && !this.tabPos.equals("Hidden")) {
  459.          var2.addElement("Hidden");
  460.       }
  461.  
  462.       return var2;
  463.    }
  464.  
  465.    public void loadPopupMenu(JDPPopupMenu var1) {
  466.       String[] var2 = new String[]{"definePanel", "explorePanel", "sourcePanel", "TabPanel"};
  467.       String[] var3 = new String[]{"Definition Panel", "Explorer Panel", "Source Panel", "Tab Panel"};
  468.       String[] var4 = new String[]{"Layout", "", ""};
  469.  
  470.       for(int var5 = 0; var5 < var2.length; ++var5) {
  471.          var4[1] = var3[var5];
  472.          Vector var6 = this.getPanelPositions(var2[var5]);
  473.  
  474.          for(int var7 = 0; var7 < var6.size(); ++var7) {
  475.             var4[2] = (String)var6.elementAt(var7);
  476.             var1.addEntry(var4);
  477.          }
  478.       }
  479.  
  480.    }
  481.  
  482.    public void setAppChanged(boolean var1) {
  483.       this.appChanged = var1;
  484.    }
  485.  
  486.    public boolean getAppChanged() {
  487.       return this.appChanged;
  488.    }
  489.  
  490.    public void loadNewItem(JDPSourceItem var1) {
  491.       this.currentItem = var1;
  492.       this.JDPMethodExplorer1.addNode(this.currentItem);
  493.       String var2 = var1.name;
  494.       int var3 = 1;
  495.       if (this.currentItem.actualSource != null && !this.currentItem.actualSource.equals("")) {
  496.          this.JDPMethodExplorer1.sp.reParseSource(this.currentItem);
  497.  
  498.          while(!this.field_0.addItem(var1) && var1.type != 1) {
  499.             var1.name = var2 + Integer.toString(var3++);
  500.          }
  501.  
  502.          if (!var1.name.equals(var2)) {
  503.             JDPSourceParser.replaceSource(var1, var2, var1.name);
  504.          }
  505.  
  506.          this.JDPDefineAll1.setSourceItem(this.currentItem);
  507.          if (this.field_0 != null) {
  508.             this.field_0.refreshBranchFromItem(this.currentItem);
  509.          }
  510.  
  511.          this.JDPMethodExplorer1.sp.addCalledMethod(this.currentItem);
  512.          this.JDPMethodExplorer1.refreshNodeFromItem(this.currentItem);
  513.          this.JDPMethodExplorer1.refreshRelations(this.currentItem);
  514.          this.setAppChanged(true);
  515.       } else {
  516.          while(!this.field_0.addItem(var1) && var1.type != 1) {
  517.             var1.name = var2 + Integer.toString(var3++);
  518.          }
  519.  
  520.          this.JDPDefineAll1.setSourceItem(this.currentItem);
  521.          JDPSourceParser.reCreateHeader(this.currentItem);
  522.          if (this.field_0 != null) {
  523.             this.field_0.refreshBranchFromItem(this.currentItem);
  524.          }
  525.  
  526.          this.JDPMethodExplorer1.sp.addCalledMethod(this.currentItem);
  527.          this.JDPMethodExplorer1.refreshNodeFromItem(this.currentItem);
  528.          this.JDPMethodExplorer1.refreshRelations(this.currentItem);
  529.          this.sourcePanel.setText(this.currentItem.actualSource);
  530.          this.setAppChanged(true);
  531.       }
  532.    }
  533.  
  534.    public void removeSourceItem(JDPSourceItem var1) {
  535.       this.currentItem = null;
  536.       this.JDPMethodExplorer1.removeNode(var1.node);
  537.       this.JDPDefineAll1.setSourceItem((JDPSourceItem)null);
  538.       this.sourcePanel.setText("");
  539.       this.JDPMethodExplorer1.setRootNode("");
  540.    }
  541.  
  542.    public String getPanelPosition(String var1) {
  543.       if (var1.equals("Definition Panel")) {
  544.          return this.definePos;
  545.       } else if (var1.equals("Explorer Panel")) {
  546.          return this.explorePos;
  547.       } else if (var1.equals("Source Panel")) {
  548.          return this.sourcePos;
  549.       } else {
  550.          return var1.equals("Tab Panel") ? this.tabPos : null;
  551.       }
  552.    }
  553.  
  554.    public void refreshAllNodes() {
  555.       this.JDPMethodExplorer1.refreshAllNodes();
  556.    }
  557.  
  558.    public void run() {
  559.       this.threadRunning = true;
  560.  
  561.       while(this.threadRunning) {
  562.          try {
  563.             Thread.sleep(2000L);
  564.             if (this.methodList.isVisible()) {
  565.                this.loadMethodList();
  566.                this.handleLostFocus();
  567.             }
  568.  
  569.             this.threadRunning = false;
  570.          } catch (InterruptedException var1) {
  571.          }
  572.       }
  573.  
  574.    }
  575.  
  576.    public void refreshAllRelations() {
  577.       this.JDPMethodExplorer1.refreshAllRelations(this.JDPMethodExplorer1.sp.classHeader);
  578.    }
  579.  
  580.    public void reParseSource(JDPSourceItem var1) {
  581.       this.JDPMethodExplorer1.sp.reParseSource(var1);
  582.    }
  583.  
  584.    public void loadMethodList() {
  585.       int var1 = this.sourcePanel.getSelectionStart();
  586.       int var2 = this.sourcePanel.getSelectionEnd();
  587.       if (var1 >= 1 && var2 >= 1) {
  588.          Object var3 = null;
  589.          this.beforeSelection = null;
  590.          this.afterSelection = null;
  591.          this.interactionMgr.listItems = new Vector();
  592.          String var4 = this.sourcePanel.getText();
  593.          String var5 = this.sourcePanel.getText();
  594.          int var6 = 0;
  595.          if (System.getProperty("java.version").startsWith("1.1") && System.getProperty("java.vendor").startsWith("Sun")) {
  596.             var4 = this.user.u.replace(var4, "\n", "\n ");
  597.  
  598.             for(int var7 = var1; (var7 = var4.lastIndexOf("\n", var7 - 1)) >= 0; --var1) {
  599.                ++var6;
  600.             }
  601.  
  602.             for(int var15 = var2; (var15 = var4.lastIndexOf("\n", var15 - 1)) >= 0; --var2) {
  603.             }
  604.          }
  605.  
  606.          this.beforeSelection = var5.substring(0, var1);
  607.          this.afterSelection = var5.substring(var2);
  608.          this.saveSelectionStartPos = var1;
  609.          if (var1 == var2) {
  610.             if (this.textSoFar == null) {
  611.                this.textSoFar = new StringBuffer();
  612.             }
  613.  
  614.             String var16 = var5.substring(var1 - 1, var1);
  615.             if (this.sepChars.indexOf(var16) >= 0) {
  616.                return;
  617.             }
  618.  
  619.             Object var8 = null;
  620.             String var9 = null;
  621.             int var10 = var1;
  622.             this.textSoFar.setLength(0);
  623.             boolean var11 = false;
  624.  
  625.             while(!var16.equals("") && this.sepChars.indexOf(var16) < 0) {
  626.                if (var16.equals(".") && var9 == null) {
  627.                   var11 = true;
  628.                   var9 = this.textSoFar.toString();
  629.                   this.textSoFar.setLength(0);
  630.                   this.beforeSelection = var5.substring(0, var10);
  631.                   this.saveSelectionStartPos = var10;
  632.                } else {
  633.                   this.textSoFar.insert(0, var16);
  634.                }
  635.  
  636.                --var10;
  637.                if (var10 == 0) {
  638.                   var16 = "";
  639.                } else {
  640.                   var16 = var5.substring(var10 - 1, var10);
  641.                }
  642.             }
  643.  
  644.             String var17 = this.textSoFar.toString();
  645.             if (var17.equals("this")) {
  646.                var17 = var9;
  647.                var9 = null;
  648.                var10 += 5;
  649.             }
  650.  
  651.             if (var9 == null) {
  652.                this.beforeSelection = var5.substring(0, var10);
  653.                this.saveSelectionStartPos = var10;
  654.             }
  655.  
  656.             if (var17 != null && var9 == null) {
  657.                this.methodList.clear();
  658.                this.loadMethodAndVariableNames(this.methodList, var17, (String)null);
  659.                if ((this.methodList.countItems() != 1 || !this.methodList.getItem(0).equals(var17)) && this.methodList.countItems() > 0) {
  660.                   this.setMethodListVisible(true);
  661.                   this.methodList.requestFocus();
  662.                }
  663.             } else {
  664.                String var12 = this.getGlobalVariableType(var17);
  665.                if (var12 != null) {
  666.                   this.interactionMgr.loadVariableMethods(this.methodList, var12, var17, var9, 0);
  667.                   if (this.methodList.countItems() > 0) {
  668.                      this.setMethodListVisible(true);
  669.                      this.methodList.requestFocus();
  670.                   }
  671.                } else {
  672.                   this.interactionMgr.loadVariableMethods(this.methodList, var17, var17, var9, 8);
  673.                   if (this.methodList.countItems() > 0) {
  674.                      this.setMethodListVisible(true);
  675.                      this.methodList.requestFocus();
  676.                   }
  677.                }
  678.             }
  679.          } else if (var2 - var1 < 40) {
  680.             String var13 = var5.substring(var1, var2);
  681.             if (var13.indexOf(" ") < 0 && var13.indexOf("\t") < 0 && var13.indexOf("\n") < 0) {
  682.                this.interactionMgr.loadMethodsForReturnValue(this.methodList, var13);
  683.                this.loadMethodAndVariableNames(this.methodList, (String)null, var13);
  684.                if (this.methodList.countItems() > 0) {
  685.                   this.setMethodListVisible(true);
  686.                   this.methodList.requestFocus();
  687.                }
  688.             }
  689.          }
  690.  
  691.          this.saveSelectionStartPos += var6;
  692.       }
  693.    }
  694.  
  695.    public void setInteractionMgr(JDPInteractionMgr var1) {
  696.       this.interactionMgr = var1;
  697.    }
  698.  
  699.    public String getGlobalVariableType(String var1) {
  700.       if (var1.startsWith("this.")) {
  701.          var1 = var1.substring(5);
  702.       } else {
  703.          String var3 = this.interactionMgr.findLocalVar(var1, this.beforeSelection);
  704.          if (var3 != null) {
  705.             return var3;
  706.          }
  707.       }
  708.  
  709.       for(int var4 = 0; var4 < this.JDPMethodExplorer1.sp.classHeader.components.size(); ++var4) {
  710.          JDPSourceItem var2 = (JDPSourceItem)this.JDPMethodExplorer1.sp.classHeader.components.elementAt(var4);
  711.          if (var2.type == 3 && var2.name.equals(var1)) {
  712.             return var2.varType;
  713.          }
  714.       }
  715.  
  716.       return null;
  717.    }
  718.  
  719.    public void setMethodListVisible(boolean var1) {
  720.       if (var1) {
  721.          this.methodList.show();
  722.          this.JDPButton1.setPressed(true);
  723.       } else {
  724.          this.methodList.hide();
  725.          this.JDPButton1.setPressed(false);
  726.       }
  727.  
  728.       this.source.layout();
  729.       this.source.paintAll(this.source.getGraphics());
  730.    }
  731.  
  732.    public void loadMethodAndVariableNames(JDPList var1, String var2, String var3) {
  733.       Vector var4 = this.JDPMethodExplorer1.sp.classHeader.components;
  734.       Object var6 = null;
  735.       if (this.thisEntry == null) {
  736.          this.thisEntry = new StringBuffer();
  737.       }
  738.  
  739.       this.thisEntry.setLength(0);
  740.       this.listItems = new Vector();
  741.       if (var2 != null && var2.startsWith("this.")) {
  742.          var2 = var2.substring(5);
  743.       } else {
  744.          this.getVarsFromSource(var2, var3, this.beforeSelection, var1);
  745.       }
  746.  
  747.       for(int var7 = 0; var7 < var4.size(); ++var7) {
  748.          JDPSourceItem var5 = (JDPSourceItem)var4.elementAt(var7);
  749.          if (var5.type == 3) {
  750.             if (var2 != null && var5.name.startsWith(var2) && this.listItems.indexOf(var5.name) < 0) {
  751.                var1.addItem(var5.name);
  752.             }
  753.  
  754.             if (var3 != null && var5.varType.equals(var3) && this.listItems.indexOf(var5.name) < 0) {
  755.                var1.addItem(var5.name);
  756.             }
  757.          } else if (var5.type == 2) {
  758.             this.thisEntry.setLength(0);
  759.             this.thisEntry.append(var5.name + "(");
  760.             if (var5.parmTypes != null) {
  761.                for(int var8 = 0; var8 < var5.parmTypes.size(); ++var8) {
  762.                   if (var8 > 0) {
  763.                      this.thisEntry.append(",");
  764.                   }
  765.  
  766.                   this.thisEntry.append((String)var5.parmTypes.elementAt(var8));
  767.                }
  768.             }
  769.  
  770.             this.thisEntry.append(")");
  771.             if (var2 != null && var5.name.startsWith(var2)) {
  772.                String var9 = this.thisEntry.toString();
  773.                if (this.listItems.indexOf(var9) < 0) {
  774.                   var1.addItem(var9);
  775.                }
  776.             }
  777.  
  778.             if (var3 != null && var5.returnType.equals(var3)) {
  779.                String var10 = this.thisEntry.toString();
  780.                if (this.listItems.indexOf(var10) < 0) {
  781.                   var1.addItem(var10);
  782.                }
  783.             }
  784.          }
  785.       }
  786.  
  787.       if (var1.countItems() > 0) {
  788.          var1.sortList();
  789.          ((JDPTreePicker)var1).select(0);
  790.       }
  791.  
  792.    }
  793.  
  794.    public void replaceSelectedText(String var1) {
  795.       if (var1.endsWith(")") && (this.afterSelection.startsWith("\n") || this.afterSelection.startsWith("\r") || this.afterSelection.equals(""))) {
  796.          var1 = var1 + ";";
  797.       }
  798.  
  799.       int var2 = this.saveSelectionStartPos + var1.length();
  800.       this.sourcePanel.setText(this.beforeSelection + var1 + this.afterSelection);
  801.       int var3 = var1.indexOf("(");
  802.       int var4 = var1.indexOf(")");
  803.       if (var3 >= 0 && var4 > var3 + 1) {
  804.          int var5 = var1.indexOf(",");
  805.          if (var5 >= 0) {
  806.             var4 = var5;
  807.          }
  808.  
  809.          int var6 = 0;
  810.          if (System.getProperty("java.version").startsWith("1.1") && System.getProperty("java.vendor").startsWith("Sun")) {
  811.             for(int var7 = this.beforeSelection.indexOf("\n"); var7 >= 0; var7 = this.beforeSelection.indexOf("\n", var7 + 1)) {
  812.                ++var6;
  813.             }
  814.          }
  815.  
  816.          var3 += this.saveSelectionStartPos + 1 - var6;
  817.          var4 += this.saveSelectionStartPos - var6;
  818.          this.sourcePanel.select(var3, var4);
  819.          this.startThread();
  820.       } else {
  821.          this.sourcePanel.setSelectionStart(var2);
  822.          this.sourcePanel.setSelectionEnd(var2);
  823.       }
  824.  
  825.       this.sourcePanel.requestFocus();
  826.    }
  827.  
  828.    public void reDraw() {
  829.       ((Container)this).layout();
  830.       ((Component)this).paintAll(((Component)this).getGraphics());
  831.    }
  832.  
  833.    public void startThread() {
  834.       if (this.threadRunning) {
  835.          if (this.thisThread != null) {
  836.             this.thisThread.interrupt();
  837.             return;
  838.          }
  839.       } else {
  840.          this.threadRunning = true;
  841.          this.thisThread = new Thread(this);
  842.          this.thisThread.start();
  843.       }
  844.  
  845.    }
  846.  
  847.    void getVarsFromSource(String var1, String var2, String var3, JDPList var4) {
  848.       int var9 = var3.indexOf("(");
  849.       int var10 = var3.indexOf(")", var9 + 2);
  850.       if (var9 > 0 && var9 < var10) {
  851.          StringTokenizer var11 = new StringTokenizer(var3.substring(var9 + 1, var10), " \n\r\t,");
  852.  
  853.          while(var11.hasMoreTokens()) {
  854.             String var7 = var11.nextToken();
  855.             if (var11.hasMoreTokens()) {
  856.                String var8 = var11.nextToken();
  857.                if (var1 != null && var8.startsWith(var1) && this.listItems.indexOf(var8) < 0) {
  858.                   var4.addItem(var8);
  859.                   this.listItems.addElement(var8);
  860.                }
  861.  
  862.                if (var2 != null && var7.equals(var2) && this.listItems.indexOf(var8) < 0) {
  863.                   var4.addItem(var8);
  864.                   this.listItems.addElement(var8);
  865.                }
  866.             }
  867.          }
  868.       }
  869.  
  870.       var9 = var3.indexOf("{");
  871.       if (var9 >= 0 && var9 < var3.length() - 1) {
  872.          StringTokenizer var15 = new StringTokenizer(var3.substring(var9 + 1), "{};");
  873.  
  874.          while(var15.hasMoreTokens()) {
  875.             String var6 = var15.nextToken();
  876.             StringTokenizer var5 = new StringTokenizer(var6, "\n\r \t;");
  877.             if (var5.countTokens() >= 2) {
  878.                String var12 = var5.nextToken();
  879.                if (var5.hasMoreTokens()) {
  880.                   String var13 = var5.nextToken();
  881.                   if (var1 != null && var13.startsWith(var1) && this.listItems.indexOf(var13) < 0) {
  882.                      var4.addItem(var13);
  883.                      this.listItems.addElement(var13);
  884.                   }
  885.  
  886.                   if (var2 != null && var12.equals(var2) && this.listItems.indexOf(var13) < 0) {
  887.                      var4.addItem(var13);
  888.                      this.listItems.addElement(var13);
  889.                   }
  890.                }
  891.             }
  892.          }
  893.  
  894.       }
  895.    }
  896.  
  897.    void searchForText(String var1, boolean var2) {
  898.       this.user.mainmsg.clearStatusMsg();
  899.       if (var2) {
  900.          if (this.lastSearchLine == 999999 || !var1.equals(this.lastSearchText)) {
  901.             this.lastSearchLine = 0;
  902.          }
  903.       } else if (this.lastSearchLine == 0 || !var1.equals(this.lastSearchText)) {
  904.          this.lastSearchLine = 999999;
  905.       }
  906.  
  907.       this.lastSearchText = var1;
  908.       int var4 = this.sourcePanel.getText().length();
  909.       int var3;
  910.       if (var2) {
  911.          var3 = this.sourcePanel.getText().toUpperCase().indexOf(var1.toUpperCase(), this.lastSearchLine);
  912.       } else {
  913.          if (this.lastSearchLine > var4) {
  914.             this.lastSearchLine = var4;
  915.          }
  916.  
  917.          this.lastSearchLine -= 2;
  918.          if (this.lastSearchLine < 0) {
  919.             this.lastSearchLine = 0;
  920.          }
  921.  
  922.          var3 = this.sourcePanel.getText().toUpperCase().lastIndexOf(var1.toUpperCase(), this.lastSearchLine);
  923.       }
  924.  
  925.       if (var3 >= 0) {
  926.          this.sourcePanel.select(var3, var3 + var1.length());
  927.          this.lastSearchLine = var3 + 1;
  928.       } else {
  929.          this.user.mainmsg.setStatusMsg("Search string not found", 5);
  930.          if (var2) {
  931.             this.lastSearchLine = 0;
  932.          } else {
  933.             this.lastSearchLine = 999999;
  934.          }
  935.  
  936.          this.sourcePanel.requestFocus();
  937.       }
  938.    }
  939.  
  940.    public void positionToLine(int var1) {
  941.       String var2 = this.sourcePanel.getText();
  942.       int var3 = -1;
  943.  
  944.       for(int var4 = 0; var4 < var1; ++var4) {
  945.          var3 = var2.indexOf("\n", var3 + 1);
  946.       }
  947.  
  948.       int var5 = var2.indexOf("\n", var3 + 1);
  949.       int var6 = var2.indexOf("\r", var3 + 1);
  950.       if (var6 >= 0 && var6 < var5) {
  951.          var5 = var6;
  952.       }
  953.  
  954.       if (var5 < 0) {
  955.          var5 = var2.length();
  956.       }
  957.  
  958.       this.sourcePanel.select(var3, var5);
  959.       this.sourcePanel.requestFocus();
  960.    }
  961.  
  962.    public void handleLostFocus() {
  963.       if (this.currentItem != null) {
  964.          this.currentItem.actualSource = this.sourcePanel.getText();
  965.          String var1 = this.currentItem.name;
  966.          int var2 = 0;
  967.          if (this.currentItem.type == 2 && this.currentItem.parmNames != null) {
  968.             var2 = this.currentItem.parmNames.size();
  969.          }
  970.  
  971.          this.JDPMethodExplorer1.sp.reParseSource(this.currentItem);
  972.          this.JDPDefineAll1.setSourceItem(this.currentItem);
  973.          if (this.field_0 != null) {
  974.             this.field_0.refreshBranchFromItem(this.currentItem);
  975.          }
  976.  
  977.          this.JDPMethodExplorer1.refreshNodeFromItem(this.currentItem);
  978.          int var3 = 0;
  979.          if (this.currentItem.parmNames != null) {
  980.             var3 = this.currentItem.parmNames.size();
  981.          }
  982.  
  983.          if (!var1.equals(this.currentItem.name)) {
  984.             JDPSourceParser.changeMethodName(this.currentItem, var1);
  985.          }
  986.  
  987.          if ((this.currentItem.type != 2 || var2 == var3) && var1.equals(this.currentItem.name)) {
  988.             this.JDPMethodExplorer1.refreshRelations(this.currentItem);
  989.          } else {
  990.             this.JDPMethodExplorer1.refreshAllRelations(this.JDPMethodExplorer1.sp.classHeader);
  991.          }
  992.  
  993.          this.setAppChanged(true);
  994.       }
  995.  
  996.    }
  997.  
  998.    public void saveLastCursorPos() {
  999.       this.lastCursorStartPos = this.sourcePanel.getSelectionStart();
  1000.       this.lastCursorEndPos = this.sourcePanel.getSelectionEnd();
  1001.    }
  1002.  
  1003.    public int getSelectionStart() {
  1004.       return this.lastCursorStartPos;
  1005.    }
  1006.  
  1007.    public int getSelectionEnd() {
  1008.       return this.lastCursorEndPos;
  1009.    }
  1010.  
  1011.    public void methodListMain() {
  1012.       if (this.methodList == null) {
  1013.          this.methodList = new JDPList(this.user);
  1014.       }
  1015.  
  1016.    }
  1017. }
  1018.