home *** CD-ROM | disk | FTP | other *** search
/ PC Professionell 2003 July / PCpro_2003_07.ISO / vollvers / edhtml / EdHTMLv5.0.exe / Main / TreeView.class (.txt) < prev    next >
Encoding:
Java Class File  |  2003-05-14  |  10.0 KB  |  705 lines

  1. import java.applet.Applet;
  2. import java.awt.BorderLayout;
  3. import java.awt.Color;
  4. import java.awt.Component;
  5. import java.awt.Container;
  6. import java.awt.Dimension;
  7. import java.awt.Event;
  8. import java.awt.Font;
  9. import java.awt.Graphics;
  10. import java.awt.Image;
  11. import java.awt.Panel;
  12. import java.awt.Scrollbar;
  13. import java.net.URL;
  14. import java.util.Vector;
  15.  
  16. class TreeView extends Panel {
  17.    HHCtrl m_applet;
  18.    ElementList m_list;
  19.    int m_itemHeight;
  20.    int m_scrollPos;
  21.    int m_hscrollPos;
  22.    int m_style;
  23.    boolean m_fRedraw;
  24.    int m_autoExpandLevel;
  25.    Dimension m_Size;
  26.    private int m_autoKey;
  27.    private long m_winStyle;
  28.    private long m_exWinStyle;
  29.    static int STYLE_NORMAL;
  30.    static int STYLE_WIN95 = 1;
  31.    static int STYLE_EXPLORER = 2;
  32.    TreeCanvas m_canvas;
  33.    Scrollbar m_vScroll;
  34.    Scrollbar m_hScroll;
  35.    String m_targetFrame;
  36.  
  37.    public boolean gotFocus(Event var1, Object var2) {
  38.       this.m_canvas.m_hasFocus = true;
  39.       this.m_canvas.m_oldTop = this.m_canvas.m_top;
  40.       this.m_canvas.repaint();
  41.       return true;
  42.    }
  43.  
  44.    public boolean lostFocus(Event var1, Object var2) {
  45.       this.m_canvas.m_hasFocus = false;
  46.       this.m_canvas.m_oldTop = this.m_canvas.m_top;
  47.       this.m_canvas.repaint();
  48.       return true;
  49.    }
  50.  
  51.    public void setStyles(long var1, long var3) {
  52.       this.m_winStyle = var1;
  53.       this.m_exWinStyle = var3;
  54.       this.m_canvas.setStyles(var1, var3);
  55.    }
  56.  
  57.    public void setBackgroundImage(Image var1) {
  58.       this.m_canvas.setBackgroundImage(var1);
  59.    }
  60.  
  61.    public void sync(String var1, int var2) {
  62.       int var3 = -1;
  63.       if (var2 == 0) {
  64.          var3 = this.m_list.showURL(var1);
  65.       } else if (var2 == 1) {
  66.          var3 = this.m_list.showTitle(var1);
  67.       }
  68.  
  69.       if (var3 != -1) {
  70.          this.m_canvas.setSelectedItemA(var3);
  71.          if (this.m_scrollPos + this.m_canvas.size().height / this.m_itemHeight <= this.m_canvas.m_selectedItem) {
  72.             this.setTop(this.m_canvas.m_selectedItem - this.m_canvas.size().height / this.m_itemHeight + 1);
  73.          }
  74.  
  75.          if (this.m_scrollPos > this.m_canvas.m_selectedItem) {
  76.             this.setTop(this.m_canvas.m_selectedItem);
  77.          }
  78.  
  79.          this.m_list.calcNumVisible();
  80.          this.m_list.nthVisible(0);
  81.          this.m_canvas.m_oldTop = this.m_canvas.m_top;
  82.          this.doValidate();
  83.          this.m_canvas.m_state = TreeCanvas.STATE_SYNC;
  84.          this.m_canvas.repaint();
  85.       }
  86.    }
  87.  
  88.    public void setRedrawMode(int var1) {
  89.       this.m_canvas.setRedrawMode(var1);
  90.    }
  91.  
  92.    private void moveEnd() {
  93.       this.m_canvas.setSelectedItem2(this.m_list.numVisible() - 1);
  94.       if (this.m_scrollPos + this.m_canvas.size().height / this.m_itemHeight <= this.m_canvas.m_selectedItem) {
  95.          this.setTop(this.m_canvas.m_selectedItem - this.m_canvas.size().height / this.m_itemHeight + 1);
  96.       }
  97.  
  98.       if (this.m_scrollPos > this.m_canvas.m_selectedItem) {
  99.          this.setTop(this.m_canvas.m_selectedItem);
  100.       }
  101.  
  102.       this.m_canvas.m_oldTop = this.m_canvas.m_top;
  103.       this.doValidate();
  104.    }
  105.  
  106.    public void setStyle(int var1) {
  107.       if (var1 >= 0 && var1 <= 2) {
  108.          this.m_style = var1;
  109.          this.m_canvas.setStyle(var1);
  110.       }
  111.    }
  112.  
  113.    private void setList(ElementList var1) {
  114.       var1.calcNumVisible();
  115.       this.m_list = var1;
  116.       this.m_canvas.setList(var1);
  117.       this.m_scrollPos = 0;
  118.       this.m_vScroll.setValues(this.m_scrollPos, 1, 0, 10);
  119.       this.m_vScroll.hide();
  120.       this.m_hscrollPos = 0;
  121.       this.m_canvas.setHScroll(this.m_hscrollPos);
  122.       this.m_hScroll.setValues(this.m_hscrollPos, 1, 0, 10);
  123.       this.m_hScroll.hide();
  124.       ((Container)this).validate();
  125.       this.setVScroll();
  126.       if (this.setHScroll()) {
  127.          this.setVScroll();
  128.       }
  129.  
  130.    }
  131.  
  132.    public void addElement(Element var1) {
  133.       this.m_list.addElement(var1);
  134.    }
  135.  
  136.    private void moveParent() {
  137.       if (this.m_canvas.m_selectedItem != 0) {
  138.          for(int var1 = this.m_canvas.m_selectedItem - 1; var1 >= -1; --var1) {
  139.             if (var1 >= 0 && ((Element)this.m_list.elementAt(this.m_list.nthVisible(var1))).m_level < ((Element)this.m_list.elementAt(this.m_list.nthVisible(this.m_canvas.m_selectedItem))).m_level) {
  140.                this.m_canvas.setSelectedItem2(var1);
  141.                if (this.m_scrollPos + this.m_canvas.size().height / this.m_itemHeight <= this.m_canvas.m_selectedItem) {
  142.                   this.setTop(this.m_canvas.m_selectedItem - this.m_canvas.size().height / this.m_itemHeight + 1);
  143.                }
  144.  
  145.                if (this.m_scrollPos > this.m_canvas.m_selectedItem) {
  146.                   this.setTop(this.m_canvas.m_selectedItem);
  147.                }
  148.  
  149.                this.m_canvas.m_oldTop = this.m_canvas.m_top;
  150.                this.doValidate();
  151.                return;
  152.             }
  153.          }
  154.  
  155.       }
  156.    }
  157.  
  158.    private boolean showChildren() {
  159.       int var1 = this.m_list.nthVisible(this.m_canvas.m_selectedItem);
  160.       if (this.m_list.hasChildren(var1)) {
  161.          if (!this.m_list.hasVisibleChildren(var1)) {
  162.             this.m_list.showChildren(var1);
  163.             boolean var2 = !this.setVScroll();
  164.             if (this.setHScroll()) {
  165.                var2 = !this.setVScroll();
  166.             }
  167.  
  168.             if (this.m_scrollPos + this.m_canvas.size().height / this.m_itemHeight <= this.m_canvas.m_selectedItem) {
  169.                this.setTop(this.m_canvas.m_selectedItem - this.m_canvas.size().height / this.m_itemHeight + 1);
  170.             }
  171.  
  172.             if (this.m_scrollPos > this.m_canvas.m_selectedItem) {
  173.                this.setTop(this.m_canvas.m_selectedItem);
  174.             }
  175.  
  176.             this.doValidate();
  177.             return true;
  178.          } else {
  179.             return false;
  180.          }
  181.       } else {
  182.          return false;
  183.       }
  184.    }
  185.  
  186.    public void scrollUp(int var1) {
  187.       if (this.m_vScroll.isShowing() && this.m_scrollPos >= var1) {
  188.          this.m_scrollPos -= var1;
  189.          this.m_vScroll.setValue(this.m_scrollPos);
  190.          this.m_canvas.setTop(this.m_scrollPos);
  191.       }
  192.  
  193.    }
  194.  
  195.    private void moveNextPageVisible() {
  196.       if (this.m_canvas.m_selectedItem < this.m_list.numVisible() - 1) {
  197.          int var1 = this.m_canvas.size().height / this.m_itemHeight - 1;
  198.          if (this.m_canvas.m_selectedItem + var1 >= this.m_list.numVisible() - 1) {
  199.             this.m_canvas.setSelectedItem2(this.m_list.numVisible() - 1);
  200.          } else {
  201.             this.m_canvas.setSelectedItem2(this.m_canvas.m_selectedItem + var1);
  202.          }
  203.  
  204.          if (this.m_scrollPos + this.m_canvas.size().height / this.m_itemHeight <= this.m_canvas.m_selectedItem) {
  205.             this.setTop(this.m_canvas.m_selectedItem - this.m_canvas.size().height / this.m_itemHeight + 1);
  206.          }
  207.  
  208.          if (this.m_scrollPos > this.m_canvas.m_selectedItem) {
  209.             this.setTop(this.m_canvas.m_selectedItem);
  210.          }
  211.  
  212.          this.m_canvas.m_oldTop = this.m_canvas.m_top;
  213.          this.doValidate();
  214.       }
  215.    }
  216.  
  217.    private void movePrevVisible() {
  218.       if (this.m_canvas.m_selectedItem != 0) {
  219.          this.m_canvas.setSelectedItem2(this.m_canvas.m_selectedItem - 1);
  220.          if (this.m_scrollPos + this.m_canvas.size().height / this.m_itemHeight <= this.m_canvas.m_selectedItem) {
  221.             this.setTop(this.m_canvas.m_selectedItem - this.m_canvas.size().height / this.m_itemHeight + 1);
  222.          }
  223.  
  224.          if (this.m_scrollPos > this.m_canvas.m_selectedItem) {
  225.             this.setTop(this.m_canvas.m_selectedItem);
  226.          }
  227.  
  228.          this.m_canvas.m_oldTop = this.m_canvas.m_top;
  229.          this.doValidate();
  230.       }
  231.    }
  232.  
  233.    public void scrollLeft(int var1) {
  234.       if (this.m_hScroll.isShowing() && this.m_hScroll.getValue() >= var1) {
  235.          this.m_hScroll.setValue(this.m_hScroll.getValue() - var1);
  236.          this.m_hscrollPos -= var1 * 10;
  237.          this.m_canvas.setHScroll(this.m_hscrollPos);
  238.          this.m_canvas.repaint();
  239.       }
  240.  
  241.    }
  242.  
  243.    public Dimension preferredSize() {
  244.       return this.m_Size;
  245.    }
  246.  
  247.    public void setSize(Dimension var1) {
  248.       this.m_Size = var1;
  249.    }
  250.  
  251.    public void scrollRight(int var1) {
  252.       if (this.m_hScroll.getValue() + var1 <= this.m_hScroll.getMaximum() && this.m_hScroll.isShowing()) {
  253.          this.m_hscrollPos += var1 * 10;
  254.          this.m_hScroll.setValue(this.m_hScroll.getValue() + var1);
  255.          this.m_canvas.setHScroll(this.m_hscrollPos);
  256.          this.m_canvas.repaint();
  257.       }
  258.  
  259.    }
  260.  
  261.    private void showElementName() {
  262.       Element var1 = (Element)this.m_list.elementAt(this.m_canvas.m_selectedItemA);
  263.       if (var1.m_text.compareTo("") != 0) {
  264.          if (var1.m_url.compareTo("") != 0) {
  265.             this.m_applet.showStatus(var1.m_text + " (" + var1.m_url + ")");
  266.             return;
  267.          }
  268.  
  269.          this.m_applet.showStatus(var1.m_text);
  270.       }
  271.  
  272.    }
  273.  
  274.    public void setItemHeight(int var1) {
  275.       this.m_itemHeight = var1;
  276.       this.m_canvas.setItemHeight(var1);
  277.    }
  278.  
  279.    public void setClickMode(int var1) {
  280.       this.m_canvas.setClickMode(var1);
  281.    }
  282.  
  283.    public void setAutoExpandLevel(int var1) {
  284.       if (var1 > 0) {
  285.          this.m_autoExpandLevel = var1;
  286.       }
  287.  
  288.    }
  289.  
  290.    public void setRedraw(boolean var1) {
  291.       this.m_fRedraw = var1;
  292.       this.m_canvas.m_fRedraw = var1;
  293.    }
  294.  
  295.    public boolean keyDown(Event var1, int var2) {
  296.       switch (var2) {
  297.          case 8:
  298.             this.moveParent();
  299.             this.showElementName();
  300.             return true;
  301.          case 10:
  302.             Event var3 = new Event(this, 1001, this.m_list.elementAt(this.m_canvas.m_selectedItemA));
  303.             ((Component)this).postEvent(var3);
  304.             return true;
  305.          case 43:
  306.             this.showChildren();
  307.             this.showElementName();
  308.             return true;
  309.          case 45:
  310.             this.hideChildren();
  311.             this.showElementName();
  312.             return true;
  313.          case 1000:
  314.             this.moveHome();
  315.             this.showElementName();
  316.             return true;
  317.          case 1001:
  318.             this.moveEnd();
  319.             this.showElementName();
  320.             return true;
  321.          case 1002:
  322.             this.movePrevPageVisible();
  323.             this.showElementName();
  324.             return true;
  325.          case 1003:
  326.             this.moveNextPageVisible();
  327.             this.showElementName();
  328.             return true;
  329.          case 1004:
  330.             if ((var1.modifiers & 2) > 0) {
  331.                this.scrollUp(1);
  332.             } else {
  333.                this.movePrevVisible();
  334.                this.showElementName();
  335.             }
  336.  
  337.             return true;
  338.          case 1005:
  339.             if ((var1.modifiers & 2) > 0) {
  340.                this.scrollDown(1);
  341.             } else {
  342.                this.moveNextVisible();
  343.                this.showElementName();
  344.             }
  345.  
  346.             return true;
  347.          case 1006:
  348.             if ((var1.modifiers & 2) > 0) {
  349.                this.scrollLeft(1);
  350.             } else {
  351.                if (!this.hideChildren()) {
  352.                   this.movePrevVisible();
  353.                }
  354.  
  355.                this.showElementName();
  356.             }
  357.  
  358.             return true;
  359.          case 1007:
  360.             if ((var1.modifiers & 2) > 0) {
  361.                this.scrollRight(1);
  362.             } else {
  363.                if (!this.showChildren()) {
  364.                   this.moveNextVisible();
  365.                }
  366.  
  367.                this.showElementName();
  368.             }
  369.  
  370.             return true;
  371.          default:
  372.             return false;
  373.       }
  374.    }
  375.  
  376.    public void scrollDown(int var1) {
  377.       if (this.m_vScroll.isShowing() && this.m_vScroll.getValue() + var1 <= this.m_vScroll.getMaximum() && this.m_vScroll.isShowing()) {
  378.          this.m_scrollPos += var1;
  379.          this.m_vScroll.setValue(this.m_scrollPos);
  380.          this.m_canvas.setTop(this.m_scrollPos);
  381.       }
  382.  
  383.    }
  384.  
  385.    public void setBackground(Color var1) {
  386.       this.m_canvas.setBackground(var1);
  387.    }
  388.  
  389.    public boolean loadFromHHC(URL var1) {
  390.       ElementList var4 = new ElementList(this.m_applet);
  391.       Element var2 = new Element(this.m_applet.getString("cnt.load.elementname"), 0, this.m_applet);
  392.       ((Vector)var4).addElement(var2);
  393.       this.setList(var4);
  394.       ElementList var3 = new ElementList(this.m_applet);
  395.       var3.setAutoExpandLevel(this.m_autoExpandLevel);
  396.       SitemapParser var5 = new SitemapParser(var1, var3, this.m_applet);
  397.       if (var5.success()) {
  398.          this.m_targetFrame = var5.getFrame();
  399.          this.m_canvas.setImageList(var5.getImageList(), var5.getImageWidth(), var5.useFolders());
  400.          if ((var5.getStyleSet() & 2) > 0) {
  401.             this.m_canvas.setExWinStyle(var5.getExWinStyle());
  402.          }
  403.  
  404.          if ((var5.getStyleSet() & 1) > 0) {
  405.             this.m_applet.setWinStyle(var5.getWinStyle());
  406.          }
  407.  
  408.          this.setList(var3);
  409.          this.m_applet.showStatus(this.m_applet.getString("cnt.load.success"));
  410.          return true;
  411.       } else {
  412.          return false;
  413.       }
  414.    }
  415.  
  416.    public void paint(Graphics var1) {
  417.    }
  418.  
  419.    public void doValidate() {
  420.       this.m_Size.width = ((Component)this).size().width;
  421.       this.m_Size.height = ((Component)this).size().height;
  422.       ((Container)this).validate();
  423.       this.setVScroll();
  424.       if (this.setHScroll()) {
  425.          this.setVScroll();
  426.       }
  427.  
  428.       this.m_canvas.repaint();
  429.    }
  430.  
  431.    private void moveNextVisible() {
  432.       if (this.m_canvas.m_selectedItem < this.m_list.numVisible() - 1) {
  433.          this.m_canvas.setSelectedItem2(this.m_canvas.m_selectedItem + 1);
  434.          if (this.m_scrollPos + this.m_canvas.size().height / this.m_itemHeight <= this.m_canvas.m_selectedItem) {
  435.             this.setTop(this.m_canvas.m_selectedItem - this.m_canvas.size().height / this.m_itemHeight + 1);
  436.          }
  437.  
  438.          if (this.m_scrollPos > this.m_canvas.m_selectedItem) {
  439.             this.setTop(this.m_canvas.m_selectedItem);
  440.          }
  441.  
  442.          this.m_canvas.m_oldTop = this.m_canvas.m_top;
  443.          this.doValidate();
  444.       }
  445.    }
  446.  
  447.    public boolean setVScroll() {
  448.       boolean var1 = false;
  449.       if (this.m_list.numVisible() > this.m_canvas.size().height / this.m_itemHeight) {
  450.          if (!this.m_vScroll.isShowing()) {
  451.             var1 = true;
  452.             this.m_vScroll.show();
  453.             ((Container)this).validate();
  454.          }
  455.  
  456.          this.m_vScroll.setValues(this.m_scrollPos, this.m_canvas.size().height / this.m_itemHeight, 0, this.m_list.numVisible() - this.m_canvas.size().height / this.m_itemHeight);
  457.          this.m_canvas.syncSelectedItem();
  458.       } else {
  459.          if (this.m_vScroll.isShowing()) {
  460.             var1 = true;
  461.          }
  462.  
  463.          this.m_scrollPos = 0;
  464.          this.m_vScroll.hide();
  465.          ((Container)this).validate();
  466.          this.m_canvas.setTop(this.m_scrollPos);
  467.       }
  468.  
  469.       return var1;
  470.    }
  471.  
  472.    public boolean setHScroll() {
  473.       int var1 = 0;
  474.       boolean var2 = false;
  475.       var1 = this.m_canvas.getMaxWidth();
  476.       if (var1 > ((Component)this).size().width) {
  477.          if (!this.m_hScroll.isShowing()) {
  478.             var2 = true;
  479.             this.m_hScroll.show();
  480.             ((Container)this).validate();
  481.          }
  482.  
  483.          this.m_hScroll.setValues(this.m_hscrollPos, ((Component)this).size().width / 10, 0, (var1 - ((Component)this).size().width + 30) / 10);
  484.       } else if (this.m_hScroll.isShowing()) {
  485.          var2 = true;
  486.          this.m_hscrollPos = 0;
  487.          this.m_canvas.setHScroll(this.m_hscrollPos);
  488.          this.m_hScroll.hide();
  489.          ((Container)this).validate();
  490.       }
  491.  
  492.       return var2;
  493.    }
  494.  
  495.    public void setTop(int var1) {
  496.       this.m_scrollPos = var1;
  497.       this.m_canvas.setTop(var1, false);
  498.       this.m_list.nthVisible(0);
  499.    }
  500.  
  501.    public String getFrame() {
  502.       return this.m_targetFrame;
  503.    }
  504.  
  505.    public void setFont(Font var1, Color var2) {
  506.       this.m_canvas.setFont(var1, var2);
  507.    }
  508.  
  509.    public void addControls() {
  510.       ((Container)this).setLayout(new BorderLayout());
  511.       this.m_vScroll = new Scrollbar(1);
  512.       this.m_vScroll.setValues(0, 1, 0, 10);
  513.       this.m_hScroll = new Scrollbar(0);
  514.       this.m_hScroll.setValues(0, 1, 0, 10);
  515.       this.m_canvas = new TreeCanvas(this.m_list, this.m_applet, this);
  516.       this.m_canvas.setItemHeight(this.m_itemHeight);
  517.       ((Container)this).add("Center", this.m_canvas);
  518.       ((Container)this).add("East", this.m_vScroll);
  519.       ((Container)this).add("South", this.m_hScroll);
  520.       this.m_vScroll.hide();
  521.       this.m_hScroll.hide();
  522.    }
  523.  
  524.    public void moveNext() {
  525.       if (this.m_canvas.m_selectedItemA != this.m_list.size() - 1) {
  526.          Element var2 = this.m_list.showNext(this.m_canvas.m_selectedItemA);
  527.          int var1;
  528.          if (var2.m_url.compareTo("") == 0) {
  529.             this.m_list.showNext(this.m_canvas.m_selectedItemA + 1);
  530.             var1 = this.m_canvas.m_selectedItemA + 2;
  531.          } else {
  532.             var1 = this.m_canvas.m_selectedItemA + 1;
  533.          }
  534.  
  535.          this.m_canvas.setSelectedItemA(var1);
  536.          if (this.m_scrollPos + this.m_canvas.size().height / this.m_itemHeight <= this.m_canvas.m_selectedItem) {
  537.             this.setTop(this.m_canvas.m_selectedItem - this.m_canvas.size().height / this.m_itemHeight + 1);
  538.          }
  539.  
  540.          if (this.m_scrollPos > this.m_canvas.m_selectedItem) {
  541.             this.setTop(this.m_canvas.m_selectedItem);
  542.          }
  543.  
  544.          this.m_canvas.m_oldTop = this.m_canvas.m_top;
  545.          this.doValidate();
  546.          Event var3 = new Event(this, 1001, this.m_list.elementAt(var1));
  547.          ((Component)this).postEvent(var3);
  548.       }
  549.    }
  550.  
  551.    private void moveHome() {
  552.       this.m_canvas.setSelectedItem2(0);
  553.       if (this.m_scrollPos + this.m_canvas.size().height / this.m_itemHeight <= this.m_canvas.m_selectedItem) {
  554.          this.setTop(this.m_canvas.m_selectedItem - this.m_canvas.size().height / this.m_itemHeight + 1);
  555.       }
  556.  
  557.       if (this.m_scrollPos > this.m_canvas.m_selectedItem) {
  558.          this.setTop(this.m_canvas.m_selectedItem);
  559.       }
  560.  
  561.       this.m_canvas.m_oldTop = this.m_canvas.m_top;
  562.       this.doValidate();
  563.    }
  564.  
  565.    public void setSelection(int var1) {
  566.       this.m_canvas.setSelectedItem2(var1);
  567.    }
  568.  
  569.    public void clear() {
  570.       this.m_list.removeAllElements();
  571.    }
  572.  
  573.    public void setColors(Color var1, Color var2, Color var3, Color var4, Color var5) {
  574.       this.m_canvas.setColors(var1, var2, var3, var4, var5);
  575.    }
  576.  
  577.    public boolean handleEvent(Event var1) {
  578.       if (var1.target == this.m_vScroll) {
  579.          switch (var1.id) {
  580.             case 601:
  581.             case 602:
  582.             case 603:
  583.             case 604:
  584.             case 605:
  585.                this.m_scrollPos = this.m_vScroll.getValue();
  586.                this.m_canvas.setTop(this.m_scrollPos);
  587.                return true;
  588.          }
  589.       } else if (var1.target == this.m_hScroll) {
  590.          switch (var1.id) {
  591.             case 601:
  592.             case 602:
  593.             case 603:
  594.             case 604:
  595.             case 605:
  596.                this.m_hscrollPos = this.m_hScroll.getValue() * 10;
  597.                this.m_canvas.setHScroll(this.m_hscrollPos);
  598.                this.m_canvas.repaint();
  599.                return true;
  600.          }
  601.       }
  602.  
  603.       return false;
  604.    }
  605.  
  606.    private boolean hideChildren() {
  607.       int var1 = this.m_list.nthVisible(this.m_canvas.m_selectedItem);
  608.       if (this.m_list.hasChildren(var1)) {
  609.          if (this.m_list.hasVisibleChildren(var1)) {
  610.             this.m_list.hideChildren(var1);
  611.             boolean var2 = !this.setVScroll();
  612.             if (this.setHScroll()) {
  613.                var2 = !this.setVScroll();
  614.             }
  615.  
  616.             if (this.m_list.numVisible() - this.m_canvas.m_top < ((Component)this).size().height / this.m_itemHeight && this.m_list.numVisible() > ((Component)this).size().height / this.m_itemHeight) {
  617.                this.m_canvas.m_top = this.m_list.numVisible() - ((Component)this).size().height / this.m_itemHeight;
  618.             }
  619.  
  620.             this.doValidate();
  621.             return true;
  622.          } else {
  623.             return false;
  624.          }
  625.       } else {
  626.          return false;
  627.       }
  628.    }
  629.  
  630.    public void movePrev() {
  631.       if (this.m_canvas.m_selectedItemA != 0) {
  632.          int var2 = this.m_list.size();
  633.          Element var3 = this.m_list.showPrev(this.m_canvas.m_selectedItemA);
  634.          this.m_canvas.syncSelectedItem();
  635.          if (var2 < this.m_list.size()) {
  636.             this.m_list.showPrev(this.m_canvas.m_selectedItemA);
  637.          }
  638.  
  639.          int var1;
  640.          if (var3.m_url.compareTo("") == 0 && this.m_canvas.m_selectedItemA > 1) {
  641.             this.m_list.showPrev(this.m_list.indexOf(var3) - 1);
  642.             this.m_canvas.syncSelectedItem();
  643.             var1 = this.m_canvas.m_selectedItemA - 2;
  644.          } else {
  645.             this.m_canvas.syncSelectedItem();
  646.             var1 = this.m_canvas.m_selectedItemA - 1;
  647.          }
  648.  
  649.          this.m_canvas.setSelectedItemA(var1);
  650.          if (this.m_scrollPos + this.m_canvas.size().height / this.m_itemHeight <= this.m_canvas.m_selectedItem) {
  651.             this.setTop(this.m_canvas.m_selectedItem - this.m_canvas.size().height / this.m_itemHeight + 1);
  652.          }
  653.  
  654.          if (this.m_scrollPos > this.m_canvas.m_selectedItem) {
  655.             this.setTop(this.m_canvas.m_selectedItem);
  656.          }
  657.  
  658.          this.m_list.calcNumVisible();
  659.          this.m_list.nthVisible(0);
  660.          this.m_canvas.m_oldTop = this.m_canvas.m_top;
  661.          this.doValidate();
  662.          Event var4 = new Event(this, 1001, this.m_list.elementAt(var1));
  663.          ((Component)this).postEvent(var4);
  664.       }
  665.    }
  666.  
  667.    TreeView() {
  668.       this((Applet)null);
  669.    }
  670.  
  671.    TreeView(Applet var1) {
  672.       this.m_itemHeight = 16;
  673.       this.m_fRedraw = true;
  674.       this.m_autoExpandLevel = 2;
  675.       this.m_winStyle = 512L;
  676.       this.m_exWinStyle = 8388661L;
  677.       this.m_targetFrame = "";
  678.       this.m_Size = new Dimension(((Component)var1).size().width, ((Component)var1).size().height);
  679.       this.m_list = new ElementList(this.m_applet);
  680.       this.m_applet = (HHCtrl)var1;
  681.    }
  682.  
  683.    private void movePrevPageVisible() {
  684.       if (this.m_canvas.m_selectedItem != 0) {
  685.          int var1 = this.m_canvas.size().height / this.m_itemHeight - 1;
  686.          if (this.m_canvas.m_selectedItem - var1 < 0) {
  687.             this.m_canvas.setSelectedItem2(0);
  688.          } else {
  689.             this.m_canvas.setSelectedItem2(this.m_canvas.m_selectedItem - var1);
  690.          }
  691.  
  692.          if (this.m_scrollPos + this.m_canvas.size().height / this.m_itemHeight <= this.m_canvas.m_selectedItem) {
  693.             this.setTop(this.m_canvas.m_selectedItem - this.m_canvas.size().height / this.m_itemHeight + 1);
  694.          }
  695.  
  696.          if (this.m_scrollPos > this.m_canvas.m_selectedItem) {
  697.             this.setTop(this.m_canvas.m_selectedItem);
  698.          }
  699.  
  700.          this.m_canvas.m_oldTop = this.m_canvas.m_top;
  701.          this.doValidate();
  702.       }
  703.    }
  704. }
  705.