home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 2003 March / DPPCPRO0303.ISO / Netfusion / data1.cab / Components / SiteMapper / search_panel.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-12-10  |  2.8 KB  |  78 lines

  1. import java.awt.BorderLayout;
  2. import java.awt.Button;
  3. import java.awt.Color;
  4. import java.awt.Component;
  5. import java.awt.Container;
  6. import java.awt.Event;
  7. import java.awt.FlowLayout;
  8. import java.awt.List;
  9. import java.awt.Panel;
  10. import java.awt.TextField;
  11. import java.util.Vector;
  12.  
  13. public class search_panel extends Panel {
  14.    List search_list_box;
  15.    Button search_button;
  16.    TextField search_field;
  17.    Vector web_list;
  18.    Vector current_list;
  19.    Sitemapper parent_applet;
  20.    Vector temp_list;
  21.  
  22.    void search_for_text() {
  23.       String search_text = this.search_field.getText().toLowerCase();
  24.       this.search_list_box.delItems(0, this.search_list_box.countItems() - 1);
  25.       this.current_list.removeAllElements();
  26.  
  27.       for(int i = 0; i < this.web_list.size(); ++i) {
  28.          tree_entry entry = (tree_entry)this.web_list.elementAt(i);
  29.          if (entry.publish && entry.get_name().toLowerCase().indexOf(search_text) != -1) {
  30.             this.search_list_box.addItem(entry.get_name());
  31.             this.current_list.addElement(entry);
  32.          }
  33.       }
  34.  
  35.    }
  36.  
  37.    public boolean handleEvent(Event evt) {
  38.       switch (evt.id) {
  39.          case 701:
  40.             int index = this.search_list_box.getSelectedIndex();
  41.             tree_entry entry = (tree_entry)this.current_list.elementAt(index);
  42.             this.parent_applet.show_url(entry.get_url());
  43.             return true;
  44.          case 1001:
  45.             if (evt.target instanceof Button) {
  46.                this.search_for_text();
  47.                return true;
  48.             }
  49.          case 401:
  50.             if (evt.key == 10) {
  51.                this.search_for_text();
  52.                return true;
  53.             }
  54.  
  55.             return false;
  56.          default:
  57.             return false;
  58.       }
  59.    }
  60.  
  61.    search_panel(Vector web_list, Sitemapper parent_applet) {
  62.       this.parent_applet = parent_applet;
  63.       this.web_list = (Vector)web_list.clone();
  64.       this.current_list = new Vector();
  65.       ((Container)this).setLayout(new BorderLayout());
  66.       ((Container)this).add("Center", this.search_list_box = new List());
  67.       Panel input_panel = new Panel();
  68.       ((Container)input_panel).setLayout(new BorderLayout());
  69.       Panel p = new Panel();
  70.       ((Container)input_panel).add("West", p);
  71.       ((Container)p).setLayout(new FlowLayout());
  72.       ((Component)input_panel).setBackground(Color.lightGray);
  73.       ((Container)p).add(this.search_field = new TextField(35));
  74.       ((Container)p).add(this.search_button = new Button("Search"));
  75.       ((Container)this).add("South", input_panel);
  76.    }
  77. }
  78.