home *** CD-ROM | disk | FTP | other *** search
- import java.applet.Applet;
- import java.awt.BorderLayout;
- 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.Graphics;
- import java.awt.Image;
- import java.awt.Panel;
- import java.awt.Scrollbar;
- import java.net.URL;
- import java.util.Vector;
-
- class TreeView extends Panel {
- HHCtrl m_applet;
- ElementList m_list;
- int m_itemHeight;
- int m_scrollPos;
- int m_hscrollPos;
- int m_style;
- boolean m_fRedraw;
- int m_autoExpandLevel;
- Dimension m_Size;
- private int m_autoKey;
- private long m_winStyle;
- private long m_exWinStyle;
- static int STYLE_NORMAL;
- static int STYLE_WIN95 = 1;
- static int STYLE_EXPLORER = 2;
- TreeCanvas m_canvas;
- Scrollbar m_vScroll;
- Scrollbar m_hScroll;
- String m_targetFrame;
-
- public boolean gotFocus(Event var1, Object var2) {
- this.m_canvas.m_hasFocus = true;
- this.m_canvas.m_oldTop = this.m_canvas.m_top;
- this.m_canvas.repaint();
- return true;
- }
-
- public boolean lostFocus(Event var1, Object var2) {
- this.m_canvas.m_hasFocus = false;
- this.m_canvas.m_oldTop = this.m_canvas.m_top;
- this.m_canvas.repaint();
- return true;
- }
-
- public void setStyles(long var1, long var3) {
- this.m_winStyle = var1;
- this.m_exWinStyle = var3;
- this.m_canvas.setStyles(var1, var3);
- }
-
- public void setBackgroundImage(Image var1) {
- this.m_canvas.setBackgroundImage(var1);
- }
-
- public void sync(String var1, int var2) {
- int var3 = -1;
- if (var2 == 0) {
- var3 = this.m_list.showURL(var1);
- } else if (var2 == 1) {
- var3 = this.m_list.showTitle(var1);
- }
-
- if (var3 != -1) {
- this.m_canvas.setSelectedItemA(var3);
- if (this.m_scrollPos + this.m_canvas.size().height / this.m_itemHeight <= this.m_canvas.m_selectedItem) {
- this.setTop(this.m_canvas.m_selectedItem - this.m_canvas.size().height / this.m_itemHeight + 1);
- }
-
- if (this.m_scrollPos > this.m_canvas.m_selectedItem) {
- this.setTop(this.m_canvas.m_selectedItem);
- }
-
- this.m_list.calcNumVisible();
- this.m_list.nthVisible(0);
- this.m_canvas.m_oldTop = this.m_canvas.m_top;
- this.doValidate();
- this.m_canvas.m_state = TreeCanvas.STATE_SYNC;
- this.m_canvas.repaint();
- }
- }
-
- public void setRedrawMode(int var1) {
- this.m_canvas.setRedrawMode(var1);
- }
-
- private void moveEnd() {
- this.m_canvas.setSelectedItem2(this.m_list.numVisible() - 1);
- if (this.m_scrollPos + this.m_canvas.size().height / this.m_itemHeight <= this.m_canvas.m_selectedItem) {
- this.setTop(this.m_canvas.m_selectedItem - this.m_canvas.size().height / this.m_itemHeight + 1);
- }
-
- if (this.m_scrollPos > this.m_canvas.m_selectedItem) {
- this.setTop(this.m_canvas.m_selectedItem);
- }
-
- this.m_canvas.m_oldTop = this.m_canvas.m_top;
- this.doValidate();
- }
-
- public void setStyle(int var1) {
- if (var1 >= 0 && var1 <= 2) {
- this.m_style = var1;
- this.m_canvas.setStyle(var1);
- }
- }
-
- private void setList(ElementList var1) {
- var1.calcNumVisible();
- this.m_list = var1;
- this.m_canvas.setList(var1);
- this.m_scrollPos = 0;
- this.m_vScroll.setValues(this.m_scrollPos, 1, 0, 10);
- this.m_vScroll.hide();
- this.m_hscrollPos = 0;
- this.m_canvas.setHScroll(this.m_hscrollPos);
- this.m_hScroll.setValues(this.m_hscrollPos, 1, 0, 10);
- this.m_hScroll.hide();
- ((Container)this).validate();
- this.setVScroll();
- if (this.setHScroll()) {
- this.setVScroll();
- }
-
- }
-
- public void addElement(Element var1) {
- this.m_list.addElement(var1);
- }
-
- private void moveParent() {
- if (this.m_canvas.m_selectedItem != 0) {
- for(int var1 = this.m_canvas.m_selectedItem - 1; var1 >= -1; --var1) {
- 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) {
- this.m_canvas.setSelectedItem2(var1);
- if (this.m_scrollPos + this.m_canvas.size().height / this.m_itemHeight <= this.m_canvas.m_selectedItem) {
- this.setTop(this.m_canvas.m_selectedItem - this.m_canvas.size().height / this.m_itemHeight + 1);
- }
-
- if (this.m_scrollPos > this.m_canvas.m_selectedItem) {
- this.setTop(this.m_canvas.m_selectedItem);
- }
-
- this.m_canvas.m_oldTop = this.m_canvas.m_top;
- this.doValidate();
- return;
- }
- }
-
- }
- }
-
- private boolean showChildren() {
- int var1 = this.m_list.nthVisible(this.m_canvas.m_selectedItem);
- if (this.m_list.hasChildren(var1)) {
- if (!this.m_list.hasVisibleChildren(var1)) {
- this.m_list.showChildren(var1);
- boolean var2 = !this.setVScroll();
- if (this.setHScroll()) {
- var2 = !this.setVScroll();
- }
-
- if (this.m_scrollPos + this.m_canvas.size().height / this.m_itemHeight <= this.m_canvas.m_selectedItem) {
- this.setTop(this.m_canvas.m_selectedItem - this.m_canvas.size().height / this.m_itemHeight + 1);
- }
-
- if (this.m_scrollPos > this.m_canvas.m_selectedItem) {
- this.setTop(this.m_canvas.m_selectedItem);
- }
-
- this.doValidate();
- return true;
- } else {
- return false;
- }
- } else {
- return false;
- }
- }
-
- public void scrollUp(int var1) {
- if (this.m_vScroll.isShowing() && this.m_scrollPos >= var1) {
- this.m_scrollPos -= var1;
- this.m_vScroll.setValue(this.m_scrollPos);
- this.m_canvas.setTop(this.m_scrollPos);
- }
-
- }
-
- private void moveNextPageVisible() {
- if (this.m_canvas.m_selectedItem < this.m_list.numVisible() - 1) {
- int var1 = this.m_canvas.size().height / this.m_itemHeight - 1;
- if (this.m_canvas.m_selectedItem + var1 >= this.m_list.numVisible() - 1) {
- this.m_canvas.setSelectedItem2(this.m_list.numVisible() - 1);
- } else {
- this.m_canvas.setSelectedItem2(this.m_canvas.m_selectedItem + var1);
- }
-
- if (this.m_scrollPos + this.m_canvas.size().height / this.m_itemHeight <= this.m_canvas.m_selectedItem) {
- this.setTop(this.m_canvas.m_selectedItem - this.m_canvas.size().height / this.m_itemHeight + 1);
- }
-
- if (this.m_scrollPos > this.m_canvas.m_selectedItem) {
- this.setTop(this.m_canvas.m_selectedItem);
- }
-
- this.m_canvas.m_oldTop = this.m_canvas.m_top;
- this.doValidate();
- }
- }
-
- private void movePrevVisible() {
- if (this.m_canvas.m_selectedItem != 0) {
- this.m_canvas.setSelectedItem2(this.m_canvas.m_selectedItem - 1);
- if (this.m_scrollPos + this.m_canvas.size().height / this.m_itemHeight <= this.m_canvas.m_selectedItem) {
- this.setTop(this.m_canvas.m_selectedItem - this.m_canvas.size().height / this.m_itemHeight + 1);
- }
-
- if (this.m_scrollPos > this.m_canvas.m_selectedItem) {
- this.setTop(this.m_canvas.m_selectedItem);
- }
-
- this.m_canvas.m_oldTop = this.m_canvas.m_top;
- this.doValidate();
- }
- }
-
- public void scrollLeft(int var1) {
- if (this.m_hScroll.isShowing() && this.m_hScroll.getValue() >= var1) {
- this.m_hScroll.setValue(this.m_hScroll.getValue() - var1);
- this.m_hscrollPos -= var1 * 10;
- this.m_canvas.setHScroll(this.m_hscrollPos);
- this.m_canvas.repaint();
- }
-
- }
-
- public Dimension preferredSize() {
- return this.m_Size;
- }
-
- public void setSize(Dimension var1) {
- this.m_Size = var1;
- }
-
- public void scrollRight(int var1) {
- if (this.m_hScroll.getValue() + var1 <= this.m_hScroll.getMaximum() && this.m_hScroll.isShowing()) {
- this.m_hscrollPos += var1 * 10;
- this.m_hScroll.setValue(this.m_hScroll.getValue() + var1);
- this.m_canvas.setHScroll(this.m_hscrollPos);
- this.m_canvas.repaint();
- }
-
- }
-
- private void showElementName() {
- Element var1 = (Element)this.m_list.elementAt(this.m_canvas.m_selectedItemA);
- if (var1.m_text.compareTo("") != 0) {
- if (var1.m_url.compareTo("") != 0) {
- this.m_applet.showStatus(var1.m_text + " (" + var1.m_url + ")");
- return;
- }
-
- this.m_applet.showStatus(var1.m_text);
- }
-
- }
-
- public void setItemHeight(int var1) {
- this.m_itemHeight = var1;
- this.m_canvas.setItemHeight(var1);
- }
-
- public void setClickMode(int var1) {
- this.m_canvas.setClickMode(var1);
- }
-
- public void setAutoExpandLevel(int var1) {
- if (var1 > 0) {
- this.m_autoExpandLevel = var1;
- }
-
- }
-
- public void setRedraw(boolean var1) {
- this.m_fRedraw = var1;
- this.m_canvas.m_fRedraw = var1;
- }
-
- public boolean keyDown(Event var1, int var2) {
- switch (var2) {
- case 8:
- this.moveParent();
- this.showElementName();
- return true;
- case 10:
- Event var3 = new Event(this, 1001, this.m_list.elementAt(this.m_canvas.m_selectedItemA));
- ((Component)this).postEvent(var3);
- return true;
- case 43:
- this.showChildren();
- this.showElementName();
- return true;
- case 45:
- this.hideChildren();
- this.showElementName();
- return true;
- case 1000:
- this.moveHome();
- this.showElementName();
- return true;
- case 1001:
- this.moveEnd();
- this.showElementName();
- return true;
- case 1002:
- this.movePrevPageVisible();
- this.showElementName();
- return true;
- case 1003:
- this.moveNextPageVisible();
- this.showElementName();
- return true;
- case 1004:
- if ((var1.modifiers & 2) > 0) {
- this.scrollUp(1);
- } else {
- this.movePrevVisible();
- this.showElementName();
- }
-
- return true;
- case 1005:
- if ((var1.modifiers & 2) > 0) {
- this.scrollDown(1);
- } else {
- this.moveNextVisible();
- this.showElementName();
- }
-
- return true;
- case 1006:
- if ((var1.modifiers & 2) > 0) {
- this.scrollLeft(1);
- } else {
- if (!this.hideChildren()) {
- this.movePrevVisible();
- }
-
- this.showElementName();
- }
-
- return true;
- case 1007:
- if ((var1.modifiers & 2) > 0) {
- this.scrollRight(1);
- } else {
- if (!this.showChildren()) {
- this.moveNextVisible();
- }
-
- this.showElementName();
- }
-
- return true;
- default:
- return false;
- }
- }
-
- public void scrollDown(int var1) {
- if (this.m_vScroll.isShowing() && this.m_vScroll.getValue() + var1 <= this.m_vScroll.getMaximum() && this.m_vScroll.isShowing()) {
- this.m_scrollPos += var1;
- this.m_vScroll.setValue(this.m_scrollPos);
- this.m_canvas.setTop(this.m_scrollPos);
- }
-
- }
-
- public void setBackground(Color var1) {
- this.m_canvas.setBackground(var1);
- }
-
- public boolean loadFromHHC(URL var1) {
- ElementList var4 = new ElementList(this.m_applet);
- Element var2 = new Element(this.m_applet.getString("cnt.load.elementname"), 0, this.m_applet);
- ((Vector)var4).addElement(var2);
- this.setList(var4);
- ElementList var3 = new ElementList(this.m_applet);
- var3.setAutoExpandLevel(this.m_autoExpandLevel);
- SitemapParser var5 = new SitemapParser(var1, var3, this.m_applet);
- if (var5.success()) {
- this.m_targetFrame = var5.getFrame();
- this.m_canvas.setImageList(var5.getImageList(), var5.getImageWidth(), var5.useFolders());
- if ((var5.getStyleSet() & 2) > 0) {
- this.m_canvas.setExWinStyle(var5.getExWinStyle());
- }
-
- if ((var5.getStyleSet() & 1) > 0) {
- this.m_applet.setWinStyle(var5.getWinStyle());
- }
-
- this.setList(var3);
- this.m_applet.showStatus(this.m_applet.getString("cnt.load.success"));
- return true;
- } else {
- return false;
- }
- }
-
- public void paint(Graphics var1) {
- }
-
- public void doValidate() {
- this.m_Size.width = ((Component)this).size().width;
- this.m_Size.height = ((Component)this).size().height;
- ((Container)this).validate();
- this.setVScroll();
- if (this.setHScroll()) {
- this.setVScroll();
- }
-
- this.m_canvas.repaint();
- }
-
- private void moveNextVisible() {
- if (this.m_canvas.m_selectedItem < this.m_list.numVisible() - 1) {
- this.m_canvas.setSelectedItem2(this.m_canvas.m_selectedItem + 1);
- if (this.m_scrollPos + this.m_canvas.size().height / this.m_itemHeight <= this.m_canvas.m_selectedItem) {
- this.setTop(this.m_canvas.m_selectedItem - this.m_canvas.size().height / this.m_itemHeight + 1);
- }
-
- if (this.m_scrollPos > this.m_canvas.m_selectedItem) {
- this.setTop(this.m_canvas.m_selectedItem);
- }
-
- this.m_canvas.m_oldTop = this.m_canvas.m_top;
- this.doValidate();
- }
- }
-
- public boolean setVScroll() {
- boolean var1 = false;
- if (this.m_list.numVisible() > this.m_canvas.size().height / this.m_itemHeight) {
- if (!this.m_vScroll.isShowing()) {
- var1 = true;
- this.m_vScroll.show();
- ((Container)this).validate();
- }
-
- 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);
- this.m_canvas.syncSelectedItem();
- } else {
- if (this.m_vScroll.isShowing()) {
- var1 = true;
- }
-
- this.m_scrollPos = 0;
- this.m_vScroll.hide();
- ((Container)this).validate();
- this.m_canvas.setTop(this.m_scrollPos);
- }
-
- return var1;
- }
-
- public boolean setHScroll() {
- int var1 = 0;
- boolean var2 = false;
- var1 = this.m_canvas.getMaxWidth();
- if (var1 > ((Component)this).size().width) {
- if (!this.m_hScroll.isShowing()) {
- var2 = true;
- this.m_hScroll.show();
- ((Container)this).validate();
- }
-
- this.m_hScroll.setValues(this.m_hscrollPos, ((Component)this).size().width / 10, 0, (var1 - ((Component)this).size().width + 30) / 10);
- } else if (this.m_hScroll.isShowing()) {
- var2 = true;
- this.m_hscrollPos = 0;
- this.m_canvas.setHScroll(this.m_hscrollPos);
- this.m_hScroll.hide();
- ((Container)this).validate();
- }
-
- return var2;
- }
-
- public void setTop(int var1) {
- this.m_scrollPos = var1;
- this.m_canvas.setTop(var1, false);
- this.m_list.nthVisible(0);
- }
-
- public String getFrame() {
- return this.m_targetFrame;
- }
-
- public void setFont(Font var1, Color var2) {
- this.m_canvas.setFont(var1, var2);
- }
-
- public void addControls() {
- ((Container)this).setLayout(new BorderLayout());
- this.m_vScroll = new Scrollbar(1);
- this.m_vScroll.setValues(0, 1, 0, 10);
- this.m_hScroll = new Scrollbar(0);
- this.m_hScroll.setValues(0, 1, 0, 10);
- this.m_canvas = new TreeCanvas(this.m_list, this.m_applet, this);
- this.m_canvas.setItemHeight(this.m_itemHeight);
- ((Container)this).add("Center", this.m_canvas);
- ((Container)this).add("East", this.m_vScroll);
- ((Container)this).add("South", this.m_hScroll);
- this.m_vScroll.hide();
- this.m_hScroll.hide();
- }
-
- public void moveNext() {
- if (this.m_canvas.m_selectedItemA != this.m_list.size() - 1) {
- Element var2 = this.m_list.showNext(this.m_canvas.m_selectedItemA);
- int var1;
- if (var2.m_url.compareTo("") == 0) {
- this.m_list.showNext(this.m_canvas.m_selectedItemA + 1);
- var1 = this.m_canvas.m_selectedItemA + 2;
- } else {
- var1 = this.m_canvas.m_selectedItemA + 1;
- }
-
- this.m_canvas.setSelectedItemA(var1);
- if (this.m_scrollPos + this.m_canvas.size().height / this.m_itemHeight <= this.m_canvas.m_selectedItem) {
- this.setTop(this.m_canvas.m_selectedItem - this.m_canvas.size().height / this.m_itemHeight + 1);
- }
-
- if (this.m_scrollPos > this.m_canvas.m_selectedItem) {
- this.setTop(this.m_canvas.m_selectedItem);
- }
-
- this.m_canvas.m_oldTop = this.m_canvas.m_top;
- this.doValidate();
- Event var3 = new Event(this, 1001, this.m_list.elementAt(var1));
- ((Component)this).postEvent(var3);
- }
- }
-
- private void moveHome() {
- this.m_canvas.setSelectedItem2(0);
- if (this.m_scrollPos + this.m_canvas.size().height / this.m_itemHeight <= this.m_canvas.m_selectedItem) {
- this.setTop(this.m_canvas.m_selectedItem - this.m_canvas.size().height / this.m_itemHeight + 1);
- }
-
- if (this.m_scrollPos > this.m_canvas.m_selectedItem) {
- this.setTop(this.m_canvas.m_selectedItem);
- }
-
- this.m_canvas.m_oldTop = this.m_canvas.m_top;
- this.doValidate();
- }
-
- public void setSelection(int var1) {
- this.m_canvas.setSelectedItem2(var1);
- }
-
- public void clear() {
- this.m_list.removeAllElements();
- }
-
- public void setColors(Color var1, Color var2, Color var3, Color var4, Color var5) {
- this.m_canvas.setColors(var1, var2, var3, var4, var5);
- }
-
- public boolean handleEvent(Event var1) {
- if (var1.target == this.m_vScroll) {
- switch (var1.id) {
- case 601:
- case 602:
- case 603:
- case 604:
- case 605:
- this.m_scrollPos = this.m_vScroll.getValue();
- this.m_canvas.setTop(this.m_scrollPos);
- return true;
- }
- } else if (var1.target == this.m_hScroll) {
- switch (var1.id) {
- case 601:
- case 602:
- case 603:
- case 604:
- case 605:
- this.m_hscrollPos = this.m_hScroll.getValue() * 10;
- this.m_canvas.setHScroll(this.m_hscrollPos);
- this.m_canvas.repaint();
- return true;
- }
- }
-
- return false;
- }
-
- private boolean hideChildren() {
- int var1 = this.m_list.nthVisible(this.m_canvas.m_selectedItem);
- if (this.m_list.hasChildren(var1)) {
- if (this.m_list.hasVisibleChildren(var1)) {
- this.m_list.hideChildren(var1);
- boolean var2 = !this.setVScroll();
- if (this.setHScroll()) {
- var2 = !this.setVScroll();
- }
-
- 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) {
- this.m_canvas.m_top = this.m_list.numVisible() - ((Component)this).size().height / this.m_itemHeight;
- }
-
- this.doValidate();
- return true;
- } else {
- return false;
- }
- } else {
- return false;
- }
- }
-
- public void movePrev() {
- if (this.m_canvas.m_selectedItemA != 0) {
- int var2 = this.m_list.size();
- Element var3 = this.m_list.showPrev(this.m_canvas.m_selectedItemA);
- this.m_canvas.syncSelectedItem();
- if (var2 < this.m_list.size()) {
- this.m_list.showPrev(this.m_canvas.m_selectedItemA);
- }
-
- int var1;
- if (var3.m_url.compareTo("") == 0 && this.m_canvas.m_selectedItemA > 1) {
- this.m_list.showPrev(this.m_list.indexOf(var3) - 1);
- this.m_canvas.syncSelectedItem();
- var1 = this.m_canvas.m_selectedItemA - 2;
- } else {
- this.m_canvas.syncSelectedItem();
- var1 = this.m_canvas.m_selectedItemA - 1;
- }
-
- this.m_canvas.setSelectedItemA(var1);
- if (this.m_scrollPos + this.m_canvas.size().height / this.m_itemHeight <= this.m_canvas.m_selectedItem) {
- this.setTop(this.m_canvas.m_selectedItem - this.m_canvas.size().height / this.m_itemHeight + 1);
- }
-
- if (this.m_scrollPos > this.m_canvas.m_selectedItem) {
- this.setTop(this.m_canvas.m_selectedItem);
- }
-
- this.m_list.calcNumVisible();
- this.m_list.nthVisible(0);
- this.m_canvas.m_oldTop = this.m_canvas.m_top;
- this.doValidate();
- Event var4 = new Event(this, 1001, this.m_list.elementAt(var1));
- ((Component)this).postEvent(var4);
- }
- }
-
- TreeView() {
- this((Applet)null);
- }
-
- TreeView(Applet var1) {
- this.m_itemHeight = 16;
- this.m_fRedraw = true;
- this.m_autoExpandLevel = 2;
- this.m_winStyle = 512L;
- this.m_exWinStyle = 8388661L;
- this.m_targetFrame = "";
- this.m_Size = new Dimension(((Component)var1).size().width, ((Component)var1).size().height);
- this.m_list = new ElementList(this.m_applet);
- this.m_applet = (HHCtrl)var1;
- }
-
- private void movePrevPageVisible() {
- if (this.m_canvas.m_selectedItem != 0) {
- int var1 = this.m_canvas.size().height / this.m_itemHeight - 1;
- if (this.m_canvas.m_selectedItem - var1 < 0) {
- this.m_canvas.setSelectedItem2(0);
- } else {
- this.m_canvas.setSelectedItem2(this.m_canvas.m_selectedItem - var1);
- }
-
- if (this.m_scrollPos + this.m_canvas.size().height / this.m_itemHeight <= this.m_canvas.m_selectedItem) {
- this.setTop(this.m_canvas.m_selectedItem - this.m_canvas.size().height / this.m_itemHeight + 1);
- }
-
- if (this.m_scrollPos > this.m_canvas.m_selectedItem) {
- this.setTop(this.m_canvas.m_selectedItem);
- }
-
- this.m_canvas.m_oldTop = this.m_canvas.m_top;
- this.doValidate();
- }
- }
- }
-