home *** CD-ROM | disk | FTP | other *** search
- package XMLConsumer;
-
- import hhapplet.BsscFontFixPatch;
- import hhapplet.IActionSink;
- import hhapplet.ImageCache;
- 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.Vector;
- import treeview.ImageSet;
- import treeview.SiblingChildTree;
- import treeview.TreeViewImageSet;
-
- public class TocEntry extends SiblingChildTree implements IEntry {
- public static final int TOC_BOOK = 1;
- public static final int TOC_ITEM = 2;
- public static final int TOC_CHUNK = 3;
- public static final int TOC_PROJECT = 4;
- public static final int TOC_REMOTEITEM = 5;
- private static final int TOC_INDENT = 16;
- private String m_name;
- private String m_url;
- private String m_ref;
- private int m_nType;
- private int m_nLevel;
- private boolean m_bSelect;
- private boolean m_bHighLight;
- private TocData m_TocData;
- private boolean m_bOpen;
- private int m_nPosOffset;
- private int m_nIndex;
- private ITocEntryContainer m_Container;
- private String m_strTarget;
- private String m_strIcon;
- private Image m_openIcon;
- private Image m_closeIcon;
- public static final int BOOKOPEN = 1;
- public static final int BOOKCLOSE = 2;
- public static final int ITEM = 3;
- public static final int REMOTE = 4;
- public static final int NEWBOOKOPEN = 5;
- public static final int NEWBOOKCLOSE = 6;
- public static final int NEWITEM = 7;
- public static final int NEWREMOTE = 8;
- private static Image m_iconBookClose;
- private static Image m_iconBookOpen;
- private static Image m_iconItem;
- private static Image m_iconRemote;
- private static Image m_iconNewBookClose;
- private static Image m_iconNewBookOpen;
- private static Image m_iconNewItem;
- private static Image m_iconNewRemote;
- private static Color GREEN = new Color(0, 127, 0);
- private static Color m_activeColor;
- private static int m_indent;
- private static Font m_normalFont;
- private static Font m_hoverFont;
- private static Color m_normalColor;
- private static Color m_hoverColor;
- private static boolean m_normalUnderline;
- private static boolean m_hoverUnderline;
- private static ImageObserver m_observer;
-
- public void setContainer(ITocEntryContainer var1) {
- this.m_Container = var1;
- }
-
- public ITocEntryContainer getContainer() {
- return this.m_Container;
- }
-
- public static boolean hasImage(Image var0) {
- return m_iconBookClose == var0 || m_iconBookOpen == var0 || m_iconItem == var0 || m_iconRemote == var0 || m_iconNewBookClose == var0 || m_iconNewBookOpen == var0 || m_iconNewItem == var0 || m_iconNewRemote == var0;
- }
-
- public TocEntry getDirectParent() {
- return (TocEntry)((SiblingChildTree)this).getParent();
- }
-
- public void updatePosOffset(int var1) {
- this.m_nPosOffset += var1;
- }
-
- public boolean isMainEntry() {
- return true;
- }
-
- public TocEntry getPrevSibling() {
- return (TocEntry)((SiblingChildTree)this).getSiblingLeft();
- }
-
- public void select(boolean var1) {
- this.m_bSelect = var1;
- }
-
- public static void setNormalUnderline(boolean var0) {
- m_normalUnderline = var0;
- }
-
- public static void setActiveColor(Color var0) {
- m_activeColor = var0;
- }
-
- public String getName() {
- return this.m_name;
- }
-
- public void highLight(boolean var1) {
- this.m_bHighLight = var1;
- }
-
- public static void setIconImage(int var0, Image var1) {
- switch (var0) {
- case 1:
- m_iconBookOpen = var1;
- return;
- case 2:
- m_iconBookClose = var1;
- return;
- case 3:
- m_iconItem = var1;
- return;
- case 4:
- m_iconRemote = var1;
- return;
- case 5:
- m_iconNewBookOpen = var1;
- return;
- case 6:
- m_iconNewBookClose = var1;
- return;
- case 7:
- m_iconNewItem = var1;
- return;
- case 8:
- m_iconNewRemote = var1;
- return;
- default:
- }
- }
-
- private static Image getImage(int var0) {
- TreeViewImageSet var1 = TreeViewImageSet.getInstance();
- return var1 != null ? ((ImageSet)var1).getImage(var0) : null;
- }
-
- public int getType() {
- return this.m_nType;
- }
-
- private Image getREmoteItemIcon() {
- if (this.m_closeIcon == null) {
- if (this.m_strIcon != null) {
- String var1 = this.getIcon(this.m_strIcon, 0);
- if (var1 != null) {
- ImageCache var2 = ImageCache.getInstance();
- String var3 = this.getFullPath(var1);
- this.m_closeIcon = var2.GetImage(var3);
- }
- } else if (m_iconRemote != null) {
- this.m_closeIcon = m_iconRemote;
- } else {
- this.m_closeIcon = getImage(14);
- }
- }
-
- return this.m_closeIcon;
- }
-
- public int getPosOffset() {
- return this.m_nPosOffset;
- }
-
- public void setPosOffset(int var1) {
- this.m_nPosOffset = var1;
- }
-
- public int getLevel() {
- return this.m_nLevel;
- }
-
- public int getWidth(Graphics var1) {
- FontMetrics var2 = var1.getFontMetrics(m_normalFont);
- int var3 = var2.stringWidth(this.m_name + " ");
- Image var4 = null;
- switch (this.m_nType) {
- case 1:
- case 3:
- case 4:
- if (this.m_bOpen) {
- var4 = this.getBookOpenIcon();
- } else {
- var4 = this.getBookCloseIcon();
- }
- break;
- case 2:
- var4 = this.getItemIcon();
- break;
- case 5:
- var4 = this.getREmoteItemIcon();
- }
-
- int var5 = 0;
- if (var4 != null) {
- var5 = var4.getWidth(m_observer) + 1;
- }
-
- return m_indent * this.m_nLevel + var3 + 1 + var5;
- }
-
- private Image getBookOpenIcon() {
- if (this.m_openIcon == null) {
- if (this.m_strIcon != null) {
- String var1 = this.getIcon(this.m_strIcon, 1);
- if (var1 != null) {
- ImageCache var2 = ImageCache.getInstance();
- String var3 = this.getFullPath(var1);
- this.m_closeIcon = var2.GetImage(var3);
- }
- } else if (m_iconBookOpen != null) {
- this.m_openIcon = m_iconBookOpen;
- } else {
- this.m_openIcon = getImage(1);
- }
- }
-
- return this.m_openIcon;
- }
-
- private Image getItemIcon() {
- if (this.m_closeIcon == null) {
- if (this.m_strIcon != null) {
- String var1 = this.getIcon(this.m_strIcon, 0);
- if (var1 != null) {
- ImageCache var2 = ImageCache.getInstance();
- String var3 = this.getFullPath(var1);
- this.m_closeIcon = var2.GetImage(var3);
- }
- } else if (m_iconItem != null) {
- this.m_closeIcon = m_iconItem;
- } else {
- this.m_closeIcon = getImage(8);
- }
- }
-
- return this.m_closeIcon;
- }
-
- public int getPrevSpan() {
- TocEntry var1 = (TocEntry)((SiblingChildTree)this).getSiblingLeft();
- if (var1 != null) {
- int var2 = var1.getIndex();
- return this.m_nIndex - var2 - 1;
- } else {
- return -1;
- }
- }
-
- public void setTarget(String var1) {
- this.m_strTarget = var1;
- }
-
- public TocEntry getNextSibling() {
- return (TocEntry)((SiblingChildTree)this).getSibling();
- }
-
- public static void setHoverUnderline(boolean var0) {
- m_hoverUnderline = 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 static void setNormalColor(Color var0) {
- m_normalColor = var0;
- }
-
- public TocEntry(String var1, String var2, String var3, int var4, int var5, int var6, TocData var7) {
- this.m_name = var1;
- this.m_url = var2;
- this.m_nIndex = var4;
- this.m_nType = var5;
- this.m_nLevel = var6;
- this.m_bHighLight = false;
- this.m_bSelect = false;
- this.m_TocData = var7;
- this.m_bOpen = false;
- this.m_nPosOffset = 0;
- this.m_Container = null;
- this.m_ref = var3;
- }
-
- public boolean isOpen() {
- return this.m_bOpen;
- }
-
- public TocEntry getFirstChild() {
- return (TocEntry)((SiblingChildTree)this).getChild();
- }
-
- public static void SetObserver(ImageObserver var0) {
- m_observer = var0;
- }
-
- public void setIcon(String var1) {
- this.m_strIcon = var1;
- }
-
- private String getIcon(String var1, int var2) {
- int var3;
- for(var3 = var1.indexOf(59); var2-- > 0 && var3 != -1; var3 = var1.indexOf(59)) {
- var1 = var1.substring(var3 + 1);
- }
-
- if (var2 < 0) {
- return var3 != -1 ? var1.substring(0, var3) : var1;
- } else {
- return null;
- }
- }
-
- public static void setNormalFont(Font var0) {
- m_normalFont = var0;
- }
-
- public TocEntry getNextOut() {
- for(TocEntry var1 = this; var1 != null; var1 = var1.getDirectParent()) {
- TocEntry var2 = var1.getNextSibling();
- if (var2 != null) {
- return var2;
- }
- }
-
- return null;
- }
-
- private String getFullPath(String var1) {
- String var2 = null;
-
- try {
- URL var3 = URLFileHandler.makeURL(this.m_TocData.getProjURL(), var1, (String)null);
- var2 = var3.toString();
- } catch (MalformedURLException var4) {
- ((Throwable)var4).printStackTrace();
- }
-
- return var2;
- }
-
- static {
- m_activeColor = Color.gray;
- m_indent = 16;
- m_normalFont = new Font(BsscFontFixPatch.GetFontName(), 0, BsscFontFixPatch.GetFontSize());
- m_hoverFont = new Font(BsscFontFixPatch.GetFontName(), 0, BsscFontFixPatch.GetFontSize());
- m_normalColor = Color.black;
- m_hoverColor = GREEN;
- m_normalUnderline = false;
- m_hoverUnderline = true;
- m_observer = null;
- }
-
- public int getIndex() {
- return this.m_nIndex;
- }
-
- public void toggle() {
- this.m_bOpen = !this.m_bOpen;
- }
-
- public void action(IActionSink var1) {
- Vector var2 = new Vector();
- var2.addElement(this);
- var2.addElement(this.m_url);
- var2.addElement(this.m_ref);
- var2.addElement(this.m_TocData);
- var2.addElement(this.m_strTarget);
- var1.accept(var2);
- }
-
- public int getNextSpan() {
- TocEntry var1 = (TocEntry)((SiblingChildTree)this).getSibling();
- if (var1 != null) {
- int var2 = var1.getIndex();
- return var2 - this.m_nIndex - 1;
- } else {
- return -1;
- }
- }
-
- 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();
- Image var14 = null;
- switch (this.m_nType) {
- case 1:
- case 3:
- case 4:
- if (this.m_bOpen) {
- var14 = this.getBookOpenIcon();
- } else {
- var14 = this.getBookCloseIcon();
- }
- break;
- case 2:
- var14 = this.getItemIcon();
- break;
- case 5:
- var14 = this.getREmoteItemIcon();
- }
-
- Color var15 = var1.getColor();
- Font var16 = var1.getFont();
- int var17 = 0;
- if (var14 != null) {
- var17 = var14.getWidth(m_observer) + 1;
- }
-
- var1.drawImage(var14, m_indent * this.m_nLevel, var2 * var3, m_observer);
- if (this.m_bSelect) {
- var1.setColor(m_activeColor);
- var1.fill3DRect(m_indent * this.m_nLevel + var17, var2 * var3, var8, var3, true);
- var1.setColor(var15);
- } else if (var5 != null) {
- var1.drawImage(var5, m_indent * this.m_nLevel + var17, var2 * var3, m_indent * this.m_nLevel + var17 + var8, var2 * var3 + var3, m_indent * this.m_nLevel + var17, var2 * var3, m_indent * this.m_nLevel + var17 + var8, var2 * var3 + var3, (ImageObserver)null);
- } else {
- var1.setColor(var4);
- var1.fillRect(m_indent * this.m_nLevel + var17, var2 * var3, var8, var3);
- var1.setColor(var15);
- }
-
- if (this.m_bHighLight) {
- var1.setFont(m_hoverFont);
- var1.setColor(m_hoverColor);
- var1.drawString(this.m_name, m_indent * this.m_nLevel + var17, var2 * var3 + var12 + var13);
- if (m_hoverUnderline) {
- var1.drawLine(m_indent * this.m_nLevel + var17, (var2 + 1) * var3 - 1, m_indent * this.m_nLevel + var8 - 1 + var17, (var2 + 1) * var3 - 1);
- }
-
- var1.setFont(var16);
- var1.setColor(var15);
- } else {
- var1.setFont(m_normalFont);
- var1.setColor(m_normalColor);
- var1.drawString(this.m_name, m_indent * this.m_nLevel + var17, var2 * var3 + var10 + var11);
- if (m_normalUnderline) {
- var1.drawLine(m_indent * this.m_nLevel + var17, (var2 + 1) * var3 - 1, m_indent * this.m_nLevel + var8 - 1 + var17, (var2 + 1) * var3 - 1);
- }
-
- var1.setFont(var16);
- var1.setColor(var15);
- }
- }
-
- public static void setIndent(int var0) {
- m_indent = var0;
- }
-
- public static void setHoverColor(Color var0) {
- m_hoverColor = var0;
- }
-
- private Image getBookCloseIcon() {
- if (this.m_closeIcon == null) {
- if (this.m_strIcon != null) {
- String var1 = this.getIcon(this.m_strIcon, 0);
- if (var1 != null) {
- ImageCache var2 = ImageCache.getInstance();
- String var3 = this.getFullPath(var1);
- this.m_closeIcon = var2.GetImage(var3);
- }
- } else if (m_iconBookClose != null) {
- this.m_closeIcon = m_iconBookClose;
- } else {
- this.m_closeIcon = getImage(0);
- }
- }
-
- return this.m_closeIcon;
- }
- }
-