home *** CD-ROM | disk | FTP | other *** search
- import java.applet.Applet;
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Event;
- import java.awt.Font;
- import java.awt.FontMetrics;
- import java.awt.Graphics;
- import java.awt.Image;
- import java.awt.MediaTracker;
- import java.awt.Panel;
- import java.awt.image.CropImageFilter;
- import java.awt.image.FilteredImageSource;
- import java.util.Vector;
-
- class TreeCanvas extends Panel {
- ElementList m_list;
- Color m_backColor;
- Color m_textColor;
- Color m_lineColor;
- Color m_squareColor;
- Color m_highlightText;
- Color m_highlightBack;
- Color m_highlightBackNoFocus;
- int m_itemHeight;
- int m_selectedItem;
- int m_selectedItemA;
- int m_oldSelection;
- long m_dblClkTimer;
- Image m_gBuff;
- int m_state;
- int m_top;
- int m_oldTop;
- Image offScrImg;
- Image m_bgImage;
- Image plusImg;
- Image minusImg;
- Image[] m_icons;
- Font m_font;
- int m_style;
- int m_redrawMode;
- int m_clickMode;
- int m_maxWidth;
- int m_hscrollPos;
- private String m_loadedImgList;
- private boolean m_locked;
- private int m_fPlatform;
- private int m_useFolders;
- private long m_winStyle;
- private long m_exWinStyle;
- private int m_imageWidth;
- boolean m_hasFocus;
- boolean m_fRedraw;
- Applet m_applet;
- TreeView m_tview;
- static int STATE_NONE;
- static int STATE_NEWSEL = 1;
- static int STATE_UPDATING = 2;
- static int STATE_SYNC = 3;
- public static int TIME_DBLCLICK = 350;
- private boolean fShowSplash;
- static int m_lastOver = -1;
- private Image[] imgArray;
-
- public boolean mouseMove(Event var1, int var2, int var3) {
- int var4 = var3 / this.m_itemHeight + this.m_top;
- if (var4 != m_lastOver) {
- if (var4 < this.m_list.numVisible()) {
- m_lastOver = var4;
- Element var5 = (Element)this.m_list.elementAt(this.m_list.nthVisible(var4));
- if (var5.m_text.compareTo("") != 0) {
- if (var5.m_url.compareTo("") != 0) {
- this.m_applet.showStatus(var5.m_text + " (" + var5.m_url + ")");
- } else {
- this.m_applet.showStatus(var5.m_text);
- }
- }
- } else {
- this.m_applet.showStatus("");
- }
- }
-
- return true;
- }
-
- public void setSelectedItem2(int var1) {
- this.m_oldSelection = this.m_selectedItem;
- this.m_selectedItem = var1;
- this.m_selectedItemA = this.m_list.nthVisible(this.m_selectedItem);
- }
-
- public void setStyles(long var1, long var3) {
- this.m_winStyle = var1;
- this.m_exWinStyle = var3;
- if ((var3 & 1L) == 0L && (var3 & 4L) == 0L) {
- this.m_style = TreeView.STYLE_NORMAL;
- this.m_clickMode = 1;
- } else if ((var3 & 4L) == 0L) {
- this.m_style = TreeView.STYLE_EXPLORER;
- this.m_clickMode = 0;
- } else {
- this.m_style = TreeView.STYLE_WIN95;
- this.m_clickMode = 0;
- }
-
- ((Component)this).repaint();
- }
-
- public void setBackgroundImage(Image var1) {
- this.m_bgImage = var1;
- }
-
- public int getMaxWidth() {
- this.m_maxWidth = 0;
- if (this.offScrImg == null) {
- this.offScrImg = ((Component)this).createImage(((Component)this).size().width + 20, ((Component)this).size().height);
- }
-
- for(int var2 = 0; var2 < this.m_list.size(); ++var2) {
- Element var1 = (Element)this.m_list.elementAt(var2);
- if (var1.isVisible() && var1.m_textWidth > this.m_maxWidth) {
- this.m_maxWidth = var1.m_textWidth;
- }
- }
-
- return this.m_maxWidth;
- }
-
- public void setRedrawMode(int var1) {
- if (var1 >= 1 && var1 <= 2) {
- this.m_redrawMode = var1;
- }
- }
-
- public int calcMaxWidth() {
- Font var4 = this.m_font;
- this.m_maxWidth = 0;
- if (this.offScrImg == null) {
- this.offScrImg = ((Component)this).createImage(((Component)this).size().width + 20, Math.max(((Component)this).size().height, 10));
- }
-
- Graphics var6 = this.offScrImg.getGraphics();
-
- for(int var7 = 0; var7 < this.m_list.size(); ++var7) {
- Element var5 = (Element)this.m_list.elementAt(var7);
- int var2 = var5.m_level;
- if (this.m_style == TreeView.STYLE_WIN95) {
- ++var2;
- }
-
- int var3 = var5.m_textWidth;
- if (var3 == 0) {
- var6.setFont(var4);
- FontMetrics var8 = var6.getFontMetrics();
- var3 = var8.stringWidth(var5.m_text) + var2 * this.m_itemHeight + 35;
- var5.m_textWidth = var3;
- }
-
- if (var3 > this.m_maxWidth) {
- this.m_maxWidth = var3;
- }
- }
-
- var6.dispose();
- return this.m_maxWidth;
- }
-
- public void setSelectedItem(int var1) {
- this.m_oldSelection = this.m_selectedItem;
- this.m_selectedItem = var1 / this.m_itemHeight + this.m_top;
- this.m_selectedItemA = this.m_list.nthVisible(this.m_selectedItem);
- }
-
- public void setStyle(int var1) {
- if (var1 >= 0 && var1 <= 2) {
- this.m_style = var1;
- }
- }
-
- public boolean mouseDblClk(Event var1, int var2, int var3, boolean var4) {
- boolean var5 = false;
- int var6 = this.m_list.nthVisible(var3 / this.m_itemHeight + this.m_top);
- if ((this.m_clickMode != 1 || !var4 || this.m_fPlatform != 0) && this.m_list.hasChildren(var6)) {
- if (this.m_list.hasVisibleChildren(var6)) {
- this.m_list.hideChildren(var6);
- } else {
- this.m_list.showChildren(var6);
- var5 = true;
- }
-
- this.m_maxWidth = 0;
- }
-
- this.m_state = STATE_NONE;
- if (var4) {
- Event var7 = new Event(this, 1001, this.m_list.elementAt(this.m_list.nthVisible(var3 / this.m_itemHeight + this.m_top)));
- ((Component)this).getParent().postEvent(var7);
- }
-
- boolean var9 = !this.m_tview.setVScroll();
- if (this.m_tview.setHScroll()) {
- var9 = !this.m_tview.setVScroll();
- }
-
- if (this.m_list.numVisible() - this.m_top < ((Component)this).size().height / this.m_itemHeight && this.m_list.numVisible() > ((Component)this).size().height / this.m_itemHeight) {
- int var8 = this.m_top;
- this.m_top = this.m_list.numVisible() - ((Component)this).size().height / this.m_itemHeight;
- TreeView var10000 = this.m_tview;
- var10000.m_scrollPos += this.m_top - var8;
- this.m_oldTop = this.m_top;
- }
-
- if (var5) {
- int var11 = 0;
- this.m_list.countChildren(var6);
- if (var3 / this.m_itemHeight + this.m_list.countChildren(var6) + 1 > ((Component)this).size().height / this.m_itemHeight) {
- var11 = ((Component)this).size().height / this.m_itemHeight - this.m_list.countChildren(var6) - var3 / this.m_itemHeight - 1;
- if (Math.abs(var11) > var3 / this.m_itemHeight) {
- var11 = -var3 / this.m_itemHeight;
- }
-
- this.m_tview.scrollUp(var11);
- this.m_oldTop = this.m_top;
- }
- }
-
- return true;
- }
-
- public void setList(ElementList var1) {
- this.m_list = var1;
- if (((Vector)var1).size() > 1) {
- this.fShowSplash = false;
- }
-
- this.calcMaxWidth();
- this.m_selectedItem = 0;
- this.m_selectedItemA = 0;
- this.m_oldSelection = 0;
- this.m_top = 0;
- if (((Vector)var1).size() == 1) {
- this.setImageList((String)null, 16, false);
- }
-
- }
-
- public void update(Graphics var1) {
- boolean var2 = true;
- if (this.m_fRedraw) {
- if (this.offScrImg == null) {
- this.offScrImg = ((Component)this).createImage(((Component)this).size().width + 20, ((Component)this).size().height);
- var2 = false;
- }
-
- Graphics var3 = this.offScrImg.getGraphics();
- if (this.m_state == STATE_SYNC) {
- var2 = false;
- this.m_state = STATE_NONE;
- }
-
- if (this.m_state == STATE_NEWSEL) {
- if (this.m_oldSelection != this.m_selectedItem) {
- var1.clipRect(0, (Math.min(this.m_oldSelection, this.m_selectedItem) - this.m_top) * this.m_itemHeight, ((Component)this).size().width, (Math.abs(this.m_oldSelection - this.m_selectedItem) + 1) * this.m_itemHeight);
- } else {
- var1.clipRect(0, 0, 0, 0);
- }
-
- this.imgPaint(var3, var2);
- this.m_state = STATE_NONE;
- } else {
- this.imgPaint(var3, var2);
- }
-
- var1.drawImage(this.offScrImg, 0, 0, this);
- var3.dispose();
- }
- }
-
- private void drawDashedVertLine(Graphics var1, int var2, int var3, int var4, boolean var5) {
- if (var2 % 2 != 0 && var5) {
- --var2;
- }
-
- for(int var6 = 0; var6 <= var4 - var3; ++var6) {
- if ((var3 + var6) % 2 == 0) {
- var1.drawLine(var2, var3 + var6, var2, var3 + var6);
- }
- }
-
- }
-
- public void setItemHeight(int var1) {
- this.m_itemHeight = var1;
- }
-
- public void setImageList(String var1, int var2, boolean var3) {
- this.m_imageWidth = var2;
- if (var1 == null) {
- var1 = "cntimage.gif";
- }
-
- if (var3) {
- this.m_useFolders = 4;
- }
-
- if (this.m_loadedImgList == null || !var1.equalsIgnoreCase(this.m_loadedImgList)) {
- try {
- Image var4 = this.getImageStrip(var1, true);
- if (var4 == null) {
- var4 = this.getImageStrip(var1, false);
- }
-
- if (var4 == null) {
- byte var11 = 24;
- var2 = 16;
- this.m_imageWidth = 16;
- this.imgArray = new Image[var11];
- this.m_applet.createImage(480, var2);
-
- for(int var12 = 0; var12 < var11; ++var12) {
- this.imgArray[var12] = this.m_applet.createImage(var2, 16);
- Graphics var5 = this.imgArray[var12].getGraphics();
- var5.setColor(this.m_backColor);
- var5.fillRect(0, 0, var2, 16);
- var5.setColor(Color.black);
- var5.drawRect(0, 0, 15, 15);
- var5.dispose();
- }
-
- } else {
- var4.getHeight(this.m_applet);
- int var6 = var4.getWidth(this.m_applet) / var2;
- this.imgArray = new Image[var6];
-
- for(int var8 = 0; var8 < var6; ++var8) {
- this.imgArray[var8] = ((Component)this).createImage(new FilteredImageSource(var4.getSource(), new CropImageFilter(var8 * var2, 0, var2, 16)));
- }
-
- this.m_loadedImgList = var1;
- }
- } catch (Exception var9) {
- }
- }
- }
-
- public synchronized void clearLock() {
- this.m_locked = false;
- }
-
- public void setClickMode(int var1) {
- if (var1 >= 0 && var1 <= 1) {
- this.m_clickMode = var1;
- }
- }
-
- public boolean setSelectedItemA(int var1) {
- this.m_oldSelection = this.m_selectedItem;
- if (((Element)this.m_list.elementAt(var1)).isVisible()) {
- this.m_selectedItemA = var1;
- this.m_selectedItem = this.m_list.whichVisible(var1) - 1;
- return true;
- } else {
- return false;
- }
- }
-
- public synchronized void setLock() {
- this.m_locked = true;
- }
-
- public boolean mouseExit(Event var1, int var2, int var3) {
- this.m_applet.showStatus("");
- return true;
- }
-
- public void setBackground(Color var1) {
- this.m_backColor = var1;
- this.createPlusMinus();
- }
-
- public void syncSelectedItem() {
- this.m_selectedItem = this.m_list.whichVisible(this.m_selectedItemA) - 1;
- }
-
- public void paint(Graphics var1) {
- boolean var2 = true;
- if (this.m_fRedraw) {
- if (this.offScrImg == null || this.offScrImg.getWidth(this) < ((Component)this).size().width || this.offScrImg.getHeight(this) < ((Component)this).size().height) {
- this.offScrImg = ((Component)this).createImage(((Component)this).size().width + 20, ((Component)this).size().height);
- var2 = false;
- }
-
- Graphics var3 = this.offScrImg.getGraphics();
- if (this.m_state == STATE_SYNC) {
- var2 = false;
- this.m_state = STATE_NONE;
- }
-
- this.imgPaint(var3, var2);
- var1.drawImage(this.offScrImg, 0, 0, this);
- var3.dispose();
- }
- }
-
- private void drawDashedHorzLine(Graphics var1, int var2, int var3, int var4, boolean var5) {
- if (var3 % 2 != 0 && var5) {
- --var3;
- }
-
- for(int var6 = 0; var6 <= var4 - var2; ++var6) {
- if ((var2 + var6) % 2 == 0) {
- var1.drawLine(var2 + var6, var3, var2 + var6, var3);
- }
- }
-
- }
-
- public void setHScroll(int var1) {
- this.m_hscrollPos = var1;
- }
-
- public void setTop(int var1) {
- this.setTop(var1, true);
- }
-
- private void createPlusMinus() {
- if (this.plusImg == null) {
- this.plusImg = ((Component)this).createImage(9, 9);
- }
-
- if (this.minusImg == null) {
- this.minusImg = ((Component)this).createImage(9, 9);
- }
-
- Graphics var1 = this.plusImg.getGraphics();
- var1.setColor(this.m_backColor);
- var1.fillRect(0, 0, this.plusImg.getWidth(this), this.plusImg.getHeight(this));
- this.drawPlus(var1, 0, 0);
- var1.dispose();
- var1 = this.minusImg.getGraphics();
- var1.setColor(this.m_backColor);
- var1.fillRect(0, 0, this.plusImg.getWidth(this), this.plusImg.getHeight(this));
- this.drawMinus(var1, 0, 0);
- var1.dispose();
- }
-
- private void drawPlus(Graphics var1, int var2, int var3) {
- var1.setColor(this.m_squareColor);
- var1.drawRect(var2, var3, 8, 8);
- var1.setColor(this.m_lineColor);
- var1.drawLine(var2 + 2, var3 + 4, var2 + 6, var3 + 4);
- var1.drawLine(var2 + 4, var3 + 2, var2 + 4, var3 + 6);
- }
-
- private void drawMinus(Graphics var1, int var2, int var3) {
- var1.setColor(this.m_squareColor);
- var1.drawRect(var2, var3, 8, 8);
- var1.setColor(this.m_lineColor);
- var1.drawLine(var2 + 2, var3 + 4, var2 + 6, var3 + 4);
- }
-
- public void setTop(int var1, boolean var2) {
- this.m_top = var1;
- if (var2) {
- ((Component)this).repaint();
- }
-
- }
-
- private Image getImageStrip(String var1, boolean var2) {
- try {
- Image var3 = this.m_applet.getImage(var2 ? this.m_applet.getCodeBase() : this.m_applet.getDocumentBase(), var1);
- this.m_applet.prepareImage(var3, this.m_applet);
- MediaTracker var4 = new MediaTracker(this.m_applet);
- var4.addImage(var3, 0);
- var4.waitForID(0);
- return var4.isErrorAny() ? null : var3;
- } catch (Exception var5) {
- return null;
- }
- }
-
- public void setFont(Font var1, Color var2) {
- if (var1 != null && var1 instanceof Font) {
- this.m_font = var1;
- }
-
- this.m_textColor = var2;
- }
-
- public void setExWinStyle(long var1) {
- this.m_exWinStyle = var1;
- }
-
- public boolean mouseDown(Event var1, int var2, int var3) {
- boolean var4 = true;
- if (var3 / this.m_itemHeight + this.m_top > this.m_list.numVisible() - 1) {
- return true;
- } else {
- Element var5 = (Element)this.m_list.elementAt(this.m_list.nthVisible(var3 / this.m_itemHeight + this.m_top));
- if (this.m_clickMode == 1 && !this.m_locked) {
- if ((var2 <= var5.m_level * this.m_itemHeight - this.m_hscrollPos || var2 >= (var5.m_level + 1) * this.m_itemHeight - this.m_hscrollPos || this.m_style != TreeView.STYLE_WIN95) && (var2 <= (var5.m_level - 1) * this.m_itemHeight - this.m_hscrollPos || var2 >= var5.m_level * this.m_itemHeight - this.m_hscrollPos || this.m_style != TreeView.STYLE_EXPLORER) && var1.clickCount != 2) {
- this.m_state = STATE_NEWSEL;
- this.setSelectedItem(var3);
- var4 = this.mouseDblClk(var1, var2, var3, true);
- } else {
- int var8 = var3 / this.m_itemHeight + this.m_top;
- int var9 = this.m_list.nthVisible(var8);
- var4 = this.mouseDblClk(var1, var2, var3, false);
- if (!((Element)this.m_list.elementAt(this.m_selectedItemA)).isVisible()) {
- this.m_oldSelection = this.m_selectedItem;
- this.m_selectedItemA = var9;
- }
-
- this.syncSelectedItem();
- }
- } else if (!this.m_locked) {
- if (var5.m_url.compareTo("") != 0) {
- this.m_applet.showStatus(var5.m_url);
- } else {
- this.m_applet.showStatus(var5.m_text);
- }
-
- if ((var2 > var5.m_level * this.m_itemHeight - this.m_hscrollPos && var2 < (var5.m_level + 1) * this.m_itemHeight - this.m_hscrollPos && this.m_style == TreeView.STYLE_WIN95 || var2 > (var5.m_level - 1) * this.m_itemHeight - this.m_hscrollPos && var2 < var5.m_level * this.m_itemHeight - this.m_hscrollPos && this.m_style == TreeView.STYLE_EXPLORER) && !this.m_locked) {
- int var6 = var3 / this.m_itemHeight + this.m_top;
- int var7 = this.m_list.nthVisible(var6);
- var4 = this.mouseDblClk(var1, var2, var3, false);
- if (!((Element)this.m_list.elementAt(this.m_selectedItemA)).isVisible()) {
- this.m_oldSelection = this.m_selectedItem;
- this.m_selectedItemA = var7;
- }
-
- this.syncSelectedItem();
- } else {
- this.m_state = STATE_NEWSEL;
- this.setSelectedItem(var3);
- }
- }
-
- if (var4) {
- if (this.m_redrawMode == 1) {
- ((Component)this).repaint();
- } else {
- ((Component)this).repaint((long)(TIME_DBLCLICK + 20));
- }
- }
-
- return true;
- }
- }
-
- TreeCanvas() {
- this.m_backColor = Color.white;
- this.m_textColor = Color.black;
- this.m_lineColor = Color.black;
- this.m_squareColor = Color.gray;
- this.m_highlightText = Color.white;
- this.m_highlightBack = new Color(0, 0, 128);
- this.m_highlightBackNoFocus = Color.gray;
- this.m_itemHeight = 16;
- this.m_redrawMode = 1;
- this.m_imageWidth = 16;
- this.m_fRedraw = true;
- }
-
- TreeCanvas(ElementList var1, Applet var2, TreeView var3) {
- this.m_backColor = Color.white;
- this.m_textColor = Color.black;
- this.m_lineColor = Color.black;
- this.m_squareColor = Color.gray;
- this.m_highlightText = Color.white;
- this.m_highlightBack = new Color(0, 0, 128);
- this.m_highlightBackNoFocus = Color.gray;
- this.m_itemHeight = 16;
- this.m_redrawMode = 1;
- this.m_imageWidth = 16;
- this.m_fRedraw = true;
- this.m_list = var1;
- this.m_applet = var2;
- this.m_tview = var3;
- this.m_icons = new Image[20];
- this.m_font = new Font("MS Sans Serif", 0, 12);
- this.m_fPlatform = System.getProperty("java.vendor").compareTo("Microsoft Corp.");
- }
-
- public void imgPaint(Graphics var1, boolean var2) {
- try {
- if (this.plusImg == null || this.minusImg == null) {
- this.createPlusMinus();
- }
-
- var1.setPaintMode();
- int var13 = 0;
- int var14 = Math.min(((Component)this).size().height / this.m_itemHeight + 1, this.m_list.numVisible());
- if (var2 && this.m_bgImage == null && this.m_oldTop != this.m_top) {
- int var10006 = this.m_oldTop - this.m_top;
- var1.copyArea(0, 0, ((Component)this).size().width, ((Component)this).size().height, 0, var10006 * this.m_itemHeight);
- var1.setColor(this.m_backColor);
- if (this.m_top > this.m_oldTop) {
- var13 = var14 - (this.m_top - this.m_oldTop) - 1;
- var1.fillRect(0, var13 * this.m_itemHeight, ((Component)this).size().width, (var14 - var13) * this.m_itemHeight);
- } else {
- var14 = this.m_oldTop - this.m_top;
- int var10004 = var14 * this.m_itemHeight;
- var1.fillRect(0, 0, ((Component)this).size().width, var10004);
- }
-
- this.m_oldTop = this.m_top;
- } else {
- var1.setColor(this.m_backColor);
- var1.fillRect(0, 0, ((Component)this).size().width, ((Component)this).size().height);
- if (this.m_bgImage != null) {
- try {
- if (this.m_bgImage.getWidth(this) != -1 && this.m_bgImage.getHeight(this) != -1) {
- for(int var16 = 0; var16 < ((Component)this).size().width; var16 += this.m_bgImage.getWidth(this)) {
- var1.drawImage(this.m_bgImage, var16, 0, this.m_backColor, this);
-
- for(int var15 = 0; var15 < ((Component)this).size().height; var15 += this.m_bgImage.getHeight(this)) {
- var1.drawImage(this.m_bgImage, var16, var15, this.m_backColor, this);
- }
- }
- }
- } catch (Exception var18) {
- }
- }
- }
-
- var1.setColor(this.m_lineColor);
-
- for(int var23 = var13; var23 < var14; ++var23) {
- int var4 = var23 + this.m_top;
- if (var4 >= this.m_list.numVisible()) {
- break;
- }
-
- int var6 = this.m_list.nthVisible(var4);
- Element var3 = (Element)this.m_list.elementAt(var6);
- if (var3.isVisible()) {
- int var7 = var3.m_level;
- if (this.m_style == TreeView.STYLE_WIN95) {
- ++var7;
- }
-
- var1.setFont(this.m_font);
- FontMetrics var24 = var1.getFontMetrics();
- int var12;
- if (var3.m_imgNum < 0) {
- var12 = 10;
- if (this.m_list.hasChildren(var6)) {
- var12 = 0;
- if (this.m_list.hasVisibleChildren(var6)) {
- var12 = 1;
- }
-
- if (var3.m_isNew == 1) {
- var12 += 2;
- }
-
- var12 += this.m_useFolders;
- } else if (var3.m_isNew == 1) {
- ++var12;
- }
- } else {
- var12 = var3.m_imgNum;
- }
-
- if (this.imgArray[var12] != null) {
- var1.drawImage(this.imgArray[var12], var7 * this.m_itemHeight - this.m_hscrollPos, var23 * this.m_itemHeight, this);
- }
-
- if (this.m_selectedItem == var4) {
- if (this.m_hasFocus) {
- var1.setColor(this.m_highlightBack);
- } else {
- var1.setColor(this.m_highlightBackNoFocus);
- }
-
- int var10 = var7 * this.m_itemHeight + this.m_imageWidth + 3 - this.m_hscrollPos;
- int var11 = var23 * this.m_itemHeight;
- var1.fillRect(var10 + 1, var11 + 1, var24.stringWidth(var3.m_text) + 3, this.m_itemHeight - 2);
- var1.setColor(this.m_lineColor);
- if (this.m_hasFocus) {
- this.drawDashedVertLine(var1, var10, var11, var11 + this.m_itemHeight - 1, false);
- this.drawDashedVertLine(var1, var10 + var24.stringWidth(var3.m_text) + 4, var11, var11 + this.m_itemHeight - 1, false);
- this.drawDashedHorzLine(var1, var10, var11, var10 + var24.stringWidth(var3.m_text) + 4, false);
- this.drawDashedHorzLine(var1, var10, var11 + this.m_itemHeight - 1, var10 + var24.stringWidth(var3.m_text) + 4, false);
- }
-
- if (this.m_hasFocus) {
- var1.setColor(this.m_highlightText);
- } else {
- var1.setColor(this.m_textColor);
- }
- } else {
- var1.setColor(this.m_textColor);
- }
-
- var1.drawString(var3.m_text, var7 * this.m_itemHeight + this.m_imageWidth + 5 - this.m_hscrollPos, (var23 + 1) * this.m_itemHeight - var24.getMaxDescent() - 1);
- var1.setColor(this.m_lineColor);
- if ((this.m_exWinStyle & 2L) == 2L) {
- for(int var17 = this.m_style == TreeView.STYLE_WIN95 ? 0 : 0; var17 < var7; ++var17) {
- if (this.m_list.moreVisibleAtLevel(this.m_style == TreeView.STYLE_WIN95 ? var17 : var17 + 1, this.m_list.nthVisible(var23 + this.m_top))) {
- if (this.m_list.indexOf(var3) > 0) {
- this.drawDashedVertLine(var1, var17 * this.m_itemHeight + this.m_itemHeight / 2 - this.m_hscrollPos, var23 * this.m_itemHeight, (var23 + 1) * this.m_itemHeight, true);
- } else {
- this.drawDashedVertLine(var1, var17 * this.m_itemHeight + this.m_itemHeight / 2 - this.m_hscrollPos, var23 * this.m_itemHeight + this.m_itemHeight / 2 - 1, (var23 + 1) * this.m_itemHeight, true);
- }
- }
- }
-
- if (var7 > 0) {
- int var20 = (var7 - 1) * this.m_itemHeight + this.m_itemHeight / 2 - this.m_hscrollPos;
- int var21 = var23 * this.m_itemHeight;
- if (this.m_list.indexOf(var3) > 0) {
- if (this.m_list.moreVisibleAtLevel(var3.m_level, this.m_list.nthVisible(var23 + this.m_top))) {
- this.drawDashedVertLine(var1, var20, var21, var21 + this.m_itemHeight, true);
- } else {
- this.drawDashedVertLine(var1, var20, var21, var21 + this.m_itemHeight / 2, true);
- }
- }
-
- this.drawDashedHorzLine(var1, var20, var21 + this.m_itemHeight / 2, var20 + this.m_itemHeight / 2, true);
- }
- }
-
- if (this.m_style == TreeView.STYLE_WIN95 || this.m_style == TreeView.STYLE_EXPLORER) {
- int var5 = this.m_list.nthVisible(var4);
- if (var7 > 0 && this.m_list.hasChildren(var5)) {
- int var8 = (var7 - 1) * this.m_itemHeight + (this.m_itemHeight / 2 - 4) - this.m_hscrollPos;
- if (var8 % 2 != 0) {
- --var8;
- }
-
- int var9 = var23 * this.m_itemHeight + (this.m_itemHeight / 2 - 4);
- if (var9 % 2 != 0) {
- --var9;
- }
-
- if (!this.m_list.hasVisibleChildren(var5)) {
- if (this.m_bgImage == null) {
- var1.drawImage(this.plusImg, var8, var9, this);
- } else {
- this.drawPlus(var1, var8, var9);
- }
- } else if (this.m_bgImage == null) {
- var1.drawImage(this.minusImg, var8, var9, this);
- } else {
- this.drawMinus(var1, var8, var9);
- }
- }
- }
- }
- }
- } catch (Exception var19) {
- }
-
- this.m_oldTop = this.m_top;
- }
-
- public void setColors(Color var1, Color var2, Color var3, Color var4, Color var5) {
- this.m_textColor = var1;
- this.m_lineColor = var2;
- this.m_highlightBack = var4;
- this.m_highlightText = var5;
- this.m_squareColor = var3;
- this.createPlusMinus();
- }
-
- public void setWinStyle(long var1) {
- this.m_winStyle = var1;
- }
- }
-