home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 2004 May / DPPCPRO0504.ISO / May / Seatools / SeaTools.iso / tools / en / webhelp / webhelp.jar / XMLConsumer / TocData.class (.txt) < prev    next >
Encoding:
Java Class File  |  2002-04-17  |  3.2 KB  |  189 lines

  1. package XMLConsumer;
  2.  
  3. import BsscXML.IBsscXMLElementReader;
  4. import hhapplet.IChunkedData;
  5. import hhapplet.IChunkedDataListener;
  6. import hhapplet.URLFileHandler;
  7. import java.net.MalformedURLException;
  8. import java.net.URL;
  9. import java.util.Vector;
  10. import treeview.SiblingChildTree;
  11.  
  12. public class TocData extends Consumer implements IChunkedData {
  13.    private URL m_projURL = null;
  14.    private Vector m_vEntries = null;
  15.    private boolean m_bLoaded;
  16.    private int m_nRootLevel;
  17.    private IChunkedDataListener m_listener;
  18.  
  19.    public TocData(URL var1, URL var2) {
  20.       super(var1);
  21.       this.m_projURL = var2;
  22.       this.m_nRootLevel = 0;
  23.       this.m_vEntries = new Vector();
  24.    }
  25.  
  26.    public Vector getTocEntires() {
  27.       return this.m_vEntries;
  28.    }
  29.  
  30.    public void consume(IBsscXMLElementReader var1) {
  31.       if (var1.getName().equals("tocdata")) {
  32.          this.processBook(var1, this.m_nRootLevel, (TocEntry)null);
  33.       }
  34.  
  35.       if (this.m_listener != null) {
  36.          this.m_listener.putData(this);
  37.       }
  38.  
  39.    }
  40.  
  41.    private void processBook(IBsscXMLElementReader var1, int var2, TocEntry var3) {
  42.       int var4 = 0;
  43.       Object var5 = null;
  44.       TocEntry var6 = null;
  45.  
  46.       while(true) {
  47.          IBsscXMLElementReader var7 = var1.getChild(var4++);
  48.          if (var7 == null) {
  49.             return;
  50.          }
  51.  
  52.          String var8 = var7.getAttribute("name");
  53.          String var9 = var7.getAttribute("url");
  54.          String var10 = var7.getAttribute("ref");
  55.          String var11 = var7.getAttribute("target");
  56.          String var12 = var7.getAttribute("images");
  57.          if (var9 == null) {
  58.             var9 = "";
  59.          }
  60.  
  61.          if (var7.getName().equals("book")) {
  62.             TocEntry var18 = new TocEntry(var8, var9, (String)null, this.m_vEntries.size(), 1, var2, this);
  63.             this.m_vEntries.addElement(var18);
  64.             if (var3 != null) {
  65.                ((SiblingChildTree)var3).addChild(var18);
  66.             } else if (var6 != null) {
  67.                ((SiblingChildTree)var6).addSibling(var18);
  68.             }
  69.  
  70.             var6 = var18;
  71.             this.processBook(var7, var2 + 1, var18);
  72.             if (var11 != null) {
  73.                var18.setTarget(var11);
  74.             }
  75.  
  76.             if (var12 != null) {
  77.                var18.setIcon(var12);
  78.             }
  79.          } else if (var7.getName().equals("item")) {
  80.             TocEntry var19 = new TocEntry(var8, var9, (String)null, this.m_vEntries.size(), 2, var2, this);
  81.             this.m_vEntries.addElement(var19);
  82.             if (var3 != null) {
  83.                ((SiblingChildTree)var3).addChild(var19);
  84.             } else if (var6 != null) {
  85.                ((SiblingChildTree)var6).addSibling(var19);
  86.             }
  87.  
  88.             var6 = var19;
  89.             if (var11 != null) {
  90.                var19.setTarget(var11);
  91.             }
  92.  
  93.             if (var12 != null) {
  94.                var19.setIcon(var12);
  95.             }
  96.          } else if (var7.getName().equals("remoteitem")) {
  97.             TocEntry var20 = new TocEntry(var8, var9, (String)null, this.m_vEntries.size(), 5, var2, this);
  98.             this.m_vEntries.addElement(var20);
  99.             if (var3 != null) {
  100.                ((SiblingChildTree)var3).addChild(var20);
  101.             } else if (var6 != null) {
  102.                ((SiblingChildTree)var6).addSibling(var20);
  103.             }
  104.  
  105.             var6 = var20;
  106.             if (var11 != null) {
  107.                var20.setTarget(var11);
  108.             }
  109.  
  110.             if (var12 != null) {
  111.                var20.setIcon(var12);
  112.             }
  113.          } else if (var7.getName().equals("project")) {
  114.             String var13 = this.m_projURL.toString();
  115.             int var14 = var13.lastIndexOf("/");
  116.             if (var14 != -1 && var14 < var13.length()) {
  117.                var13 = var13.substring(var14 + 1);
  118.             }
  119.  
  120.             try {
  121.                URL var15 = URLFileHandler.makeURL(this.m_projURL, var10 + var13, (String)null);
  122.                TocEntry var21 = new TocEntry(var8, var9, var15.toString(), this.m_vEntries.size(), 4, var2, this);
  123.                this.m_vEntries.addElement(var21);
  124.                if (var3 != null) {
  125.                   ((SiblingChildTree)var3).addChild(var21);
  126.                } else if (var6 != null) {
  127.                   ((SiblingChildTree)var6).addSibling(var21);
  128.                }
  129.  
  130.                var6 = var21;
  131.                if (var11 != null) {
  132.                   var21.setTarget(var11);
  133.                }
  134.  
  135.                if (var12 != null) {
  136.                   var21.setIcon(var12);
  137.                }
  138.             } catch (MalformedURLException var17) {
  139.                ((Throwable)var17).printStackTrace();
  140.             }
  141.          } else if (var7.getName().equals("chunk")) {
  142.             try {
  143.                URL var23 = URLFileHandler.makeURL(((Consumer)this).getURL(), var10, (String)null);
  144.                TocEntry var22 = new TocEntry(var8, var9, var23.toString(), this.m_vEntries.size(), 3, var2, this);
  145.                this.m_vEntries.addElement(var22);
  146.                if (var3 != null) {
  147.                   ((SiblingChildTree)var3).addChild(var22);
  148.                } else if (var6 != null) {
  149.                   ((SiblingChildTree)var6).addSibling(var22);
  150.                }
  151.  
  152.                var6 = var22;
  153.                if (var11 != null) {
  154.                   var22.setTarget(var11);
  155.                }
  156.  
  157.                if (var12 != null) {
  158.                   var22.setIcon(var12);
  159.                }
  160.             } catch (MalformedURLException var16) {
  161.                ((Throwable)var16).printStackTrace();
  162.             }
  163.          }
  164.       }
  165.    }
  166.  
  167.    public boolean isLoaded() {
  168.       return this.m_bLoaded;
  169.    }
  170.  
  171.    public void load(IChunkedDataListener var1) {
  172.       this.load(var1, 0);
  173.    }
  174.  
  175.    public void load(IChunkedDataListener var1, int var2) {
  176.       if (!this.m_bLoaded) {
  177.          this.m_listener = var1;
  178.          this.m_nRootLevel = var2;
  179.          ((Consumer)this).process(false);
  180.          this.m_bLoaded = true;
  181.       }
  182.  
  183.    }
  184.  
  185.    public URL getProjURL() {
  186.       return this.m_projURL;
  187.    }
  188. }
  189.