home *** CD-ROM | disk | FTP | other *** search
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Container;
- import java.awt.Dimension;
- import java.awt.Event;
- import java.awt.Font;
- import java.awt.FontMetrics;
- import java.awt.Graphics;
- import java.awt.Image;
- import java.awt.Panel;
- import java.awt.Point;
- import java.awt.Rectangle;
- import java.awt.Scrollbar;
- import java.awt.image.ImageObserver;
- import java.util.Date;
- import java.util.StringTokenizer;
- import java.util.Vector;
-
- public class JDPMethodExplorer extends Panel implements Runnable {
- JDPUser user;
- // $FF: renamed from: sp JDPSourceParser
- JDPSourceParser field_0;
- Panel targetPanel;
- Scrollbar scrollEast;
- Scrollbar scrollSouth;
- JDPPopupMenu popupMenu;
- JDPMethodNode nodeRoot;
- JDPMethodTree methodTree;
- Rectangle Bounds;
- Rectangle widthRect;
- Image offscreen;
- Rectangle offscreensize;
- // $FF: renamed from: gr java.awt.Graphics
- Graphics field_1;
- Image iconImage;
- Image iconImages;
- Image largeIconImages;
- Graphics grI;
- JDPImageLoader imageLoader;
- static final int LEFT = 0;
- static final int RIGHT = 1;
- static final int ABOVE = 2;
- static final int BELOW = 3;
- int[] widths;
- Font lastFont;
- // $FF: renamed from: fm java.awt.FontMetrics
- FontMetrics field_2;
- Font prevFont;
- Color prevForeground;
- Color prevBackground;
- Vector allNodes;
- Vector displayedNodes;
- boolean displayName = true;
- boolean displayText = true;
- boolean displayGlobals = true;
- int maxTextWidth;
- int nodeSpaceWidth = 150;
- int nodeSpaceHeight = 15;
- int maxWidth;
- int maxHeight;
- int minimumWidth = 140;
- int minimumHeight = 200;
- int xOffset;
- int yOffset;
- int currheight;
- boolean scrollEastDisabled;
- boolean scrollSouthDisabled;
- Event thisEvent;
- boolean nothingChanged;
- boolean threeDBorder = true;
- int scrollSideways;
- int scrollDown;
- JDPMethodNode makeVisibleNode;
- Color drawColor;
- Color textColor;
- Color textHighlightText;
- Color textHighlight;
- Color controlColor;
- Color back;
- boolean dropEvent;
- boolean loadingStatus;
- String loadSource;
- long lastEventTime;
-
- int calcTextWidth(String var1) {
- int var2 = this.user.u.StringWidth(this.field_1, var1.trim());
- return var2 < this.maxTextWidth ? var2 : this.maxTextWidth;
- }
-
- void drawExpandRect(JDPMethodNode var1, int var2, int var3, int var4) {
- if (var1.leftNodes != null && var1.leftNodes.size() > 0 && var4 == 0 || this.hasRightNodes(var1) && var4 == 1) {
- this.field_1.setColor(Color.white);
- this.field_1.fillRect(var2 - 10, var3 - 12, 8, 8);
- this.field_1.setColor(this.textColor);
- this.field_1.drawRect(var2 - 10, var3 - 12, 8, 8);
- this.field_1.setColor(Color.black);
- if (!var1.expanded) {
- this.field_1.drawLine(var2 - 6, var3 - 10, var2 - 6, var3 - 6);
- }
-
- this.field_1.drawLine(var2 - 8, var3 - 8, var2 - 4, var3 - 8);
- var1.expandRect = new Rectangle(var2 - 10, var3 - 12, 8, 8);
- } else {
- var1.expandRect = null;
- }
- }
-
- int[] calcTotalHeight(JDPMethodNode var1, int var2) {
- if (var2 == 1) {
- if (var1.rightNodes != null) {
- int[] var4 = new int[var1.rightNodes.size()];
-
- for(int var5 = 0; var5 < var1.rightNodes.size(); ++var5) {
- JDPMethodNode var3 = (JDPMethodNode)var1.rightNodes.elementAt(var5);
- if (var3.item == null || var3.item.type != 3 || this.displayGlobals) {
- var4[var5] = this.calcTextHeight(this.getDescription(var3)) + this.nodeSpaceHeight;
- if (var4[var5] < 30 + this.nodeSpaceHeight) {
- var4[var5] = 30 + this.nodeSpaceHeight;
- }
- }
- }
-
- return var4;
- }
- } else if (var2 == 0 && var1.leftNodes != null) {
- int[] var7 = new int[var1.leftNodes.size()];
-
- for(int var8 = 0; var8 < var1.leftNodes.size(); ++var8) {
- JDPMethodNode var6 = (JDPMethodNode)var1.leftNodes.elementAt(var8);
- var7[var8] = this.calcTextHeight(this.getDescription(var6)) + this.nodeSpaceHeight;
- if (var7[var8] < 30 + this.nodeSpaceHeight) {
- var7[var8] = 30 + this.nodeSpaceHeight;
- }
- }
-
- return var7;
- }
-
- return null;
- }
-
- public void setNodeVerticalGap(int var1) {
- this.nodeSpaceHeight = var1;
- this.reDraw();
- }
-
- public int getNodeVerticalGap() {
- return this.nodeSpaceHeight;
- }
-
- JDPMethodNode getNodeVisible(JDPMethodNode var1) {
- for(int var2 = 0; var2 < this.displayedNodes.size(); ++var2) {
- JDPMethodNode var3 = (JDPMethodNode)this.displayedNodes.elementAt(var2);
- if (var3.equals(var1)) {
- return var3;
- }
- }
-
- return null;
- }
-
- void loadPopupMenu(Event var1) {
- if (!this.popupMenu.isShowing()) {
- this.popupMenu.clear();
- this.popupMenu.setBackground(this.controlColor);
- if (this.getShowGlobals()) {
- this.popupMenu.addEntry("Hide Global Variables");
- } else {
- this.popupMenu.addEntry("Display Global Variables");
- }
-
- if (this.getShowNames()) {
- this.popupMenu.addEntry("Hide Names");
- } else {
- this.popupMenu.addEntry("Display Names");
- }
-
- if (this.getShowText()) {
- this.popupMenu.addEntry("Hide Descriptions");
- } else {
- this.popupMenu.addEntry("Display Descriptions");
- }
-
- String[] var2 = new String[]{"Set horizontal spacing", "100 pixels"};
- this.popupMenu.addEntry(var2);
- var2[1] = "125 pixels";
- this.popupMenu.addEntry(var2);
- var2[1] = "150 pixels";
- this.popupMenu.addEntry(var2);
- var2[1] = "200 pixels";
- this.popupMenu.addEntry(var2);
- var2[1] = "250 pixels";
- this.popupMenu.addEntry(var2);
- var2[1] = "300 pixels";
- this.popupMenu.addEntry(var2);
- var2[0] = "Set vertical spacing";
- var2[1] = "15 pixels";
- this.popupMenu.addEntry(var2);
- var2[1] = "30 pixels";
- this.popupMenu.addEntry(var2);
- var2[1] = "45 pixels";
- this.popupMenu.addEntry(var2);
- var2[1] = "60 pixels";
- this.popupMenu.addEntry(var2);
- var2[0] = "Set minimum height";
- var2[1] = "150 pixels";
- this.popupMenu.addEntry(var2);
- var2[1] = "200 pixels";
- this.popupMenu.addEntry(var2);
- var2[1] = "250 pixels";
- this.popupMenu.addEntry(var2);
- var2[1] = "300 pixels";
- this.popupMenu.addEntry(var2);
- var2[1] = "350 pixels";
- this.popupMenu.addEntry(var2);
- var2[1] = "400 pixels";
- this.popupMenu.addEntry(var2);
- var2[1] = "450 pixels";
- this.popupMenu.addEntry(var2);
- var2[1] = "500 pixels";
- this.popupMenu.addEntry(var2);
- this.popupMenu.setForeground(((Component)this).getParent().getForeground());
- this.popupMenu.display(var1.x, var1.y);
- }
- }
-
- public JDPMethodExplorer(JDPUser var1) {
- this.createExplorer(var1, (Panel)null);
- }
-
- public boolean makeVisible(JDPSourceItem var1) {
- if (var1 == null) {
- return false;
- } else {
- JDPMethodNode var2 = this.getNode(var1);
- if (var2 != null) {
- this.makeVisibleNode = var2;
- this.reDraw();
- return true;
- } else {
- return false;
- }
- }
- }
-
- public void setMinimumHeight(int var1) {
- this.minimumHeight = var1;
- }
-
- public int getMinimumHeight() {
- return this.minimumHeight;
- }
-
- public Dimension preferredSize() {
- Dimension var1 = new Dimension(this.minimumWidth, this.minimumHeight);
- return var1;
- }
-
- public void layout() {
- ((Component)this).repaint();
- }
-
- void handlePopupMenu() {
- String var1 = this.popupMenu.getSelectedMenu(0);
- if (var1.equals("Hide Global Variables")) {
- this.setShowGlobals(false);
- } else if (var1.equals("Display Global Variables")) {
- this.setShowGlobals(true);
- } else if (var1.equals("Hide Names")) {
- this.setShowNames(false);
- } else if (var1.equals("Display Names")) {
- this.setShowNames(true);
- } else if (var1.equals("Hide Descriptions")) {
- this.setShowText(false);
- } else if (var1.equals("Display Descriptions")) {
- this.setShowText(true);
- } else if (var1.equals("Set horizontal spacing")) {
- int var5 = Integer.parseInt(this.popupMenu.getSelectedMenu(1).substring(0, 3));
- this.setNodeHorizontalGap(var5);
- } else if (var1.equals("Set vertical spacing")) {
- int var4 = Integer.parseInt(this.popupMenu.getSelectedMenu(1).substring(0, 2));
- this.setNodeVerticalGap(var4);
- } else if (var1.equals("Set minimum height")) {
- int var2 = Integer.parseInt(this.popupMenu.getSelectedMenu(1).substring(0, 3));
- this.setMinimumHeight(var2);
- Container var3 = ((Component)this).getParent();
- if (var3 != null) {
- var3 = ((Component)var3).getParent();
- }
-
- if (var3 != null) {
- var3 = ((Component)var3).getParent();
- }
-
- if (var3 != null) {
- var3 = ((Component)var3).getParent();
- }
-
- if (var3 != null) {
- var3.layout();
- ((Component)var3).paintAll(((Component)var3).getGraphics());
- }
-
- }
- }
-
- public void refreshAllRelations(JDPSourceItem var1) {
- for(int var3 = 0; var3 < var1.components.size(); ++var3) {
- JDPSourceItem var2 = (JDPSourceItem)var1.components.elementAt(var3);
- this.refreshRelations(var2);
- }
-
- }
-
- public void setIconImagePath(String var1) {
- this.imageLoader = new JDPImageLoader(this.user, this, var1);
- (new Thread(this.imageLoader)).start();
- }
-
- public void setClassDescriptor(JDPSourceItem var1) {
- boolean var3 = true;
-
- for(int var4 = 0; var4 < var1.components.size(); ++var4) {
- JDPSourceItem var2 = (JDPSourceItem)var1.components.elementAt(var4);
- if (var2.type == 1 || var2.type == 2 || var2.type == 3) {
- this.addNode(var2);
- if (var3) {
- var3 = false;
- }
- }
- }
-
- for(int var5 = 0; var5 < var1.components.size(); ++var5) {
- JDPSourceItem var7 = (JDPSourceItem)var1.components.elementAt(var5);
- JDPMethodNode var8 = this.getNode(var7);
- if ((var7.type == 1 || var7.type == 2) && var7.callsMethods != null) {
- for(int var6 = 0; var6 < var7.callsMethods.size(); ++var6) {
- this.addRelation(var8, (String)var7.callsMethods.elementAt(var6));
- }
- }
- }
-
- }
-
- void drawIcon(JDPMethodNode var1, int var2, int var3) {
- byte var4 = 0;
- byte var5 = 20;
- int var6 = var1.icon;
- if (var1.equals(this.nodeRoot)) {
- var6 = 1;
- var5 = 30;
- var4 = 20;
- }
-
- var2 -= var5 / 2;
- var3 -= var5 / 2;
- if (var1.item != null) {
- var6 = 0;
- if (var1.item.isprivate) {
- var6 += 2;
- } else if (var1.item.ispublic) {
- ++var6;
- }
-
- if (var1.item.type == 3) {
- var6 += 3;
- }
-
- if (var1.item.type == 1) {
- var6 += 6;
- }
- }
-
- if (var6 >= 0) {
- if (this.iconImages == null) {
- this.iconImages = ((Component)this).createImage(20, 20);
- }
-
- if (this.largeIconImages == null) {
- this.largeIconImages = ((Component)this).createImage(30, 30);
- }
-
- if (var5 == 20) {
- this.grI = this.iconImages.getGraphics();
- } else {
- this.grI = this.largeIconImages.getGraphics();
- }
-
- this.grI.setColor(this.back);
- this.grI.fillRect(0, 0, var5, var5);
- this.grI.drawImage(this.iconImage, -var6 * var5, -var4, (ImageObserver)null);
- if (var5 == 20) {
- this.field_1.drawImage(this.iconImages, var2, var3, (ImageObserver)null);
- } else {
- this.field_1.drawImage(this.largeIconImages, var2, var3, (ImageObserver)null);
- }
-
- var1.iconRect = new Rectangle(var2, var3, var5, var5);
- }
- }
-
- public void setNodeHorizontalGap(int var1) {
- this.nodeSpaceWidth = var1;
- this.reDraw();
- }
-
- public int getNodeHorizontalGap() {
- return this.nodeSpaceWidth;
- }
-
- public void setMinimumWidth(int var1) {
- this.minimumWidth = var1;
- }
-
- public int getMinimumWidth() {
- return this.minimumWidth;
- }
-
- public void refreshAllNodes() {
- for(int var1 = 0; var1 < this.allNodes.size(); ++var1) {
- JDPMethodNode var2 = (JDPMethodNode)this.allNodes.elementAt(var1);
- if (var2.item != null) {
- this.refreshNodeFromItem(var2.item);
- }
- }
-
- }
-
- public void loadSource(String var1, JDPMethodTree var2) {
- this.methodTree = var2;
- this.loadSource(var1);
- }
-
- public void loadSource(String var1) {
- this.loadSource = var1;
- if (!this.loadSource.endsWith(".java")) {
- String var10001 = this.loadSource;
- this.loadSource = var10001 + ".java";
- }
-
- (new Thread(this)).start();
- }
-
- void createExplorer(JDPUser var1, Panel var2) {
- this.user = var1;
- this.targetPanel = var2;
- if (!JDPUser.classactivated) {
- System.out.println("Software Violation - this class may only be used in conjunction with JDesignerPro.");
- } else {
- this.popupMenu = new JDPPopupMenu(var1, this);
- ((Container)this).add(this.popupMenu);
- this.setIconImagePath("images/JDPMETHD.gif");
- this.drawColor = new Color(0, 0, 200);
- this.textColor = new Color(0, 0, 150);
- ((Component)this).setForeground(this.textColor);
- this.controlColor = ((Component)this).getBackground();
- Color var3 = new Color(255, 255, 214);
- ((Component)this).setBackground(var3);
- this.textHighlightText = var3;
- this.textHighlight = this.textColor;
- this.back = var3;
- this.textHighlightText = JDPUtils.getTextHighlightText();
- this.textHighlight = JDPUtils.getTextHighlight();
- this.iconImages = ((Component)this).createImage(20, 20);
- this.largeIconImages = ((Component)this).createImage(30, 30);
- this.clear();
- ((Component)this).show();
- }
- }
-
- Rectangle calcTotalImageDimension() {
- Rectangle var1 = new Rectangle();
- var1.width = 2 * this.nodeSpaceWidth;
- var1.x = -this.nodeSpaceWidth - 20;
- JDPMethodNode var2 = this.nodeRoot;
- JDPMethodNode var5 = null;
- boolean var6 = true;
-
- while(var2 != null && var6) {
- if (var2.leftNodes == null) {
- var6 = false;
- } else {
- JDPMethodNode var4 = null;
-
- for(int var7 = 0; var7 < var2.leftNodes.size(); ++var7) {
- JDPMethodNode var3 = (JDPMethodNode)var2.leftNodes.elementAt(var7);
- if (var3.expanded && !var3.equals(var2) && (var5 == null || !var3.equals(var5))) {
- var5 = var2;
- var4 = var3;
- var1.width += this.nodeSpaceWidth;
- var1.x -= this.nodeSpaceWidth;
- break;
- }
- }
-
- var2 = var4;
- }
- }
-
- var6 = true;
- var2 = this.nodeRoot;
-
- while(var2 != null && var6) {
- if (var2.rightNodes == null) {
- var6 = false;
- } else {
- JDPMethodNode var21 = null;
-
- for(int var28 = 0; var28 < var2.rightNodes.size(); ++var28) {
- JDPMethodNode var18 = (JDPMethodNode)var2.rightNodes.elementAt(var28);
- if ((var18.item == null || var18.item.type != 3 || this.displayGlobals) && var18.expanded && !var18.equals(var2) && (var5 == null || !var18.equals(var5))) {
- var5 = var2;
- var21 = var18;
- var1.width += this.nodeSpaceWidth;
- break;
- }
- }
-
- var2 = var21;
- }
- }
-
- var1.width += this.nodeSpaceWidth * 2;
- var1.x -= this.nodeSpaceWidth;
- var2 = this.nodeRoot;
- var5 = null;
- var6 = true;
- int var29 = 0;
- int var8 = 0;
- int var9 = 0;
- int var10 = 0;
- int var11 = 0;
- int var12 = 0;
- var1.y = 0;
- var1.height = 0;
-
- while(var2 != null && var6) {
- int var13 = 0;
- if (var2.leftNodes == null) {
- var6 = false;
- } else {
- JDPMethodNode var22 = null;
- var29 = 0;
-
- for(int var14 = 0; var14 < var2.leftNodes.size(); ++var14) {
- JDPMethodNode var19 = (JDPMethodNode)var2.leftNodes.elementAt(var14);
- var9 = this.calcTextHeight(this.getDescription(var19));
- if (var9 < 30) {
- var9 = 30;
- }
-
- var13 += var9 + this.nodeSpaceHeight;
- if (var19.expanded) {
- if (var29 == 0) {
- var29 = var13 - var9 / 2 - this.nodeSpaceHeight;
- }
-
- if (var22 == null && !var19.equals(var2) && (var5 == null || !var19.equals(var5))) {
- var5 = var2;
- var22 = var19;
- }
- }
- }
-
- var10 = var8 - var13 / 2;
- if (var10 < var1.y) {
- var1.y = var10;
- }
-
- var11 = var8 + var13 / 2;
- if (var11 > var12) {
- var12 = var11;
- }
-
- var8 = var8 - var13 / 2 + var29;
- var2 = var22;
- }
- }
-
- var6 = true;
- var2 = this.nodeRoot;
- var8 = 0;
- var29 = 0;
-
- while(var2 != null && var6) {
- int var40 = 0;
- if (var2.rightNodes == null) {
- var6 = false;
- } else {
- JDPMethodNode var23 = null;
- var29 = 0;
-
- for(int var41 = 0; var41 < var2.rightNodes.size(); ++var41) {
- JDPMethodNode var20 = (JDPMethodNode)var2.rightNodes.elementAt(var41);
- if (var20.item == null || var20.item.type != 3 || this.displayGlobals) {
- var9 = this.calcTextHeight(this.getDescription(var20));
- if (var9 < 30) {
- var9 = 30;
- }
-
- var40 += var9 + this.nodeSpaceHeight;
- if (var20.expanded) {
- if (var29 == 0) {
- var29 = var40 - var9 / 2 - this.nodeSpaceHeight;
- }
-
- if (var23 == null && !var20.equals(var2) && (var5 == null || !var20.equals(var5))) {
- var5 = var2;
- var23 = var20;
- }
- }
- }
- }
-
- var10 = var8 - var40 / 2;
- if (var10 < var1.y) {
- var1.y = var10;
- }
-
- var11 = var8 + var40 / 2;
- if (var11 > var12) {
- var12 = var11;
- }
-
- var8 = var8 - var40 / 2 + var29;
- var2 = var23;
- }
- }
-
- var1.height = var12 - var1.y;
- return var1;
- }
-
- boolean hasRightNodes(JDPMethodNode var1) {
- if (var1.rightNodes != null && var1.rightNodes.size() > 0) {
- if (this.displayGlobals) {
- return true;
- }
-
- for(int var3 = 0; var3 < var1.rightNodes.size(); ++var3) {
- JDPMethodNode var2 = (JDPMethodNode)var1.rightNodes.elementAt(var3);
- if (var2.item == null || var2.item.type == 2) {
- return true;
- }
- }
- }
-
- return false;
- }
-
- int StringHeight() {
- if (this.field_1 == null) {
- return 0;
- } else {
- if (this.field_1.getFont() != this.lastFont) {
- this.getFontWidths();
- this.lastFont = this.field_1.getFont();
- }
-
- return this.field_2.getHeight();
- }
- }
-
- public void run() {
- if (this.loadSource != null && !this.loadingStatus) {
- this.clear();
- this.loadingStatus = true;
- this.reDraw();
- if (this.field_0 == null) {
- this.field_0 = new JDPSourceParser(this.user);
- }
-
- String var1 = this.user.u.readFromFile(this.loadSource);
- if (var1 != null) {
- JDPSourceItem var2 = this.field_0.parseSource(var1);
- this.field_0.determineCalledMethods(var2);
- this.setClassDescriptor(var2);
- this.setRootNode(var2);
- if (this.methodTree != null) {
- this.methodTree.setClassDescriptor(var2);
- this.setRootNode(this.methodTree.getSelectedSourceItem());
- this.thisEvent = new Event(this, 701, (Object)null);
- }
- }
-
- this.loadingStatus = false;
- this.reDraw();
- }
-
- }
-
- public boolean handleEvent(Event var1) {
- if (this.scrollEast != null && var1.target.equals(this.scrollEast)) {
- byte var6 = 20;
- if (this.scrollSouth != null && this.scrollSouth.isVisible()) {
- var6 = 30;
- }
-
- this.nothingChanged = false;
- switch (var1.id) {
- case 601:
- this.dropEvent = true;
- this.yOffset -= var6;
- ((Component)this).repaint(2, 2, this.Bounds.width, this.Bounds.height);
- return true;
- case 602:
- this.dropEvent = true;
- this.yOffset += var6;
- ((Component)this).repaint(2, 2, this.Bounds.width, this.Bounds.height);
- return true;
- case 603:
- this.dropEvent = true;
- this.yOffset = this.yOffset - this.Bounds.height + var6;
- ((Component)this).repaint(2, 2, this.Bounds.width, this.Bounds.height);
- return true;
- case 604:
- this.dropEvent = true;
- this.yOffset = this.yOffset + this.Bounds.height - var6;
- ((Component)this).repaint(2, 2, this.Bounds.width, this.Bounds.height);
- return true;
- case 605:
- if (this.dropEvent) {
- this.dropEvent = false;
- return true;
- }
-
- this.yOffset = this.scrollEast.getValue();
- ((Component)this).repaint(2, 2, this.Bounds.width, this.Bounds.height);
- return true;
- default:
- this.dropEvent = false;
- return false;
- }
- } else if (this.scrollSouth != null && var1.target.equals(this.scrollSouth)) {
- this.nothingChanged = false;
- switch (var1.id) {
- case 601:
- this.dropEvent = true;
- this.xOffset -= 10;
- ((Component)this).repaint(2, 2, this.Bounds.width, this.Bounds.height);
- return true;
- case 602:
- this.dropEvent = true;
- this.xOffset += 10;
- ((Component)this).repaint(2, 2, this.Bounds.width, this.Bounds.height);
- return true;
- case 603:
- this.dropEvent = true;
- this.xOffset = this.xOffset - this.Bounds.width + 10;
- ((Component)this).repaint(2, 2, this.Bounds.width, this.Bounds.height);
- return true;
- case 604:
- this.dropEvent = true;
- this.xOffset = this.xOffset + this.Bounds.width - 10;
- ((Component)this).repaint(2, 2, this.Bounds.width, this.Bounds.height);
- return true;
- case 605:
- if (this.dropEvent) {
- this.dropEvent = false;
- return true;
- }
-
- this.xOffset = this.scrollSouth.getValue();
- ((Component)this).repaint(2, 2, this.Bounds.width, this.Bounds.height);
- return true;
- default:
- this.dropEvent = false;
- return false;
- }
- } else {
- this.dropEvent = false;
- if (!((Component)this).isEnabled()) {
- return true;
- } else {
- switch (var1.id) {
- case 501:
- ((Component)this).requestFocus();
-
- for(int var5 = 0; var5 < this.displayedNodes.size(); ++var5) {
- JDPMethodNode var3 = (JDPMethodNode)this.displayedNodes.elementAt(var5);
- if (var3.expandRect != null && var3.expandRect.inside(var1.x, var1.y)) {
- if (var3.expanded) {
- var3.expanded = false;
- } else {
- this.resetExpanded(var3.nodeColumn);
- var3.expanded = true;
- }
-
- this.resetSelections();
- var3.selected = true;
- this.makeVisibleNode = var3;
- this.lastEventTime = (new Date()).getTime();
- Date var8 = new Date();
- this.thisEvent = new Event(this, var8.getTime(), 701, var1.x, var1.y, var1.key, var1.modifiers, var3.name);
- this.reDraw();
- return true;
- }
-
- if (var3.textRect != null && var3.textRect.inside(var1.x, var1.y)) {
- this.resetSelections();
- var3.selected = true;
- this.makeVisibleNode = var3;
- this.lastEventTime = (new Date()).getTime();
- Date var7 = new Date();
- this.thisEvent = new Event(this, var7.getTime(), 701, var1.x, var1.y, var1.key, var1.modifiers, var3.name);
- this.reDraw();
- return true;
- }
-
- if (var3.iconRect != null && var3.iconRect.inside(var1.x, var1.y)) {
- this.setRootNode(var3.key);
- this.makeVisibleNode = var3;
- var3.selected = true;
- this.lastEventTime = (new Date()).getTime();
- Date var4 = new Date();
- this.thisEvent = new Event(this, var4.getTime(), 1001, var1.x, var1.y, var1.key, var1.modifiers, var3.name);
- this.reDraw();
- return true;
- }
- }
-
- this.lastEventTime = 0L;
- if (!var1.target.equals(this)) {
- this.lastEventTime = (new Date()).getTime();
- }
-
- return false;
- case 502:
- long var2 = (new Date()).getTime();
- if (var2 - this.lastEventTime < 500L) {
- return true;
- }
-
- this.loadPopupMenu(var1);
- return true;
- case 1001:
- if (var1.target.equals(this.popupMenu)) {
- this.handlePopupMenu();
- this.lastEventTime = (new Date()).getTime();
- return true;
- }
-
- return false;
- default:
- this.lastEventTime = (new Date()).getTime();
- return false;
- }
- }
- }
- }
-
- public boolean addRelation(String var1, String var2) {
- JDPMethodNode var3 = this.getNode(var1);
- JDPMethodNode var4 = this.getNode(var2);
- return this.addRelation(var3, var4);
- }
-
- public boolean addRelation(JDPMethodNode var1, String var2) {
- JDPMethodNode var3 = this.getNode(var2);
- return this.addRelation(var1, var3);
- }
-
- public boolean addRelation(JDPMethodNode var1, JDPMethodNode var2) {
- if (var1 != null && var2 != null) {
- this.addRightRelation(var1, var2);
- if (var2.leftNodes == null) {
- var2.leftNodes = new Vector();
- }
-
- if (var2.leftNodes.indexOf(var1) < 0) {
- var2.leftNodes.addElement(var1);
- }
-
- if (var2.leftNodes.size() > 0 && var2.item != null && this.methodTree != null) {
- JDPTreeBranch var3 = this.methodTree.getBranch(var2.item);
- if (var3 != null) {
- var3.compPosition = "";
- }
- }
-
- return true;
- } else {
- return false;
- }
- }
-
- public boolean addRightRelation(JDPMethodNode var1, JDPMethodNode var2) {
- if (var1 != null && var2 != null) {
- if (var1.rightNodes == null) {
- var1.rightNodes = new Vector();
- }
-
- if (var1.rightNodes.indexOf(var2) < 0) {
- var1.rightNodes.addElement(var2);
- }
-
- return true;
- } else {
- return false;
- }
- }
-
- Point getNodePosition(JDPMethodNode var1) {
- for(int var2 = 0; var2 < this.displayedNodes.size(); ++var2) {
- JDPMethodNode var3 = (JDPMethodNode)this.displayedNodes.elementAt(var2);
- if (var3.equals(var1)) {
- return var1.position;
- }
- }
-
- return null;
- }
-
- public void setShowNames(boolean var1) {
- this.displayName = var1;
- this.reDraw();
- }
-
- public boolean getShowNames() {
- return this.displayName;
- }
-
- void resetExpanded(int var1) {
- if (var1 == 0) {
- for(int var4 = 0; var4 < this.allNodes.size(); ++var4) {
- JDPMethodNode var5 = (JDPMethodNode)this.allNodes.elementAt(var4);
- var5.expanded = false;
- }
-
- } else {
- for(int var2 = 0; var2 < this.displayedNodes.size(); ++var2) {
- JDPMethodNode var3 = (JDPMethodNode)this.displayedNodes.elementAt(var2);
- if (var3.nodeColumn >= var1 && var1 > 1000) {
- var3.expanded = false;
- } else if (var3.nodeColumn <= var1 && var1 < 1000) {
- var3.expanded = false;
- }
- }
-
- }
- }
-
- void drawNode(JDPMethodNode var1, int var2, int var3, int var4, int var5) {
- if (var1 != null) {
- if (this.makeVisibleNode != null && this.makeVisibleNode.equals(var1)) {
- boolean var6 = false;
- boolean var7 = false;
- int var8 = this.nodeSpaceWidth + 30;
- if (var2 < 100) {
- this.scrollSideways = -100;
- } else if (var2 > ((Component)this).bounds().width - var8) {
- this.scrollSideways = var2 - ((Component)this).bounds().width + var8;
- } else {
- var6 = true;
- }
-
- if (var3 < 40) {
- this.scrollDown = -40;
- } else if (var3 > ((Component)this).bounds().height - 90) {
- this.scrollDown = var3 - ((Component)this).bounds().height + 90;
- } else {
- var7 = true;
- }
-
- if (var6 && var7) {
- this.makeVisibleNode = null;
- }
- }
-
- this.displayedNodes.addElement(var1);
- var1.position = new Point(var2, var3);
- var1.nodeColumn = var5;
- if (var4 == 0) {
- this.drawIcon(var1, var2, var3);
- }
-
- if (var1.expanded || var1.equals(this.nodeRoot)) {
- if (var4 != 0) {
- var2 += this.nodeSpaceWidth;
- if (var1.rightNodes != null) {
- int[] var9 = this.calcTotalHeight(var1, 1);
- int var10 = 0;
-
- for(int var11 = 0; var11 < var9.length - 1; ++var11) {
- var10 += var9[var11];
- }
-
- var3 -= var10 / 2;
- boolean var24 = true;
-
- for(int var12 = 0; var12 < var1.rightNodes.size(); ++var12) {
- JDPMethodNode var20 = (JDPMethodNode)var1.rightNodes.elementAt(var12);
- if (var20.item == null || var20.item.type != 3 || this.displayGlobals) {
- if (var20.equals(var1)) {
- this.drawArc(var1);
- } else {
- JDPMethodNode var13 = this.getNodeVisible(var20);
- if (var13 != null) {
- this.drawArrow(var1, var13);
- } else {
- if (!var24) {
- var3 += var9[var12] / 2;
- }
-
- var24 = false;
- this.drawNode(var20, var2, var3, 1, var5 + 1);
- this.drawArrow(var1, var20);
- var3 += var9[var12] / 2;
- }
- }
- }
- }
- }
- }
-
- if (var4 != 1) {
- var2 -= this.nodeSpaceWidth;
- if (var1.leftNodes != null) {
- int[] var22 = this.calcTotalHeight(var1, 0);
- int var23 = 0;
-
- for(int var25 = 0; var25 < var22.length - 1; ++var25) {
- var23 += var22[var25];
- }
-
- var3 -= var23 / 2;
-
- for(int var26 = 0; var26 < var1.leftNodes.size(); ++var26) {
- JDPMethodNode var21 = (JDPMethodNode)var1.leftNodes.elementAt(var26);
- if (var21.equals(var1)) {
- this.drawArc(var1);
- } else {
- JDPMethodNode var27 = this.getNodeVisible(var21);
- if (var27 != null) {
- this.drawArrow(var27, var1);
- } else {
- this.drawNode(var21, var2, var3, 0, var5 - 1);
- this.drawArrow(var21, var1);
- var3 += var22[var26] / 2;
- if (var26 + 1 < var22.length) {
- var3 += var22[var26 + 1] / 2;
- }
- }
- }
- }
- }
- }
- }
-
- if (var4 != 0) {
- this.drawIcon(var1, var2, var3);
- }
-
- this.drawExpandRect(var1, var2, var3, var4);
- this.drawText(var1, var2, var3, var4);
- }
- }
-
- public JDPMethodNode getNode(String var1) {
- for(int var2 = 0; var2 < this.allNodes.size(); ++var2) {
- JDPMethodNode var3 = (JDPMethodNode)this.allNodes.elementAt(var2);
- if (var3.key.equals(var1)) {
- return var3;
- }
- }
-
- return null;
- }
-
- public JDPMethodNode getNode(JDPSourceItem var1) {
- for(int var2 = 0; var2 < this.allNodes.size(); ++var2) {
- JDPMethodNode var3 = (JDPMethodNode)this.allNodes.elementAt(var2);
- if (var3.item.equals(var1)) {
- return var3;
- }
- }
-
- return null;
- }
-
- public boolean setRootNode(String var1) {
- JDPMethodNode var2 = this.getNode(var1);
- this.nodeRoot = var2;
- this.resetSelections();
- this.resetExpanded(0);
- this.reDraw();
- return var2 != null;
- }
-
- void drawArc(JDPMethodNode var1) {
- Point var2 = this.getNodePosition(var1);
- int var3 = var2.x;
- int var4 = var2.y;
- byte var5 = 30;
- int var6 = 10;
- if (var1.equals(this.nodeRoot)) {
- var5 = 40;
- var6 = 15;
- }
-
- short var7 = 0;
- short var8 = 360;
- byte var9 = 5;
- int var10 = var9 + 4;
- byte var11 = 3;
- if (var1.nodeColumn >= 1000) {
- var11 = var5;
- var6 = -var6;
- var10 = -var10;
- } else {
- var7 = 270;
- var8 = 300;
- var4 -= 5;
- var3 -= 5;
- }
-
- if (var1.selected) {
- this.field_1.setColor(Color.red);
- } else {
- this.field_1.setColor(this.drawColor);
- }
-
- this.field_1.drawArc(var3 - var11, var4 - var5, var5, var5, var7, var8);
- int[] var12 = new int[]{var3 + var6 + var10, var3 + var6, var3 + var6 + var10, var3 + var6 + var10};
- int[] var13 = new int[]{var4 - var9, var4, var4 + var9, var4 - var9};
- this.field_1.fillPolygon(var12, var13, 4);
- }
-
- public boolean setRootNode(JDPSourceItem var1) {
- if (var1 == null) {
- this.nodeRoot = null;
- this.resetSelections();
- this.resetExpanded(0);
- this.reDraw();
- return false;
- } else {
- JDPMethodNode var2 = this.getNode(var1);
- this.nodeRoot = var2;
- this.resetSelections();
- this.resetExpanded(0);
- this.reDraw();
- return var2 != null;
- }
- }
-
- public JDPSourceItem getSelectedItem() {
- for(int var1 = 0; var1 < this.allNodes.size(); ++var1) {
- JDPMethodNode var2 = (JDPMethodNode)this.allNodes.elementAt(var1);
- if (var2.selected) {
- return var2.item;
- }
- }
-
- return null;
- }
-
- public void refreshNodeFromItem(JDPSourceItem var1) {
- JDPMethodNode var2 = this.getNode(var1);
- if (var2 != null) {
- var2.key = var1.name;
- if (var1.parmNames != null) {
- String var10001 = var2.key;
- var2.key = var10001 + Integer.toString(var1.parmNames.size());
- }
-
- var2.name = var1.name;
- var2.text = var1.description;
- var2.item = var1;
- var1.node = var2;
- this.reDraw();
- }
-
- }
-
- public void setShowText(boolean var1) {
- this.displayText = var1;
- this.reDraw();
- }
-
- public boolean getShowText() {
- return this.displayText;
- }
-
- public void refreshRelations(JDPSourceItem var1) {
- JDPMethodNode var2 = this.getNode(var1);
- if (var2 != null) {
- if (var2.rightNodes != null) {
- for(int var4 = 0; var4 < var2.rightNodes.size(); ++var4) {
- JDPMethodNode var3 = (JDPMethodNode)var2.rightNodes.elementAt(var4);
- var3.leftNodes.removeElement(var2);
- if (var3.leftNodes.size() == 0 && this.methodTree != null) {
- this.methodTree.getBranch(var3.item).compPosition = "UNUSED";
- }
- }
- }
-
- var2.rightNodes = null;
- if ((var1.type == 1 || var1.type == 2) && var1.callsMethods != null) {
- for(int var5 = 0; var5 < var1.callsMethods.size(); ++var5) {
- this.addRelation(var2, (String)var1.callsMethods.elementAt(var5));
- }
- }
-
- }
- }
-
- public void update(Graphics var1) {
- Dimension var2 = ((Component)this).size();
- if (this.Bounds == null || var2.width != this.Bounds.width || var2.height != this.Bounds.height || !((Component)this).getFont().equals(this.prevFont) || !this.prevForeground.equals(((Component)this).getForeground()) || !this.prevBackground.equals(((Component)this).getBackground())) {
- this.nothingChanged = false;
- }
-
- if (this.imageLoader != null && this.imageLoader.getImageReady()) {
- this.iconImage = this.imageLoader.thisImage;
- this.imageLoader = null;
- this.nothingChanged = false;
- }
-
- if (this.nothingChanged && this.offscreen != null && this.thisEvent == null) {
- var1.drawImage(this.offscreen, 0, 0, (ImageObserver)null);
- } else if (this.iconImage != null) {
- this.nothingChanged = true;
- this.prevFont = ((Component)this).getFont();
- this.prevForeground = ((Component)this).getForeground();
- this.prevBackground = ((Component)this).getBackground();
- this.back = ((Component)this).getBackground();
- this.controlColor = ((Component)this).getParent().getBackground();
- this.displayedNodes = new Vector();
- this.maxTextWidth = this.nodeSpaceWidth - 30;
- Rectangle var3 = ((Component)this).bounds();
- if (this.offscreen == null || var3.width != this.offscreensize.width || var3.height != this.offscreensize.height) {
- this.offscreen = ((Component)this).createImage(var3.width, var3.height);
- this.offscreensize = var3;
- this.field_1 = this.offscreen.getGraphics();
- this.field_1.setFont(((Component)this).getFont());
- }
-
- this.Bounds = ((Component)this).bounds();
- if (this.loadingStatus) {
- this.field_1.setColor(this.back);
- this.field_1.fillRect(2, 2, this.Bounds.width, this.Bounds.height);
- this.field_1.setColor(this.drawColor);
- this.field_1.drawString("Loading...", this.Bounds.width / 2 - 30, this.Bounds.height / 2);
- } else {
- int var4 = this.Bounds.width / 2;
- int var5 = this.Bounds.height / 2;
- Rectangle var6 = this.calcTotalImageDimension();
- if (-var6.x > var4) {
- var4 = -var6.x;
- }
-
- if (-var6.y > var5 - 20) {
- var5 = -var6.y + 20;
- }
-
- this.maxWidth = var4 + var6.width + var6.x;
- this.maxHeight = var5 + var6.height + var6.y;
- if (this.maxWidth > 0 && this.xOffset > this.maxWidth + 20 - this.Bounds.width) {
- this.xOffset = this.maxWidth + 20 - this.Bounds.width;
- }
-
- if (this.xOffset < 0) {
- this.xOffset = 0;
- }
-
- if (this.maxHeight > 0 && this.yOffset > this.maxHeight + 20 - this.Bounds.height) {
- this.yOffset = this.maxHeight + 20 - this.Bounds.height;
- }
-
- if (this.yOffset < 0) {
- this.yOffset = 0;
- }
-
- this.field_1.setFont(((Component)this).getFont());
- this.field_1.setColor(this.back);
- this.field_1.fillRect(2, 2, this.Bounds.width, this.Bounds.height);
- this.currheight = this.StringHeight();
- this.drawNode(this.nodeRoot, var4 - this.xOffset - 20, var5 - this.yOffset, 3, 1000);
- }
-
- byte var7 = 0;
- if (this.threeDBorder) {
- this.field_1.setColor(JDPUtils.darker(this.controlColor));
- this.field_1.drawLine(0, 0, this.Bounds.width, 0);
- this.field_1.drawLine(0, 0, 0, this.Bounds.height);
- this.field_1.setColor(Color.black);
- this.field_1.drawLine(1, 1, this.Bounds.width - 1, 1);
- this.field_1.drawLine(1, 1, 1, this.Bounds.height - 1);
- this.field_1.setColor(this.controlColor);
- this.field_1.drawLine(this.Bounds.width - 2, 2, this.Bounds.width - 2, this.Bounds.height - 2);
- this.field_1.drawLine(2, this.Bounds.height - 2, this.Bounds.width - 2, this.Bounds.height - 2);
- this.field_1.setColor(JDPUtils.brighter(this.controlColor));
- this.field_1.drawLine(this.Bounds.width - 1, 1, this.Bounds.width - 1, this.Bounds.height - 1);
- this.field_1.drawLine(1, this.Bounds.height - 1, this.Bounds.width - 1, this.Bounds.height - 1);
- } else {
- var7 = 1;
- this.field_1.setColor(Color.white);
- this.field_1.drawRect(1, 1, this.Bounds.width - 2, this.Bounds.height - 2);
- this.field_1.setColor(Color.black);
- this.field_1.drawRect(0, 0, this.Bounds.width - 1, this.Bounds.height - 1);
- }
-
- if (this.yOffset == 1) {
- this.yOffset = 0;
- }
-
- if (this.Bounds.height > this.maxHeight - 1 && this.yOffset <= 0) {
- if (this.scrollEast != null) {
- this.scrollEast.hide();
- }
-
- this.widthRect = new Rectangle(this.Bounds.width - 7, 0, 4, this.Bounds.height);
- } else {
- if (this.scrollEast == null) {
- this.scrollEast = new Scrollbar(1, 0, 100, 0, 100);
- ((Container)this).add(this.scrollEast);
- this.scrollEast.setBackground(this.controlColor);
- }
-
- this.maxWidth += 15;
- int var8 = this.maxHeight;
- if (this.maxHeight < this.Bounds.height) {
- var8 += this.yOffset;
- }
-
- int var11 = 0;
- if (System.getProperty("java.vendor").startsWith("Netscape") && System.getProperty("java.version").compareTo("1.1.5") < 0 || System.getProperty("java.vendor").startsWith("Microsoft") && System.getProperty("java.version").compareTo("1.1.4") < 0) {
- var11 = this.Bounds.height;
- }
-
- this.scrollEast.setValues(this.yOffset, this.Bounds.height, 0, var8 - var11);
- if ((this.Bounds.width <= this.maxWidth || this.xOffset > 0) && !this.scrollSouthDisabled) {
- this.scrollEast.reshape(this.Bounds.width - 13 + var7, 2 - var7, 12, this.Bounds.height - 15 + var7 * 2);
- } else {
- this.scrollEast.reshape(this.Bounds.width - 13 + var7, 2 - var7, 12, this.Bounds.height - 3 + var7 * 2);
- }
-
- if (this.scrollEastDisabled) {
- this.scrollEast.hide();
- } else {
- this.scrollEast.show();
- }
-
- this.layout();
- this.widthRect = new Rectangle(this.Bounds.width - 19, 0, 5, this.Bounds.height);
- }
-
- if (this.Bounds.width > this.maxWidth && this.xOffset <= 0) {
- if (this.scrollSouth != null) {
- this.scrollSouth.hide();
- }
- } else {
- if (this.scrollSouth == null) {
- this.scrollSouth = new Scrollbar(0, 0, 100, 0, 100);
- ((Container)this).add(this.scrollSouth);
- this.scrollSouth.setBackground(this.controlColor);
- }
-
- this.maxHeight += 15;
- int var9 = 0;
- if (System.getProperty("java.vendor").startsWith("Netscape") && System.getProperty("java.version").compareTo("1.1.5") < 0 || System.getProperty("java.vendor").startsWith("Microsoft") && System.getProperty("java.version").compareTo("1.1.4") < 0) {
- var9 = this.Bounds.width;
- }
-
- this.scrollSouth.setValues(this.xOffset, this.Bounds.width, 0, this.maxWidth - var9);
- if (this.scrollEast != null && this.scrollEast.isVisible()) {
- this.scrollSouth.reshape(2 - var7, this.Bounds.height - 13 + var7, this.Bounds.width - 3 + var7 * 2 - 12, 12);
- } else {
- this.scrollSouth.reshape(2 - var7, this.Bounds.height - 13 + var7, this.Bounds.width - 3 + var7 * 2, 12);
- }
-
- if (this.scrollSouthDisabled) {
- this.scrollSouth.hide();
- } else {
- this.scrollSouth.show();
- }
- }
-
- if (this.scrollEast != null && this.scrollSouth != null && this.scrollEast.isVisible() && this.scrollSouth.isVisible()) {
- this.field_1.setColor(this.controlColor);
- this.field_1.fillRect(this.Bounds.width - 14, this.Bounds.height - 14, 13, 13);
- }
-
- var1.drawImage(this.offscreen, 0, 0, this.Bounds.width, this.Bounds.height, (ImageObserver)null);
- if (this.thisEvent != null) {
- Event var10 = this.thisEvent;
- this.thisEvent = null;
- super.postEvent(var10);
- }
-
- if (this.scrollDown != 0 || this.scrollSideways != 0) {
- this.xOffset += this.scrollSideways;
- this.yOffset += this.scrollDown;
- this.scrollSideways = 0;
- this.scrollDown = 0;
- this.makeVisibleNode = null;
- this.reDraw();
- }
-
- }
- }
-
- public void setScrollEastDisabled(boolean var1) {
- this.scrollEastDisabled = var1;
- this.reDraw();
- }
-
- public boolean getScrollEastDisabled() {
- return this.scrollEastDisabled;
- }
-
- public void setShowGlobals(boolean var1) {
- this.displayGlobals = var1;
- this.reDraw();
- }
-
- public boolean getShowGlobals() {
- return this.displayGlobals;
- }
-
- int[] getFontWidths() {
- this.field_2 = this.field_1.getFontMetrics();
- this.widths = this.field_2.getWidths();
- return this.widths;
- }
-
- int calcTextHeight(String var1) {
- StringTokenizer var2 = new StringTokenizer(var1, " -", true);
- int var4 = 0;
-
- int var5;
- int var6;
- for(var6 = 1; var2.hasMoreTokens(); var4 += var5) {
- String var3 = var2.nextToken();
- var5 = this.user.u.StringWidth(this.field_1, var3);
- if (var5 > this.maxTextWidth) {
- for(int var7 = 0; var7 < var3.length(); ++var7) {
- String var9 = var3.substring(var7, var7 + 1);
- int var8 = this.user.u.StringWidth(this.field_1, var9);
- if (var4 + var8 < this.maxTextWidth) {
- var4 += var8;
- } else {
- var4 = var8;
- ++var6;
- }
- }
-
- var5 = 0;
- var3 = "";
- }
-
- if (var4 + var5 > this.maxTextWidth) {
- ++var6;
- var4 = 0;
- }
- }
-
- return var6 * (this.currheight - 2);
- }
-
- public String getDescription(JDPMethodNode var1) {
- String var2 = "";
- if (this.displayName && var1.name != null) {
- var2 = var2 + var1.name;
- }
-
- if (this.displayName && this.displayText && var1.name != null && var1.text != null && !var1.name.equals("") && !var1.text.equals("")) {
- var2 = var2 + " - ";
- }
-
- if (this.displayText && var1.text != null) {
- var2 = var2 + var1.text;
- }
-
- return var2;
- }
-
- public void reDraw() {
- this.nothingChanged = false;
- ((Component)this).repaint();
- }
-
- public void paint(Graphics var1) {
- this.update(var1);
- }
-
- public void removeNode(JDPMethodNode var1) {
- if (var1.rightNodes != null) {
- for(int var3 = 0; var3 < var1.rightNodes.size(); ++var3) {
- JDPMethodNode var2 = (JDPMethodNode)var1.rightNodes.elementAt(var3);
- if (var2.leftNodes != null) {
- var2.leftNodes.removeElement(var1);
- if (var2.leftNodes.size() == 0) {
- JDPTreeBranch var4 = this.methodTree.getBranch(var2.item);
- if (var4 != null) {
- var4.compPosition = "UNUSED";
- }
- }
- }
- }
- }
-
- this.displayedNodes.removeElement(var1);
- this.allNodes.removeElement(var1);
- if (this.field_0 != null && var1.item != null) {
- this.field_0.removeItem(var1.item);
- }
-
- System.gc();
- }
-
- public JDPMethodNode getSelectedNode() {
- for(int var1 = 0; var1 < this.allNodes.size(); ++var1) {
- JDPMethodNode var2 = (JDPMethodNode)this.allNodes.elementAt(var1);
- if (var2.selected) {
- return var2;
- }
- }
-
- return null;
- }
-
- public Dimension minimumSize() {
- Dimension var1 = new Dimension(this.minimumWidth, this.minimumHeight);
- return var1;
- }
-
- void drawArrow(JDPMethodNode var1, JDPMethodNode var2) {
- Point var3 = this.getNodePosition(var1);
- Point var4 = this.getNodePosition(var2);
- int var5 = var3.x;
- int var6 = var3.y;
- int var7 = var4.x;
- int var8 = var4.y;
- if (var3.x < var4.x) {
- var5 += 10;
- var7 -= 10;
- if (var1.equals(this.nodeRoot)) {
- var5 += 5;
- }
-
- if (var2.equals(this.nodeRoot)) {
- var7 -= 5;
- }
- } else if (var3.x > var4.x) {
- var5 -= 10;
- var7 += 10;
- if (var1.equals(this.nodeRoot)) {
- var5 -= 5;
- }
-
- if (var2.equals(this.nodeRoot)) {
- var7 += 5;
- }
-
- if (var6 > var8) {
- var6 -= 5;
- var8 += 5;
- } else if (var6 < var8) {
- var6 += 5;
- var8 -= 5;
- } else {
- var6 -= 5;
- var8 -= 5;
- }
- } else if (var6 > var8) {
- var6 -= 10;
- var8 += 10;
- if (var1.equals(this.nodeRoot)) {
- var6 -= 5;
- }
-
- if (var2.equals(this.nodeRoot)) {
- var8 += 5;
- }
- } else {
- var6 += 10;
- var8 -= 10;
- if (var1.equals(this.nodeRoot)) {
- var6 += 5;
- }
-
- if (var2.equals(this.nodeRoot)) {
- var8 -= 5;
- }
- }
-
- byte var9 = 5;
- if (!var1.selected && !var2.selected) {
- this.field_1.setColor(this.drawColor);
- } else {
- this.field_1.setColor(Color.red);
- }
-
- int var10 = var9 + 4;
- if (var5 < var7) {
- var10 = -var10;
- } else if (var5 == var7 && var6 < var8) {
- var10 = -var10;
- }
-
- if (var5 != var7) {
- this.field_1.drawLine(var5, var6, var7 + var10, var8);
- int[] var13 = new int[]{var7 + var10, var7, var7 + var10, var7 + var10};
- int[] var14 = new int[]{var8 - var9, var8, var8 + var9, var8 - var9};
- this.field_1.fillPolygon(var13, var14, 4);
- } else {
- this.field_1.drawLine(var5, var6, var7, var8);
- int[] var11 = new int[]{var8 + var10, var8, var8 + var10, var8 + var10};
- int[] var12 = new int[]{var7 - var9, var7, var7 + var9, var7 - var9};
- this.field_1.fillPolygon(var12, var11, 4);
- }
- }
-
- public void addNode(String var1, String var2) {
- JDPMethodNode var3 = new JDPMethodNode();
- var3.key = var1;
- var3.name = var1;
- var3.text = var2;
- this.allNodes.addElement(var3);
- }
-
- public void addNode(JDPSourceItem var1) {
- JDPMethodNode var2 = new JDPMethodNode();
- var2.key = var1.name;
- if (var1.parmNames != null) {
- String var10001 = var2.key;
- var2.key = var10001 + Integer.toString(var1.parmNames.size());
- }
-
- var2.name = var1.name;
- var2.text = var1.description;
- var2.item = var1;
- var1.node = var2;
- this.allNodes.addElement(var2);
- }
-
- void resetSelections() {
- for(int var1 = 0; var1 < this.allNodes.size(); ++var1) {
- JDPMethodNode var2 = (JDPMethodNode)this.allNodes.elementAt(var1);
- var2.selected = false;
- }
-
- }
-
- public void clear() {
- this.allNodes = new Vector();
- this.displayedNodes = new Vector();
- this.nodeRoot = null;
- System.gc();
- }
-
- public void setScrollSouthDisabled(boolean var1) {
- this.scrollSouthDisabled = var1;
- this.reDraw();
- }
-
- public boolean getScrollSouthDisabled() {
- return this.scrollSouthDisabled;
- }
-
- void drawText(JDPMethodNode var1, int var2, int var3, int var4) {
- int var5 = this.calcTextHeight(this.getDescription(var1));
- int var6 = this.calcTextWidth(this.getDescription(var1));
- int var7 = this.user.u.StringWidth(this.field_1, "-");
- if (var4 == 0) {
- var2 = var2 - 12 - var6;
- var3 = var3 - var5 / 2 + this.currheight - 4;
- } else if (var4 == 1) {
- var2 += 12;
- var3 = var3 - var5 / 2 + this.currheight - 4;
- } else if (var4 == 2) {
- var2 -= var6 / 2;
- var3 = var3 - 17 - var5 + this.currheight - 4;
- } else if (var4 == 3) {
- var2 -= var6 / 2;
- var3 = var3 + 15 + this.currheight - 2;
- }
-
- var1.textRect = new Rectangle(var2 - 2, var3 - this.currheight + 4, var6 + 2, var5 + 1);
- StringTokenizer var8 = new StringTokenizer(this.getDescription(var1), " ", true);
- StringBuffer var9 = new StringBuffer();
- int var11 = 0;
- int var12 = 1;
-
- while(var8.hasMoreTokens()) {
- String var10 = var8.nextToken();
- int var13 = this.user.u.StringWidth(this.field_1, var10);
- if (var13 > this.maxTextWidth) {
- for(int var14 = 0; var14 < var10.length(); ++var14) {
- String var16 = var10.substring(var14, var14 + 1);
- int var15 = this.user.u.StringWidth(this.field_1, var16);
- if (var11 + var15 < this.maxTextWidth) {
- var11 += var15;
- } else {
- if (var1.selected) {
- this.field_1.setColor(this.textHighlight);
- this.field_1.fillRect(var2 - 2, var3 - this.currheight + 4, var11 + var7 + 2, this.currheight);
- this.field_1.setColor(this.textHighlightText);
- } else {
- this.field_1.setColor(this.back);
- this.field_1.fillRect(var2 - 2, var3 - this.currheight + 4, var11 + 2, this.currheight);
- this.field_1.setColor(this.textColor);
- }
-
- this.field_1.drawString(var9.toString() + "-", var2, var3);
- var3 += this.currheight - 2;
- var9.setLength(0);
- ++var12;
- var11 = var15;
- }
-
- var9.append(var16);
- }
-
- var13 = 0;
- var10 = "";
- }
-
- if (var11 + var13 > this.maxTextWidth) {
- if (var1.selected) {
- this.field_1.setColor(this.textHighlight);
- this.field_1.fillRect(var2 - 2, var3 - this.currheight + 4, var11 + 2, this.currheight);
- this.field_1.setColor(this.textHighlightText);
- } else {
- this.field_1.setColor(this.back);
- this.field_1.fillRect(var2 - 2, var3 - this.currheight + 4, var11 + 2, this.currheight);
- this.field_1.setColor(this.textColor);
- }
-
- this.field_1.drawString(var9.toString(), var2, var3);
- var3 += this.currheight - 2;
- var9.setLength(0);
- ++var12;
- var11 = 0;
- }
-
- var11 += var13;
- if (var9.length() > 0 || !var10.equals(" ")) {
- var9.append(var10);
- }
- }
-
- if (var9.length() > 0) {
- if (var1.selected) {
- this.field_1.setColor(this.textHighlight);
- this.field_1.fillRect(var2 - 2, var3 - this.currheight + 4, var11 + 2, this.currheight);
- this.field_1.setColor(this.textHighlightText);
- } else {
- this.field_1.setColor(this.back);
- this.field_1.fillRect(var2 - 2, var3 - this.currheight + 4, var11 + 2, this.currheight);
- this.field_1.setColor(this.textColor);
- }
-
- this.field_1.drawString(var9.toString(), var2, var3);
- }
-
- this.field_1.setColor(this.textColor);
- }
- }
-