home *** CD-ROM | disk | FTP | other *** search
- package hhapplet;
-
- import java.applet.Applet;
- import java.util.Vector;
- import sitemap.SiteMapParserOutput;
-
- public class SiteMapParserToIndex implements SiteMapParserOutput {
- protected Applet m_applet;
- protected IndexPane m_ipIndex;
- protected int indent = 0;
- protected int real_indent = 0;
- protected boolean done_a_node = false;
- protected int param_no = -1;
- protected String m_strName;
- protected Vector secondary_entries;
- protected boolean m_bInGlobal = true;
- protected char m_chCurrentStart = ' ';
- protected int m_nItemsFound = 0;
- protected String default_frame_name;
-
- public void end() {
- this.m_ipIndex.getEditBox().enable(true);
- this.m_ipIndex.ShowList();
- this.m_ipIndex.getEditBox().requestFocus();
- this.m_ipIndex.ResetCursor();
- this.m_applet.showStatus(ResourceLib.GetRes("Done"));
- }
-
- public SiteMapParserToIndex(Applet var1, BsscHelpRedirector var2) {
- this.m_applet = var1;
- this.m_ipIndex = new IndexPane(this.m_applet, var2);
- }
-
- public void object_start() {
- this.done_a_node = true;
- this.m_bInGlobal = false;
- this.param_no = -1;
- this.secondary_entries = new Vector();
- }
-
- public void throwMessage(String var1) {
- this.m_applet.showStatus(var1);
- }
-
- public void indent(int var1) {
- if (var1 == 1) {
- ++this.real_indent;
- if (this.done_a_node) {
- ++this.indent;
- }
- } else if (var1 == -1) {
- this.real_indent += -1;
- this.indent = this.real_indent;
- }
-
- this.done_a_node = false;
- }
-
- private String indent_string() {
- String var1 = "";
-
- for(int var2 = 0; var2 < this.indent; ++var2) {
- var1 = var1 + " ";
- }
-
- return var1;
- }
-
- public IndexPane getIndex() {
- return this.m_ipIndex;
- }
-
- public void start() {
- this.m_ipIndex.getEditBox().enable(false);
- this.m_ipIndex.HideList();
- this.m_ipIndex.SetWaitCursor();
- }
-
- public boolean matchType(String var1) {
- return var1 != null && var1.toUpperCase().endsWith(".HHK");
- }
-
- public void putImage(String var1, long var2, Object var4) {
- }
-
- public void object_end() {
- this.m_ipIndex.add(this.indent_string() + this.m_strName, this.secondary_entries);
- if (this.m_strName != null && this.m_strName.length() != 0) {
- char var1 = Character.toUpperCase(this.m_strName.charAt(0));
- if (this.indent == 0 && var1 != this.m_chCurrentStart) {
- this.m_chCurrentStart = var1;
- String var2 = ResourceLib.GetRes("LoadingIndex") + " [";
- var2 = var2 + var1;
- var2 = var2 + "]";
- this.m_applet.showStatus(var2);
- }
-
- ++this.m_nItemsFound;
- if (this.m_nItemsFound % 50 == 0) {
- this.m_ipIndex.paintAll(this.m_ipIndex.getGraphics());
- }
-
- }
- }
-
- public IndexSecondaryEntry getLatestEntry() {
- int var1 = this.param_no == 0 ? 0 : this.param_no - 1;
- if (this.secondary_entries.size() < var1 + 1) {
- this.secondary_entries.setSize(var1 + 1);
- this.secondary_entries.setElementAt(new IndexSecondaryEntry(), var1);
- }
-
- return (IndexSecondaryEntry)this.secondary_entries.elementAt(var1);
- }
-
- public void param(String var1, String var2) {
- char var3 = Character.toUpperCase(var1.charAt(0));
- if (this.m_bInGlobal) {
- if (var3 == 'F' && var1.equalsIgnoreCase("FrameName")) {
- this.default_frame_name = var2;
- return;
- }
- } else {
- switch (var3) {
- case 'F':
- if (var1.equalsIgnoreCase("Frame")) {
- this.getLatestEntry().frame = var2;
- return;
- }
- break;
- case 'L':
- if (var1.equalsIgnoreCase("Local")) {
- this.getLatestEntry().local = var2;
- return;
- }
- break;
- case 'N':
- if (var1.equalsIgnoreCase("Name")) {
- ++this.param_no;
- var2 = this.fixSpecialCharacters(var2);
- this.getLatestEntry().name = var2;
- if (this.getLatestEntry().frame == null) {
- this.getLatestEntry().frame = this.default_frame_name;
- }
-
- if (this.param_no == 0) {
- this.m_strName = var2;
- return;
- }
- }
- break;
- case 'S':
- if (var1.equalsIgnoreCase("See Also")) {
- this.getLatestEntry().see_also = var2;
- return;
- }
- break;
- case 'U':
- if (var1.equalsIgnoreCase("URL")) {
- this.getLatestEntry().url = var2;
- return;
- }
- }
- }
-
- }
-
- public String fixSpecialCharacters(String var1) {
- if (var1 == null) {
- return null;
- } else {
- int var2 = var1.indexOf(38);
- if (var2 < 0) {
- return var1;
- } else {
- String var3 = "";
-
- while(var2 > -1 && var2 < var1.length() - 2) {
- var3 = var3 + var1.substring(0, var2);
- String var4 = var1.substring(var2);
- int var5 = var4.indexOf(59);
- if (var5 < 0) {
- var3 = var3 + var4;
- break;
- }
-
- if (var5 < var4.length() - 1) {
- var1 = var4.substring(var5 + 1);
- } else {
- var1 = "";
- }
-
- var4 = var4.substring(1, var5);
- switch (Character.toUpperCase(var4.charAt(0))) {
- case 'A':
- if (var4.equalsIgnoreCase("amp")) {
- var4 = "&";
- }
- break;
- case 'C':
- if (var4.equalsIgnoreCase("copy")) {
- var4 = "(c)";
- }
- break;
- case 'G':
- if (var4.equalsIgnoreCase("gt")) {
- var4 = ">";
- }
- break;
- case 'L':
- if (var4.equalsIgnoreCase("lt")) {
- var4 = "<";
- }
- break;
- case 'N':
- if (var4.equalsIgnoreCase("nbsp")) {
- var4 = " ";
- }
- break;
- case 'Q':
- if (var4.equalsIgnoreCase("quot")) {
- var4 = "\"";
- }
- break;
- case 'R':
- if (var4.equalsIgnoreCase("reg")) {
- var4 = "(R)";
- }
- }
-
- var3 = var3 + var4;
- var2 = var1.indexOf(38);
- if (var2 < 0) {
- var3 = var3 + var1;
- }
- }
-
- return var3;
- }
- }
- }
- }
-