home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2000 January / maximum-cd-2000-01.iso / Dreamweaver2 / data1.cab / Program_Files / Help / search.jar / SearchFrame.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-09-29  |  5.6 KB  |  184 lines

  1. import java.awt.BorderLayout;
  2. import java.awt.Button;
  3. import java.awt.Checkbox;
  4. import java.awt.Color;
  5. import java.awt.Component;
  6. import java.awt.Container;
  7. import java.awt.Event;
  8. import java.awt.FlowLayout;
  9. import java.awt.Frame;
  10. import java.awt.GridLayout;
  11. import java.awt.Label;
  12. import java.awt.List;
  13. import java.awt.Panel;
  14. import java.awt.TextField;
  15. import java.text.MessageFormat;
  16. import java.util.StringTokenizer;
  17.  
  18. class SearchFrame extends Frame {
  19.    // $FF: renamed from: sa SearchApplet9ech
  20.    SearchApplet9ech field_0;
  21.    Button list_topics;
  22.    Button cancel;
  23.    Button display;
  24.    Checkbox case_sensitive;
  25.    List doc_list = new List(15, false);
  26.    TextField input_tf = new TextField(40);
  27.    Label status = new Label();
  28.  
  29.    SearchFrame(SearchApplet9ech var1) {
  30.       this.field_0 = var1;
  31.       ((Frame)this).setTitle(this.field_0.getMessage("searchappletframe.search.frame_title"));
  32.       ((Frame)this).setResizable(false);
  33.       ((Component)this).setBackground(Color.lightGray);
  34.       ((Container)this).setLayout(new BorderLayout(0, 0));
  35.       this.list_topics = new Button(this.field_0.getMessage("searchappletframe.list_topics.button"));
  36.       this.cancel = new Button(this.field_0.getMessage("searchappletframe.cancel.button"));
  37.       this.display = new Button(this.field_0.getMessage("searchappletframe.display.button"));
  38.       this.case_sensitive = new Checkbox(this.field_0.getMessage("searchappletframe.case_sensitive.checkbox"));
  39.       this.case_sensitive.setState(true);
  40.       Panel var2 = new Panel();
  41.       ((Container)var2).setLayout(new GridLayout(4, 1));
  42.       ((Container)var2).add(new Label(this.field_0.getMessage("searchappletframe.type_in_the_keyword_to_find.label")));
  43.       ((Container)var2).add(this.input_tf);
  44.       Panel var3 = new Panel();
  45.       ((Container)var3).setLayout(new GridLayout(1, 2));
  46.       Panel var4 = new Panel();
  47.       ((Container)var4).setLayout(new FlowLayout(0));
  48.       if (!this.field_0.getEncoding().equals("SJIS")) {
  49.          ((Container)var4).add(this.case_sensitive);
  50.       }
  51.  
  52.       Panel var5 = new Panel();
  53.       ((Container)var5).setLayout(new FlowLayout(2));
  54.       ((Container)var5).add(this.list_topics);
  55.       ((Container)var3).add(var4);
  56.       ((Container)var3).add(var5);
  57.       ((Container)var2).add(var3);
  58.       ((Container)var2).add(new Label(this.field_0.getMessage("searchappletframe.select_topic_to_display.label")));
  59.       ((Container)this).add("North", var2);
  60.       this.doc_list.setBackground(Color.white);
  61.       this.updateList(" ");
  62.       ((Container)this).add("Center", this.doc_list);
  63.       Panel var6 = new Panel();
  64.       ((Container)var6).setLayout(new GridLayout(2, 1));
  65.       ((Container)var6).add(this.status);
  66.       Panel var7 = new Panel();
  67.       ((Container)var7).setLayout(new FlowLayout(2));
  68.       ((Container)var7).add(this.cancel);
  69.       ((Container)var7).add(this.display);
  70.       ((Container)var6).add(var7);
  71.       ((Container)this).add("South", var6);
  72.    }
  73.  
  74.    public void clearList() {
  75.       this.doc_list.clear();
  76.    }
  77.  
  78.    public void updateList(String var1) {
  79.       this.doc_list.addItem(var1);
  80.    }
  81.  
  82.    public void setStatus(String var1) {
  83.       this.status.setText(var1);
  84.    }
  85.  
  86.    private void initiateSearch() {
  87.       if (!this.input_tf.getText().trim().equals("")) {
  88.          String var2 = this.input_tf.getText();
  89.          StringTokenizer var3 = new StringTokenizer(var2);
  90.  
  91.          String var4;
  92.          for(var4 = ""; var3.hasMoreTokens(); var4 = var4 + " " + var3.nextToken()) {
  93.          }
  94.  
  95.          var4 = var4.trim();
  96.          String[] var5 = new String[]{var4};
  97.          this.field_0.showStatus(MessageFormat.format(this.field_0.getMessage("searchappletframe.searching_for"), var5));
  98.          StringTokenizer var6 = new StringTokenizer(var4, "+");
  99.          int var7 = var6.countTokens();
  100.          String[] var1 = new String[var7];
  101.  
  102.          for(int var8 = 0; var8 < var7; ++var8) {
  103.             String var9 = var6.nextToken().trim();
  104.  
  105.             try {
  106.                var1[var8] = !this.field_0.getEncoding().equals("SJIS") ? this.ASCIItoHTML(var9) : var9;
  107.             } catch (Exception var11) {
  108.                System.out.println("002 " + var11);
  109.             }
  110.  
  111.             if (!this.case_sensitive.getState()) {
  112.                var1[var8] = var1[var8].toLowerCase();
  113.             }
  114.          }
  115.  
  116.          this.field_0.search(var1, this.case_sensitive.getState());
  117.       }
  118.  
  119.    }
  120.  
  121.    private String ASCIItoHTML(String var1) {
  122.       String var2 = "";
  123.       char[] var3 = var1.toCharArray();
  124.  
  125.       for(int var4 = 0; var4 < var3.length; ++var4) {
  126.          if (var3[var4] > 127) {
  127.             var2 = var2 + "&#" + var3[var4] + ";";
  128.          } else {
  129.             var2 = var2 + String.valueOf(var3[var4]);
  130.          }
  131.       }
  132.  
  133.       if (this.field_0.getDebugStatus()) {
  134.          System.out.println("Converted: " + var1 + "\t-->\t" + var2);
  135.       }
  136.  
  137.       return var2;
  138.    }
  139.  
  140.    public String HTMLtoASCII(String var1) {
  141.       if (var1.indexOf("&#") > -1) {
  142.          String var2 = var1.substring(0, var1.indexOf("&#"));
  143.          String var3 = var1.substring(var1.indexOf(";", var2.length()) + 1);
  144.          int var4 = Integer.parseInt(var1.substring(var2.length() + 2, var1.length() - var3.length() - 1));
  145.          return var2 + (char)var4 + this.HTMLtoASCII(var3);
  146.       } else {
  147.          return var1;
  148.       }
  149.    }
  150.  
  151.    public boolean handleEvent(Event var1) {
  152.       if (var1.id == 201) {
  153.          ((Component)this).setVisible(false);
  154.       } else if (var1.id == 1001) {
  155.          if (var1.target == this.list_topics) {
  156.             this.initiateSearch();
  157.          } else if (var1.target == this.cancel) {
  158.             this.field_0.setStopSearch(true);
  159.          } else if (var1.target == this.display) {
  160.             this.displayDoc();
  161.          } else if (var1.target == this.doc_list) {
  162.             this.displayDoc();
  163.          }
  164.       } else if (var1.id == 402 && (var1.key == 10 || var1.key == 13)) {
  165.          if (var1.target == this.input_tf) {
  166.             if (!this.field_0.getEncoding().equals("SJIS")) {
  167.                this.initiateSearch();
  168.             }
  169.          } else if (var1.target == this.doc_list) {
  170.             this.displayDoc();
  171.          }
  172.       }
  173.  
  174.       return super.handleEvent(var1);
  175.    }
  176.  
  177.    public void displayDoc() {
  178.       if (this.doc_list.getSelectedIndex() > -1 && !this.doc_list.getSelectedItem().trim().equals("")) {
  179.          this.field_0.showDoc(this.doc_list.getSelectedIndex());
  180.       }
  181.  
  182.    }
  183. }
  184.