home *** CD-ROM | disk | FTP | other *** search
- import java.awt.Component;
- import java.awt.Image;
- import java.io.IOException;
- import java.net.MalformedURLException;
- import java.net.URL;
- import java.util.Vector;
-
- class ElementList extends Vector implements Runnable {
- static int FORMAT_LST;
- static int FORMAT_TOC = 1;
- static int MODE_RELATIVE;
- static int MODE_ABSOLUTE = 1;
- Thread thread;
- HHCtrl m_applet;
- int m_numVisible;
- int m_listFormat;
- int nAuto;
- Image img0;
- Image img1;
- Image img2;
- Image img3;
- Image pageImg;
- int m_autoExpandLevel = 2;
- static int lastNth;
- static int lastI;
-
- public void stop() {
- }
-
- public ElementList(HHCtrl var1) {
- this.m_applet = var1;
- }
-
- private void showElement(int var1) {
- boolean var2 = false;
-
- for(int var3 = this.getParent(var1); var3 >= 0; var3 = this.getParent(var3)) {
- this.showChildren(var3, false);
- }
-
- }
-
- private void autoLoad(int var1) {
- URL var2 = null;
- int var6 = 0;
- Element var3 = (Element)((Vector)this).elementAt(var1);
- var3.m_text = this.m_applet.getString("cnt.merge.elementname");
- String var4 = var3.m_url;
- int var7 = var3.m_level;
- if (var3.m_url.compareTo("") != 0) {
- try {
- var2 = new URL(var4);
- } catch (MalformedURLException var11) {
- try {
- var2 = new URL(this.m_applet.getDocumentBase(), var4);
- } catch (MalformedURLException var10) {
- var3.m_text = this.m_applet.getString("cnt.merge.errelement");
- return;
- }
- }
-
- this.m_applet.showStatus(this.m_applet.getString("cnt.load") + ": " + var4);
- } else {
- var3.m_text = this.m_applet.getString("cnt.merge.errelement");
- }
-
- if (var2 != null) {
- this.m_applet.m_tview.m_canvas.setLock();
-
- try {
- ElementList var5 = new ElementList(this.m_applet);
- var5.setAutoExpandLevel(1);
- SitemapParser var8 = new SitemapParser(var2, var5, this.m_applet);
- if (!var8.success()) {
- return;
- }
-
- for(var6 = 0; var6 < ((Vector)var5).size(); ++var6) {
- Element var10000 = (Element)((Vector)var5).elementAt(var6);
- var10000.m_level += var7;
- ((Vector)this).insertElementAt(((Vector)var5).elementAt(var6), var1 + var6);
- }
- } catch (IOException var12) {
- this.m_applet.showStatus(this.m_applet.getString("cnt.merge.err"));
- this.m_applet.m_tview.m_canvas.clearLock();
- return;
- }
-
- this.m_applet.showStatus(this.m_applet.getString("cnt.merge.success"));
- ((Vector)this).removeElementAt(var1 + var6);
- this.m_numVisible += -1;
- this.showChildren(var1 - 1);
- this.calcNumVisible();
- TreeCanvas var14 = this.m_applet.m_tview.m_canvas;
- if (var14.m_selectedItemA > var1) {
- var14.m_selectedItemA += var6 - 1;
- var14.m_selectedItem = this.whichVisible(var14.m_selectedItemA) - 1;
- }
-
- var14.calcMaxWidth();
- TreeView var9 = this.m_applet.m_tview;
- var9.setVScroll();
- if (var9.setHScroll()) {
- var9.setVScroll();
- }
-
- ((Component)var14).repaint();
- var14.clearLock();
- }
- }
-
- private int getParent(int var1) {
- int var2 = -1;
- int var3 = ((Element)((Vector)this).elementAt(var1)).m_level;
- if (var1 == 0) {
- return -1;
- } else {
- for(int var4 = var1 - 1; var4 >= 0; --var4) {
- if (((Element)((Vector)this).elementAt(var4)).m_level < var3) {
- var2 = var4;
- break;
- }
- }
-
- return var2;
- }
- }
-
- public int countChildren(int var1) {
- int var2 = var1 + 1;
- int var3 = 0;
- if (var1 == ((Vector)this).size() - 1) {
- return 0;
- } else {
- for(; var2 < ((Vector)this).size() && ((Element)((Vector)this).elementAt(var2)).m_level > ((Element)((Vector)this).elementAt(var1)).m_level; ++var2) {
- if (((Element)((Vector)this).elementAt(var2)).isVisible() && ((Element)((Vector)this).elementAt(var2)).m_level == ((Element)((Vector)this).elementAt(var1)).m_level + 1) {
- ++var3;
- }
- }
-
- return var3;
- }
- }
-
- public int numVisible() {
- return this.m_numVisible;
- }
-
- public Element showNext(int var1) {
- Element var2 = (Element)((Vector)this).elementAt(var1 + 1);
- if (!var2.isVisible()) {
- this.showChildren(var1, false);
- }
-
- return var2;
- }
-
- public int whichVisible(int var1) {
- int var2 = 0;
- int var3 = 0;
- if (var1 > ((Vector)this).size()) {
- return 0;
- } else {
- for(; var2 <= var1; ++var2) {
- if (((Element)((Vector)this).elementAt(var2)).isVisible()) {
- ++var3;
- }
- }
-
- return var3;
- }
- }
-
- public void showChildren(int var1) {
- this.showChildren(var1, true);
- }
-
- public synchronized boolean showChildren(int var1, boolean var2) {
- boolean var3 = false;
- int var4 = ((Element)((Vector)this).elementAt(var1)).m_level;
-
- Element var5;
- for(int var6 = var1 + 1; var6 < ((Vector)this).size() && (var5 = (Element)((Vector)this).elementAt(var6)).m_level > var4; ++var6) {
- if (var5.m_level == var4 + 1) {
- var5.show();
- ++this.m_numVisible;
- }
-
- if (var5.m_merge && var5.m_level == var4 + 1) {
- if (var2) {
- this.nAuto = var6;
- this.thread = new Thread(this);
- this.thread.start();
- } else {
- this.autoLoad(var6);
- var3 = true;
- }
- }
- }
-
- return var3;
- }
-
- public Element showPrev(int var1) {
- Element var2 = (Element)((Vector)this).elementAt(var1 - 1);
- int var3 = ((Vector)this).size();
- if (!var2.isVisible()) {
- this.showElement(var1 - 1);
- if (var3 < ((Vector)this).size()) {
- this.showElement(var1 - 1);
- }
- }
-
- return var2;
- }
-
- public boolean hasVisibleChildren(int var1) {
- if (var1 == ((Vector)this).size() - 1) {
- return false;
- } else {
- return ((Element)((Vector)this).elementAt(var1)).m_level < ((Element)((Vector)this).elementAt(var1 + 1)).m_level && ((Element)((Vector)this).elementAt(var1 + 1)).isVisible();
- }
- }
-
- public boolean moreVisibleAtLevel(int var1, int var2) {
- for(int var3 = var2 + 1; var3 < ((Vector)this).size() && ((Element)((Vector)this).elementAt(var3)).m_level >= var1; ++var3) {
- if (((Element)((Vector)this).elementAt(var3)).isVisible() && ((Element)((Vector)this).elementAt(var3)).m_level == var1) {
- return true;
- }
- }
-
- return false;
- }
-
- public void start() {
- }
-
- public int showTitle(String var1) {
- int var2 = -1;
-
- for(int var4 = 0; var4 < ((Vector)this).size(); ++var4) {
- Element var3 = (Element)((Vector)this).elementAt(var4);
- if (var3.m_text.equalsIgnoreCase(var1)) {
- this.showElement(var4);
- var2 = var4;
- break;
- }
- }
-
- return var2;
- }
-
- public int nthVisible(int var1) {
- int var2 = 0;
- int var3 = 0;
- if (var1 + 1 == lastNth) {
- return lastI;
- } else if (var1 > ((Vector)this).size()) {
- return ((Vector)this).size();
- } else {
- if (var1 > lastNth) {
- var3 = lastI + 1;
- var2 = lastNth;
- }
-
- while(var3 < ((Vector)this).size()) {
- if (((Element)((Vector)this).elementAt(var3)).isVisible()) {
- ++var2;
- }
-
- if (var1 + 1 == var2) {
- break;
- }
-
- ++var3;
- }
-
- lastI = var3;
- lastNth = var2;
- return var3;
- }
- }
-
- public int showURL(String var1) {
- int var2 = -1;
-
- for(int var4 = 0; var4 < ((Vector)this).size(); ++var4) {
- Element var3 = (Element)((Vector)this).elementAt(var4);
- if (var3.m_url.equalsIgnoreCase(var1)) {
- this.showElement(var4);
- var2 = var4;
- break;
- }
- }
-
- return var2;
- }
-
- public void run() {
- this.autoLoad(this.nAuto);
- }
-
- public void hideChildren(int var1) {
- for(int var3 = var1 + 1; var3 < ((Vector)this).size() && ((Element)((Vector)this).elementAt(var3)).m_level >= ((Element)((Vector)this).elementAt(var1 + 1)).m_level; ++var3) {
- Element var2 = (Element)((Vector)this).elementAt(var3);
- if (var2.isVisible()) {
- this.m_numVisible += -1;
- }
-
- var2.hide();
- }
-
- }
-
- public boolean hasChildren(int var1) {
- if (var1 == ((Vector)this).size() - 1) {
- return false;
- } else {
- return ((Element)((Vector)this).elementAt(var1)).m_level < ((Element)((Vector)this).elementAt(var1 + 1)).m_level;
- }
- }
-
- void setAutoExpandLevel(int var1) {
- if (var1 > 0) {
- this.m_autoExpandLevel = var1;
- }
-
- }
-
- public void calcNumVisible() {
- int var1 = 0;
-
- for(int var2 = 0; var2 < ((Vector)this).size(); ++var2) {
- if (((Element)((Vector)this).elementAt(var2)).isVisible()) {
- ++var1;
- }
- }
-
- this.m_numVisible = var1;
- }
- }
-