home *** CD-ROM | disk | FTP | other *** search
- import java.awt.BorderLayout;
- import java.awt.Button;
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Container;
- import java.awt.Dimension;
- import java.awt.Event;
- import java.awt.Font;
- import java.awt.Graphics;
- import java.awt.Image;
- import java.awt.List;
- import java.awt.Panel;
- import java.awt.TextField;
- import java.net.URL;
- import java.util.Vector;
-
- class IndexPanel extends Panel {
- private HHCtrl m_applet;
- private DialogLayout m_Layout;
- private boolean m_fInitialized;
- private Dimension m_Size;
- private ElementList m_list;
- private Color m_backColor;
- private Image m_bgImage;
- private Font m_font;
- private Color m_foreColor;
- TextField txtUser;
- List lstIndex;
- Button btnDisplay;
- String m_targetFrame;
- private boolean m_isMatched;
- private int m_numMatched;
- private int m_lastLength;
-
- private void matchSeeAlso(String var1) {
- for(int var2 = 0; var2 < this.lstIndex.countItems(); ++var2) {
- if (var1.equalsIgnoreCase(((Element)this.m_list.elementAt(var2)).m_text)) {
- this.lstIndex.select(var2);
- this.lstIndex.makeVisible(var2);
- this.lstIndex.requestFocus();
- }
- }
-
- }
-
- public void setBackgroundImage(Image var1) {
- this.m_bgImage = var1;
- }
-
- boolean isInitialized() {
- return this.m_fInitialized;
- }
-
- public boolean loadFromHHC(URL var1) {
- ElementList var4 = new ElementList(this.m_applet);
- Element var2 = new Element(this.m_applet.getString("idx.load.elementname"), 0, this.m_applet);
- ((Vector)var4).addElement(var2);
- this.setList(var4);
- ElementList var3 = new ElementList(this.m_applet);
- SitemapParser var5 = new SitemapParser(var1, var3, this.m_applet);
- if (var5.success()) {
- this.m_targetFrame = var5.getFrame();
- this.setList(var3);
- this.m_applet.showStatus(this.m_applet.getString("idx.load.success"));
- ((Component)this).repaint();
- this.txtUser.requestFocus();
- return true;
- } else {
- return false;
- }
- }
-
- public void setBackground(Color var1) {
- this.m_backColor = var1;
- }
-
- boolean CreateControls() {
- ((Container)this).setLayout(new BorderLayout(0, 6));
- this.txtUser = new TextField("");
- this.txtUser.setBackground(Color.white);
- this.txtUser.setEditable(true);
- this.txtUser.setFont(this.m_font);
- this.txtUser.setForeground(this.m_foreColor);
- ((Container)this).add("North", this.txtUser);
- this.lstIndex = new List(1, false);
- ((Container)this).add("Center", this.lstIndex);
- this.lstIndex.setBackground(Color.white);
- this.lstIndex.setForeground(this.m_foreColor);
- this.lstIndex.setFont(this.m_font);
- this.btnDisplay = new Button(" " + this.m_applet.getString("idx.display") + " ");
- ((Container)this).add("South", this.btnDisplay);
- ((Container)this).validate();
- this.m_fInitialized = true;
- return true;
- }
-
- public void paint(Graphics var1) {
- var1.setColor(this.m_backColor);
- var1.fillRect(0, 0, ((Component)this).size().width, ((Component)this).size().height);
- if (this.m_bgImage != null) {
- try {
- if (this.m_bgImage.getWidth(this) != -1 && this.m_bgImage.getHeight(this) != -1) {
- for(int var3 = 0; var3 < ((Component)this).size().width; var3 += this.m_bgImage.getWidth(this)) {
- var1.drawImage(this.m_bgImage, var3, 0, this.m_backColor, this);
-
- for(int var2 = 0; var2 < ((Component)this).size().height; var2 += this.m_bgImage.getHeight(this)) {
- var1.drawImage(this.m_bgImage, var3, var2, this.m_backColor, this);
- }
- }
-
- return;
- }
- } catch (Exception var4) {
- }
- }
-
- }
-
- public String getFrame() {
- return this.m_targetFrame;
- }
-
- private void setList(ElementList var1) {
- int var3 = 0;
- this.m_list = var1;
- if (this.lstIndex.countItems() > 0) {
- this.lstIndex.clear();
- }
-
- for(var3 = 0; var3 < this.m_list.size(); ++var3) {
- int var4 = 0;
- String var2 = "";
-
- for(var2 = ""; var4 < ((Element)((Vector)var1).elementAt(var3)).m_level; ++var4) {
- var2 = var2 + " ";
- }
-
- this.lstIndex.addItem(var2 + ((Element)((Vector)var1).elementAt(var3)).m_text);
- }
-
- if (var3 > 0) {
- this.lstIndex.select(0);
- }
-
- }
-
- public void setFont(Font var1, Color var2) {
- if (var1 != null && var1 instanceof Font) {
- this.m_font = var1;
- }
-
- this.m_foreColor = var2;
- }
-
- private void activateItem() {
- if (((Element)this.m_list.elementAt(this.lstIndex.getSelectedIndex())).m_url.compareTo("") == 0 && ((Element)this.m_list.elementAt(this.lstIndex.getSelectedIndex())).m_seeAlso.compareTo("") != 0) {
- if (((Element)this.m_list.elementAt(this.lstIndex.getSelectedIndex())).m_seeAlso.compareTo("") != 0) {
- this.matchSeeAlso(((Element)this.m_list.elementAt(this.lstIndex.getSelectedIndex())).m_seeAlso);
- }
-
- } else {
- Event var1 = new Event(this, 1001, this.m_list.elementAt(this.lstIndex.getSelectedIndex()));
- ((Component)this).postEvent(var1);
- }
- }
-
- public boolean handleEvent(Event var1) {
- if ((var1.target != this.btnDisplay || var1.id != 1001) && (var1.target != this.lstIndex || var1.id != 1001) && (var1.target != this.txtUser || var1.id != 1001)) {
- if (var1.target == this.lstIndex && var1.id == 701) {
- this.txtUser.setText(this.lstIndex.getSelectedItem().trim());
- this.m_isMatched = false;
- this.m_numMatched = 0;
- return true;
- } else {
- if (var1.target == this.txtUser && var1.id == 402) {
- this.matchText();
- }
-
- if (var1.target == this.lstIndex && var1.id == 402 && var1.key == 10) {
- this.activateItem();
- return true;
- } else {
- return super.handleEvent(var1);
- }
- }
- } else {
- this.activateItem();
- return true;
- }
- }
-
- IndexPanel(HHCtrl var1) {
- this.m_backColor = Color.gray;
- this.m_foreColor = Color.black;
- this.m_applet = var1;
- }
-
- private void matchText() {
- int var1;
- if (this.m_isMatched && this.txtUser.getText().length() >= this.m_numMatched) {
- var1 = this.lstIndex.getSelectedIndex();
- } else {
- var1 = 0;
- this.m_isMatched = false;
- this.m_numMatched = 0;
- }
-
- for(int var2 = this.m_numMatched; var2 < this.txtUser.getText().length(); ++var2) {
- int var3;
- for(var3 = var1; var3 < this.lstIndex.countItems(); ++var3) {
- String var4 = ((Element)this.m_list.elementAt(var3)).m_text.toUpperCase();
- String var5 = this.txtUser.getText().substring(0, var2 + 1).toUpperCase();
- if (var4.startsWith(var5) && ((Element)this.m_list.elementAt(var3)).m_level == 0) {
- var1 = var3;
- this.m_numMatched = var2 + 1;
- this.lstIndex.select(var3);
- this.lstIndex.makeVisible(var3);
- this.txtUser.requestFocus();
- this.m_isMatched = true;
- break;
- }
- }
-
- if (var3 == this.lstIndex.countItems()) {
- break;
- }
- }
-
- }
- }
-