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

  1. import java.awt.Component;
  2. import java.awt.Image;
  3. import java.io.IOException;
  4. import java.net.MalformedURLException;
  5. import java.net.URL;
  6. import java.util.Vector;
  7.  
  8. class ElementList extends Vector implements Runnable {
  9.    static int FORMAT_LST;
  10.    static int FORMAT_TOC = 1;
  11.    static int MODE_RELATIVE;
  12.    static int MODE_ABSOLUTE = 1;
  13.    Thread thread;
  14.    HHCtrl m_applet;
  15.    int m_numVisible;
  16.    int m_listFormat;
  17.    int nAuto;
  18.    Image img0;
  19.    Image img1;
  20.    Image img2;
  21.    Image img3;
  22.    Image pageImg;
  23.    int m_autoExpandLevel = 2;
  24.    static int lastNth;
  25.    static int lastI;
  26.  
  27.    public void stop() {
  28.    }
  29.  
  30.    public ElementList(HHCtrl var1) {
  31.       this.m_applet = var1;
  32.    }
  33.  
  34.    private void showElement(int var1) {
  35.       boolean var2 = false;
  36.  
  37.       for(int var3 = this.getParent(var1); var3 >= 0; var3 = this.getParent(var3)) {
  38.          this.showChildren(var3, false);
  39.       }
  40.  
  41.    }
  42.  
  43.    private void autoLoad(int var1) {
  44.       URL var2 = null;
  45.       int var6 = 0;
  46.       Element var3 = (Element)((Vector)this).elementAt(var1);
  47.       var3.m_text = this.m_applet.getString("cnt.merge.elementname");
  48.       String var4 = var3.m_url;
  49.       int var7 = var3.m_level;
  50.       if (var3.m_url.compareTo("") != 0) {
  51.          try {
  52.             var2 = new URL(var4);
  53.          } catch (MalformedURLException var11) {
  54.             try {
  55.                var2 = new URL(this.m_applet.getDocumentBase(), var4);
  56.             } catch (MalformedURLException var10) {
  57.                var3.m_text = this.m_applet.getString("cnt.merge.errelement");
  58.                return;
  59.             }
  60.          }
  61.  
  62.          this.m_applet.showStatus(this.m_applet.getString("cnt.load") + ": " + var4);
  63.       } else {
  64.          var3.m_text = this.m_applet.getString("cnt.merge.errelement");
  65.       }
  66.  
  67.       if (var2 != null) {
  68.          this.m_applet.m_tview.m_canvas.setLock();
  69.  
  70.          try {
  71.             ElementList var5 = new ElementList(this.m_applet);
  72.             var5.setAutoExpandLevel(1);
  73.             SitemapParser var8 = new SitemapParser(var2, var5, this.m_applet);
  74.             if (!var8.success()) {
  75.                return;
  76.             }
  77.  
  78.             for(var6 = 0; var6 < ((Vector)var5).size(); ++var6) {
  79.                Element var10000 = (Element)((Vector)var5).elementAt(var6);
  80.                var10000.m_level += var7;
  81.                ((Vector)this).insertElementAt(((Vector)var5).elementAt(var6), var1 + var6);
  82.             }
  83.          } catch (IOException var12) {
  84.             this.m_applet.showStatus(this.m_applet.getString("cnt.merge.err"));
  85.             this.m_applet.m_tview.m_canvas.clearLock();
  86.             return;
  87.          }
  88.  
  89.          this.m_applet.showStatus(this.m_applet.getString("cnt.merge.success"));
  90.          ((Vector)this).removeElementAt(var1 + var6);
  91.          this.m_numVisible += -1;
  92.          this.showChildren(var1 - 1);
  93.          this.calcNumVisible();
  94.          TreeCanvas var14 = this.m_applet.m_tview.m_canvas;
  95.          if (var14.m_selectedItemA > var1) {
  96.             var14.m_selectedItemA += var6 - 1;
  97.             var14.m_selectedItem = this.whichVisible(var14.m_selectedItemA) - 1;
  98.          }
  99.  
  100.          var14.calcMaxWidth();
  101.          TreeView var9 = this.m_applet.m_tview;
  102.          var9.setVScroll();
  103.          if (var9.setHScroll()) {
  104.             var9.setVScroll();
  105.          }
  106.  
  107.          ((Component)var14).repaint();
  108.          var14.clearLock();
  109.       }
  110.    }
  111.  
  112.    private int getParent(int var1) {
  113.       int var2 = -1;
  114.       int var3 = ((Element)((Vector)this).elementAt(var1)).m_level;
  115.       if (var1 == 0) {
  116.          return -1;
  117.       } else {
  118.          for(int var4 = var1 - 1; var4 >= 0; --var4) {
  119.             if (((Element)((Vector)this).elementAt(var4)).m_level < var3) {
  120.                var2 = var4;
  121.                break;
  122.             }
  123.          }
  124.  
  125.          return var2;
  126.       }
  127.    }
  128.  
  129.    public int countChildren(int var1) {
  130.       int var2 = var1 + 1;
  131.       int var3 = 0;
  132.       if (var1 == ((Vector)this).size() - 1) {
  133.          return 0;
  134.       } else {
  135.          for(; var2 < ((Vector)this).size() && ((Element)((Vector)this).elementAt(var2)).m_level > ((Element)((Vector)this).elementAt(var1)).m_level; ++var2) {
  136.             if (((Element)((Vector)this).elementAt(var2)).isVisible() && ((Element)((Vector)this).elementAt(var2)).m_level == ((Element)((Vector)this).elementAt(var1)).m_level + 1) {
  137.                ++var3;
  138.             }
  139.          }
  140.  
  141.          return var3;
  142.       }
  143.    }
  144.  
  145.    public int numVisible() {
  146.       return this.m_numVisible;
  147.    }
  148.  
  149.    public Element showNext(int var1) {
  150.       Element var2 = (Element)((Vector)this).elementAt(var1 + 1);
  151.       if (!var2.isVisible()) {
  152.          this.showChildren(var1, false);
  153.       }
  154.  
  155.       return var2;
  156.    }
  157.  
  158.    public int whichVisible(int var1) {
  159.       int var2 = 0;
  160.       int var3 = 0;
  161.       if (var1 > ((Vector)this).size()) {
  162.          return 0;
  163.       } else {
  164.          for(; var2 <= var1; ++var2) {
  165.             if (((Element)((Vector)this).elementAt(var2)).isVisible()) {
  166.                ++var3;
  167.             }
  168.          }
  169.  
  170.          return var3;
  171.       }
  172.    }
  173.  
  174.    public void showChildren(int var1) {
  175.       this.showChildren(var1, true);
  176.    }
  177.  
  178.    public synchronized boolean showChildren(int var1, boolean var2) {
  179.       boolean var3 = false;
  180.       int var4 = ((Element)((Vector)this).elementAt(var1)).m_level;
  181.  
  182.       Element var5;
  183.       for(int var6 = var1 + 1; var6 < ((Vector)this).size() && (var5 = (Element)((Vector)this).elementAt(var6)).m_level > var4; ++var6) {
  184.          if (var5.m_level == var4 + 1) {
  185.             var5.show();
  186.             ++this.m_numVisible;
  187.          }
  188.  
  189.          if (var5.m_merge && var5.m_level == var4 + 1) {
  190.             if (var2) {
  191.                this.nAuto = var6;
  192.                this.thread = new Thread(this);
  193.                this.thread.start();
  194.             } else {
  195.                this.autoLoad(var6);
  196.                var3 = true;
  197.             }
  198.          }
  199.       }
  200.  
  201.       return var3;
  202.    }
  203.  
  204.    public Element showPrev(int var1) {
  205.       Element var2 = (Element)((Vector)this).elementAt(var1 - 1);
  206.       int var3 = ((Vector)this).size();
  207.       if (!var2.isVisible()) {
  208.          this.showElement(var1 - 1);
  209.          if (var3 < ((Vector)this).size()) {
  210.             this.showElement(var1 - 1);
  211.          }
  212.       }
  213.  
  214.       return var2;
  215.    }
  216.  
  217.    public boolean hasVisibleChildren(int var1) {
  218.       if (var1 == ((Vector)this).size() - 1) {
  219.          return false;
  220.       } else {
  221.          return ((Element)((Vector)this).elementAt(var1)).m_level < ((Element)((Vector)this).elementAt(var1 + 1)).m_level && ((Element)((Vector)this).elementAt(var1 + 1)).isVisible();
  222.       }
  223.    }
  224.  
  225.    public boolean moreVisibleAtLevel(int var1, int var2) {
  226.       for(int var3 = var2 + 1; var3 < ((Vector)this).size() && ((Element)((Vector)this).elementAt(var3)).m_level >= var1; ++var3) {
  227.          if (((Element)((Vector)this).elementAt(var3)).isVisible() && ((Element)((Vector)this).elementAt(var3)).m_level == var1) {
  228.             return true;
  229.          }
  230.       }
  231.  
  232.       return false;
  233.    }
  234.  
  235.    public void start() {
  236.    }
  237.  
  238.    public int showTitle(String var1) {
  239.       int var2 = -1;
  240.  
  241.       for(int var4 = 0; var4 < ((Vector)this).size(); ++var4) {
  242.          Element var3 = (Element)((Vector)this).elementAt(var4);
  243.          if (var3.m_text.equalsIgnoreCase(var1)) {
  244.             this.showElement(var4);
  245.             var2 = var4;
  246.             break;
  247.          }
  248.       }
  249.  
  250.       return var2;
  251.    }
  252.  
  253.    public int nthVisible(int var1) {
  254.       int var2 = 0;
  255.       int var3 = 0;
  256.       if (var1 + 1 == lastNth) {
  257.          return lastI;
  258.       } else if (var1 > ((Vector)this).size()) {
  259.          return ((Vector)this).size();
  260.       } else {
  261.          if (var1 > lastNth) {
  262.             var3 = lastI + 1;
  263.             var2 = lastNth;
  264.          }
  265.  
  266.          while(var3 < ((Vector)this).size()) {
  267.             if (((Element)((Vector)this).elementAt(var3)).isVisible()) {
  268.                ++var2;
  269.             }
  270.  
  271.             if (var1 + 1 == var2) {
  272.                break;
  273.             }
  274.  
  275.             ++var3;
  276.          }
  277.  
  278.          lastI = var3;
  279.          lastNth = var2;
  280.          return var3;
  281.       }
  282.    }
  283.  
  284.    public int showURL(String var1) {
  285.       int var2 = -1;
  286.  
  287.       for(int var4 = 0; var4 < ((Vector)this).size(); ++var4) {
  288.          Element var3 = (Element)((Vector)this).elementAt(var4);
  289.          if (var3.m_url.equalsIgnoreCase(var1)) {
  290.             this.showElement(var4);
  291.             var2 = var4;
  292.             break;
  293.          }
  294.       }
  295.  
  296.       return var2;
  297.    }
  298.  
  299.    public void run() {
  300.       this.autoLoad(this.nAuto);
  301.    }
  302.  
  303.    public void hideChildren(int var1) {
  304.       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) {
  305.          Element var2 = (Element)((Vector)this).elementAt(var3);
  306.          if (var2.isVisible()) {
  307.             this.m_numVisible += -1;
  308.          }
  309.  
  310.          var2.hide();
  311.       }
  312.  
  313.    }
  314.  
  315.    public boolean hasChildren(int var1) {
  316.       if (var1 == ((Vector)this).size() - 1) {
  317.          return false;
  318.       } else {
  319.          return ((Element)((Vector)this).elementAt(var1)).m_level < ((Element)((Vector)this).elementAt(var1 + 1)).m_level;
  320.       }
  321.    }
  322.  
  323.    void setAutoExpandLevel(int var1) {
  324.       if (var1 > 0) {
  325.          this.m_autoExpandLevel = var1;
  326.       }
  327.  
  328.    }
  329.  
  330.    public void calcNumVisible() {
  331.       int var1 = 0;
  332.  
  333.       for(int var2 = 0; var2 < ((Vector)this).size(); ++var2) {
  334.          if (((Element)((Vector)this).elementAt(var2)).isVisible()) {
  335.             ++var1;
  336.          }
  337.       }
  338.  
  339.       this.m_numVisible = var1;
  340.    }
  341. }
  342.