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

  1. package hhapplet;
  2.  
  3. import XMLConsumer.Consumer;
  4. import XMLConsumer.Project;
  5. import XMLConsumer.Toc;
  6. import XMLConsumer.TocEntry;
  7. import java.awt.BorderLayout;
  8. import java.awt.Color;
  9. import java.awt.Component;
  10. import java.awt.Container;
  11. import java.awt.Dimension;
  12. import java.awt.Font;
  13. import java.awt.FontMetrics;
  14. import java.awt.Image;
  15. import java.net.MalformedURLException;
  16. import java.net.URL;
  17. import java.util.Enumeration;
  18. import java.util.Vector;
  19.  
  20. public class TocView extends BsscImagePanel {
  21.    private Vector m_vProjects;
  22.    private Vector m_vToc;
  23.    private TocListView m_list;
  24.    private Object m_Cursor = null;
  25.  
  26.    public void sync(String var1, String var2) {
  27.       if (this.m_list != null) {
  28.          this.m_list.sync(var1, var2);
  29.       }
  30.  
  31.    }
  32.  
  33.    public TocView(Vector var1, TocViewSkin var2) {
  34.       this.m_vProjects = var1;
  35.       this.m_vToc = new Vector();
  36.       this.loadTocInfo();
  37.       this.m_list = new TocListView(this.m_vProjects, this.m_vToc);
  38.       Color var3 = ((ViewSkin)var2).getBgColor();
  39.       if (var3 != null) {
  40.          this.m_list.setBackground(var3);
  41.       } else {
  42.          this.m_list.setBackground(Color.white);
  43.       }
  44.  
  45.       Image var4 = ((ViewSkin)var2).getBgImage();
  46.       if (var4 != null) {
  47.          this.m_list.setBgImage(var4);
  48.       }
  49.  
  50.       BsscFont var5 = ((ViewSkin)var2).getNormalFont();
  51.       if (var5 != null) {
  52.          Font var6 = var5.getFont();
  53.          FontMetrics var7 = ((Component)this).getFontMetrics(var6);
  54.          int var8 = var7.getHeight();
  55.          if (var8 > 16) {
  56.             this.m_list.setUnitHeight(var7.getHeight());
  57.          }
  58.  
  59.          Font var9 = var5.getFont();
  60.          if (var9 != null) {
  61.             TocEntry.setNormalFont(var9);
  62.          }
  63.  
  64.          Color var10 = var5.getColor();
  65.          if (var10 != null) {
  66.             TocEntry.setNormalColor(var10);
  67.          }
  68.  
  69.          TocEntry.setNormalUnderline(var5.isUnderline());
  70.       }
  71.  
  72.       BsscFont var11 = ((ViewSkin)var2).getHoverFont();
  73.       if (var11 != null) {
  74.          Font var12 = var11.getFont();
  75.          if (var12 != null) {
  76.             TocEntry.setHoverFont(var12);
  77.          }
  78.  
  79.          Color var13 = var11.getColor();
  80.          if (var13 != null) {
  81.             TocEntry.setHoverColor(var13);
  82.          }
  83.  
  84.          TocEntry.setHoverUnderline(var11.isUnderline());
  85.       }
  86.  
  87.       var2.getIconImage(1);
  88.       TocEntry.SetObserver(this.m_list);
  89.       TocEntry.setIconImage(1, var2.getIconImage(1));
  90.       TocEntry.setIconImage(2, var2.getIconImage(2));
  91.       TocEntry.setIconImage(3, var2.getIconImage(3));
  92.       TocEntry.setIconImage(4, var2.getIconImage(4));
  93.       TocEntry.setIconImage(5, var2.getIconImage(5));
  94.       TocEntry.setIconImage(6, var2.getIconImage(6));
  95.       TocEntry.setIconImage(7, var2.getIconImage(7));
  96.       TocEntry.setIconImage(8, var2.getIconImage(8));
  97.       TocEntry.setActiveColor(((ViewSkin)var2).getActiveColor());
  98.       ((Container)this).setLayout(new BorderLayout());
  99.       ((Container)this).add("Center", this.m_list);
  100.    }
  101.  
  102.    private void updateTocRootPath(Project var1, Toc var2) {
  103.       String var3 = var2.getRootTocPath();
  104.       URL var4 = ((Consumer)var1).getURL();
  105.       Enumeration var5 = var2.getRemoteProjPaths();
  106.  
  107.       while(var5.hasMoreElements()) {
  108.          String var6 = (String)var5.nextElement();
  109.          URL var7 = null;
  110.  
  111.          try {
  112.             var7 = URLFileHandler.makeURL(var4, var6, (String)null);
  113.             var7 = URLFileHandler.makeURL(var7, Project.getFileName(), (String)null);
  114.          } catch (MalformedURLException var13) {
  115.          }
  116.  
  117.          if (var7 != null) {
  118.             Enumeration var8 = this.m_vProjects.elements();
  119.  
  120.             while(var8.hasMoreElements()) {
  121.                Project var9 = (Project)var8.nextElement();
  122.                URL var10 = ((Consumer)var9).getURL();
  123.                if (var10.equals(var7)) {
  124.                   Toc var11 = var9.getToc();
  125.                   if (var11.getRootTocPath() == null) {
  126.                      String var12 = var2.getProjTocPath(var6);
  127.                      if (var12 != null) {
  128.                         if (var3 != null) {
  129.                            var12 = var3 + var12;
  130.                         }
  131.  
  132.                         var11.setRootTocPath(var12);
  133.                      }
  134.                   }
  135.                   break;
  136.                }
  137.             }
  138.          }
  139.       }
  140.  
  141.    }
  142.  
  143.    public void loadTocInfo() {
  144.       try {
  145.          if (this.m_vProjects != null) {
  146.             Toc var1 = ((Project)this.m_vProjects.elementAt(0)).getToc();
  147.             var1.setRootTocPath("/");
  148.             Enumeration var2 = this.m_vProjects.elements();
  149.  
  150.             while(var2.hasMoreElements()) {
  151.                Object var3 = var2.nextElement();
  152.                if (var3 instanceof Project) {
  153.                   Toc var4 = ((Project)var3).getToc();
  154.                   if (var4 != null) {
  155.                      ((Consumer)var4).process();
  156.                      this.updateTocRootPath((Project)var3, var4);
  157.                      this.m_vToc.addElement(var4);
  158.                   }
  159.                }
  160.             }
  161.  
  162.             return;
  163.          }
  164.       } catch (Exception var5) {
  165.          ((Throwable)var5).printStackTrace();
  166.       }
  167.  
  168.    }
  169.  
  170.    public Dimension getPreferredSize() {
  171.       return ((Component)this).getParent().getSize();
  172.    }
  173. }
  174.