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

  1. package XMLConsumer;
  2.  
  3. import hhapplet.BsscFontFixPatch;
  4. import hhapplet.IActionSink;
  5. import hhapplet.URLFileHandler;
  6. import java.awt.Color;
  7. import java.awt.Font;
  8. import java.awt.FontMetrics;
  9. import java.awt.Graphics;
  10. import java.awt.Image;
  11. import java.awt.image.ImageObserver;
  12. import java.net.MalformedURLException;
  13. import java.net.URL;
  14. import java.util.Vector;
  15.  
  16. public class FtsEntry extends Topic implements IEntry, Cloneable {
  17.    private static Color GREEN = new Color(0, 127, 0);
  18.    private static final int FTS_INDENT = 2;
  19.    private FtsTData m_FtsData;
  20.    private boolean m_bSelect;
  21.    private boolean m_bHighLight;
  22.    private static int m_indent = 2;
  23.    private static Color m_activeColor;
  24.    private static Font m_normalFont;
  25.    private static Font m_hoverFont;
  26.    private static Color m_normalColor;
  27.    private static Color m_hoverColor;
  28.    private static boolean m_normalUnderline;
  29.    private static boolean m_hoverUnderline;
  30.  
  31.    public boolean equalTo(FtsEntry var1) {
  32.       return ((Topic)this).getName().equals(((Topic)var1).getName()) && var1.getFullURL().equals(this.getFullURL());
  33.    }
  34.  
  35.    public int getPrevSpan() {
  36.       return 0;
  37.    }
  38.  
  39.    public static void setHoverUnderline(boolean var0) {
  40.       m_hoverUnderline = var0;
  41.    }
  42.  
  43.    public boolean isMainEntry() {
  44.       return true;
  45.    }
  46.  
  47.    public static void setNormalColor(Color var0) {
  48.       m_normalColor = var0;
  49.    }
  50.  
  51.    public static void setHoverFont(Font var0) {
  52.       if (var0.getSize() != m_normalFont.getSize()) {
  53.          m_hoverFont = new Font(var0.getFamily(), var0.getStyle(), m_normalFont.getSize());
  54.       } else {
  55.          m_hoverFont = var0;
  56.       }
  57.    }
  58.  
  59.    public FtsEntry(String var1, String var2, FtsTData var3) {
  60.       super(var1, var2);
  61.       this.m_FtsData = var3;
  62.    }
  63.  
  64.    private URL getFullURL() {
  65.       URL var1 = null;
  66.  
  67.       try {
  68.          var1 = URLFileHandler.makeURL(this.m_FtsData.getProjURL(), ((Topic)this).getURL(), (String)null);
  69.       } catch (MalformedURLException var3) {
  70.          ((Throwable)var3).printStackTrace();
  71.       }
  72.  
  73.       return var1;
  74.    }
  75.  
  76.    public void select(boolean var1) {
  77.       this.m_bSelect = var1;
  78.    }
  79.  
  80.    public void copyFrom(FtsEntry var1) {
  81.       super.copyFrom(var1);
  82.       this.m_FtsData = var1.m_FtsData;
  83.    }
  84.  
  85.    public static void setNormalFont(Font var0) {
  86.       m_normalFont = var0;
  87.    }
  88.  
  89.    public static void setNormalUnderline(boolean var0) {
  90.       m_normalUnderline = var0;
  91.    }
  92.  
  93.    public static void setActiveColor(Color var0) {
  94.       m_activeColor = var0;
  95.    }
  96.  
  97.    static {
  98.       m_activeColor = Color.gray;
  99.       m_normalFont = new Font(BsscFontFixPatch.GetFontName(), 0, BsscFontFixPatch.GetFontSize());
  100.       m_hoverFont = new Font(BsscFontFixPatch.GetFontName(), 0, BsscFontFixPatch.GetFontSize());
  101.       m_normalColor = Color.black;
  102.       m_hoverColor = GREEN;
  103.       m_normalUnderline = false;
  104.       m_hoverUnderline = true;
  105.    }
  106.  
  107.    public void highLight(boolean var1) {
  108.       this.m_bHighLight = var1;
  109.    }
  110.  
  111.    public void action(IActionSink var1) {
  112.       URL var2 = this.getFullURL();
  113.       Vector var3 = new Vector();
  114.       var3.addElement(var2);
  115.       var1.accept(var3);
  116.    }
  117.  
  118.    public int getNextSpan() {
  119.       return 0;
  120.    }
  121.  
  122.    public void display(Graphics var1, int var2, int var3, Color var4, Image var5) {
  123.       Color var6 = var1.getColor();
  124.       FontMetrics var7 = var1.getFontMetrics(m_normalFont);
  125.       FontMetrics var8 = var1.getFontMetrics(m_hoverFont);
  126.       int var9 = var7.stringWidth(((Topic)this).getName() + " ");
  127.       int var10 = var8.stringWidth(((Topic)this).getName() + " ");
  128.       var9 = var9 > var10 ? var9 : var10;
  129.       int var11 = var7.getAscent();
  130.       int var12 = var7.getLeading();
  131.       int var13 = var8.getAscent();
  132.       int var14 = var8.getLeading();
  133.       if (this.m_bSelect) {
  134.          var1.setColor(m_activeColor);
  135.          var1.fill3DRect(m_indent, var2 * var3, var9, var3, true);
  136.       } else if (var5 != null) {
  137.          var1.drawImage(var5, m_indent, var2 * var3, 2 + var9, var2 * var3 + var3, m_indent, var2 * var3, m_indent + var9, var2 * var3 + var3, (ImageObserver)null);
  138.       } else {
  139.          var1.setColor(var4);
  140.          var1.fillRect(m_indent, var2 * var3, var9, var3);
  141.       }
  142.  
  143.       var1.setColor(var6);
  144.       Font var15 = var1.getFont();
  145.       if (this.m_bHighLight) {
  146.          var1.setColor(m_hoverColor);
  147.          var1.setFont(m_hoverFont);
  148.          var1.drawString(((Topic)this).getName(), m_indent, var2 * var3 + var13 + var14);
  149.          if (m_hoverUnderline) {
  150.             var1.drawLine(m_indent, (var2 + 1) * var3 - 1, m_indent + var9 - 1, (var2 + 1) * var3 - 1);
  151.          }
  152.  
  153.          var1.setColor(var6);
  154.          var1.setFont(var15);
  155.       } else {
  156.          var1.setColor(m_normalColor);
  157.          var1.setFont(m_normalFont);
  158.          var1.drawString(((Topic)this).getName(), m_indent, var2 * var3 + var11 + var12);
  159.          if (m_normalUnderline) {
  160.             var1.drawLine(m_indent, (var2 + 1) * var3 - 1, m_indent + var9 - 1, (var2 + 1) * var3 - 1);
  161.          }
  162.  
  163.          var1.setColor(var6);
  164.          var1.setFont(var15);
  165.       }
  166.    }
  167.  
  168.    public static void setIndent(int var0) {
  169.       m_indent = var0;
  170.    }
  171.  
  172.    public int getWidth(Graphics var1) {
  173.       FontMetrics var2 = var1.getFontMetrics(m_normalFont);
  174.       int var3 = var2.stringWidth(((Topic)this).getName() + " ");
  175.       return m_indent + var3 + 1;
  176.    }
  177.  
  178.    public FtsEntry cloneEntry() {
  179.       FtsEntry var1 = null;
  180.  
  181.       try {
  182.          var1 = (FtsEntry)this.clone();
  183.       } catch (CloneNotSupportedException var3) {
  184.          ((Throwable)var3).printStackTrace();
  185.       }
  186.  
  187.       return var1;
  188.    }
  189.  
  190.    public static void setHoverColor(Color var0) {
  191.       m_hoverColor = var0;
  192.    }
  193. }
  194.