home *** CD-ROM | disk | FTP | other *** search
- package XMLConsumer;
-
- import hhapplet.BsscFontFixPatch;
- import hhapplet.IActionSink;
- import hhapplet.URLFileHandler;
- import java.awt.Color;
- import java.awt.Font;
- import java.awt.FontMetrics;
- import java.awt.Graphics;
- import java.awt.Image;
- import java.awt.image.ImageObserver;
- import java.net.MalformedURLException;
- import java.net.URL;
- import java.util.Enumeration;
- import java.util.Vector;
-
- public class IdxEntry implements IEntry {
- public static final int IDX_NODE = 1;
- public static final int IDX_KEY = 2;
- public static final int IDX_SUBKEY = 3;
- private int m_nNext;
- private int m_nPrev;
- private String m_name;
- private Vector m_topics;
- private int m_nType;
- private int m_nLevel;
- private boolean m_bSelect;
- private boolean m_bHighLight;
- private IdxData m_IdxData;
- private String m_target;
- private static SecondaryDialog m_dialog = null;
- private static Color GREEN = new Color(0, 127, 0);
- private static final int IDX_INDENT = 10;
- private static Color m_activeColor;
- private static Color m_hoverColor;
- private static int m_indent;
- private static Font m_normalFont;
- private static Font m_hoverFont;
- private static Color m_normalColor;
- private static boolean m_normalUnderline;
- private static boolean m_hoverUnderline;
-
- public static SecondaryDialog getDialog(IActionSink var0, URL var1, String var2, Vector var3) {
- if (m_dialog != null) {
- m_dialog.closeDialog();
- m_dialog = null;
- }
-
- m_dialog = new SecondaryDialog(var0, var1, var2, var3);
- return m_dialog;
- }
-
- public int getPrevSpan() {
- return this.m_nPrev;
- }
-
- public void setTarget(String var1) {
- this.m_target = var1;
- }
-
- public static void setHoverUnderline(boolean var0) {
- m_hoverUnderline = var0;
- }
-
- public boolean isMainEntry() {
- return this.m_nType == 2;
- }
-
- public static void setNormalColor(Color var0) {
- m_normalColor = var0;
- }
-
- public static void setHoverFont(Font var0) {
- if (var0.getSize() != m_normalFont.getSize()) {
- m_hoverFont = new Font(var0.getFamily(), var0.getStyle(), m_normalFont.getSize());
- } else {
- m_hoverFont = var0;
- }
- }
-
- public IdxEntry(String var1, int var2, int var3, int var4, IdxData var5) {
- this.m_name = var1;
- this.m_nPrev = var2;
- this.m_nNext = 0;
- this.m_nType = var3;
- this.m_nLevel = var4;
- this.m_bHighLight = false;
- this.m_bSelect = false;
- this.m_IdxData = var5;
- this.m_target = null;
- }
-
- public Enumeration getTopics() {
- return this.m_topics != null ? this.m_topics.elements() : null;
- }
-
- public void select(boolean var1) {
- this.m_bSelect = var1;
- }
-
- public void addTopic(Topic var1) {
- if (this.m_topics == null) {
- this.m_topics = new Vector();
- }
-
- this.m_topics.addElement(var1);
- }
-
- public static void setNormalFont(Font var0) {
- m_normalFont = var0;
- }
-
- public static void setNormalUnderline(boolean var0) {
- m_normalUnderline = var0;
- }
-
- public static void setActiveColor(Color var0) {
- m_activeColor = var0;
- }
-
- static {
- m_activeColor = Color.gray;
- m_hoverColor = GREEN;
- m_indent = 10;
- m_normalFont = new Font(BsscFontFixPatch.GetFontName(), 0, BsscFontFixPatch.GetFontSize());
- m_hoverFont = new Font(BsscFontFixPatch.GetFontName(), 0, BsscFontFixPatch.GetFontSize());
- m_normalColor = Color.black;
- m_normalUnderline = false;
- m_hoverUnderline = true;
- }
-
- public String getName() {
- return this.m_name;
- }
-
- public void highLight(boolean var1) {
- this.m_bHighLight = var1;
- }
-
- public void action(IActionSink var1) {
- if (this.m_topics != null) {
- if (this.m_topics.size() == 1) {
- Topic var7 = (Topic)this.m_topics.elementAt(0);
-
- try {
- URL var3 = URLFileHandler.makeURL(this.m_IdxData.getProjURL(), var7.getURL(), (String)null);
- String var4 = var3.toString();
- if (var4.indexOf("file:/\\\\") == 0) {
- var4 = "file://" + var4.substring(8);
- var3 = new URL(var4);
- }
-
- Vector var5 = new Vector();
- var5.addElement(var3.toString());
- var5.addElement(this.m_target);
- var1.accept(var5);
- return;
- } catch (MalformedURLException var6) {
- ((Throwable)var6).printStackTrace();
- return;
- }
- }
-
- SecondaryDialog var2 = getDialog(var1, this.m_IdxData.getProjURL(), this.m_target, this.m_topics);
- var2.showTopic();
- var2.getList().requestFocus();
- }
-
- }
-
- public int getType() {
- return this.m_nType;
- }
-
- public int getNextSpan() {
- return this.m_nNext;
- }
-
- public void display(Graphics var1, int var2, int var3, Color var4, Image var5) {
- FontMetrics var6 = var1.getFontMetrics(m_normalFont);
- FontMetrics var7 = var1.getFontMetrics(m_hoverFont);
- int var8 = var6.stringWidth(this.m_name + " ");
- int var9 = var7.stringWidth(this.m_name + " ");
- var8 = var8 > var9 ? var8 : var9;
- int var10 = var6.getAscent();
- int var11 = var6.getLeading();
- int var12 = var7.getAscent();
- int var13 = var7.getLeading();
- switch (this.m_nType) {
- case 1:
- Color var18 = var1.getColor();
- if (this.m_bSelect) {
- var1.setColor(m_activeColor);
- var1.fill3DRect(0, var2 * var3, var8, var3, true);
- } else if (var5 != null) {
- var1.drawImage(var5, 0, var2 * var3, var8, var2 * var3 + var3, 0, var2 * var3, var8, var2 * var3 + var3, (ImageObserver)null);
- } else {
- var1.setColor(var4);
- var1.fillRect(0, var2 * var3, var8, var3);
- }
-
- var1.setColor(var18);
- Font var19 = var1.getFont();
- Font var16 = new Font(var19.getName(), var19.getStyle() | 1, var19.getSize());
- var1.setFont(var16);
- var1.drawString(this.m_name, 0, var2 * var3 + var10 + var11);
- var1.setFont(var19);
- return;
- case 2:
- case 3:
- Color var14 = var1.getColor();
- if (this.m_bSelect) {
- var1.setColor(m_activeColor);
- var1.fill3DRect(m_indent * this.m_nLevel, var2 * var3, var8, var3, true);
- } else if (var5 != null) {
- var1.drawImage(var5, m_indent * this.m_nLevel, var2 * var3, m_indent * this.m_nLevel + var8, var2 * var3 + var3, m_indent * this.m_nLevel, var2 * var3, m_indent * this.m_nLevel + var8, var2 * var3 + var3, (ImageObserver)null);
- } else {
- var1.setColor(var4);
- var1.fillRect(m_indent * this.m_nLevel, var2 * var3, var8, var3);
- }
-
- var1.setColor(var14);
- Font var15 = var1.getFont();
- if (this.m_bHighLight) {
- var1.setColor(m_hoverColor);
- var1.setFont(m_hoverFont);
- var1.drawString(this.m_name, m_indent * this.m_nLevel, var2 * var3 + var12 + var13);
- if (m_hoverUnderline) {
- var1.drawLine(m_indent * this.m_nLevel, (var2 + 1) * var3 - 1, m_indent * this.m_nLevel + var8 - 1, (var2 + 1) * var3 - 1);
- }
-
- var1.setFont(var15);
- var1.setColor(var14);
- return;
- } else {
- var1.setColor(m_normalColor);
- var1.setFont(m_normalFont);
- var1.drawString(this.m_name, m_indent * this.m_nLevel, var2 * var3 + var10 + var11);
- if (m_normalUnderline) {
- var1.drawLine(m_indent * this.m_nLevel, (var2 + 1) * var3 - 1, m_indent * this.m_nLevel + var8 - 1, (var2 + 1) * var3 - 1);
- }
-
- var1.setFont(var15);
- var1.setColor(var14);
- }
- default:
- }
- }
-
- public static void setIndent(int var0) {
- m_indent = var0;
- }
-
- public void setNextSpan(int var1) {
- this.m_nNext = var1;
- }
-
- public int getWidth(Graphics var1) {
- FontMetrics var2 = var1.getFontMetrics(m_normalFont);
- int var3 = var2.stringWidth(this.m_name + " ");
- return m_indent * this.m_nLevel + var3 + 1;
- }
-
- public static void setHoverColor(Color var0) {
- m_hoverColor = var0;
- }
- }
-