home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1997 December / PCO1297.ISO / FilesBBS / FREI / JAVA3.ARJ / JAVA3.ZIP / CLASS / ClientSearch.class (.txt) next >
Encoding:
Java Class File  |  1997-11-06  |  5.7 KB  |  224 lines

  1. import java.applet.Applet;
  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.GridBagConstraints;
  8. import java.awt.GridBagLayout;
  9. import java.awt.Label;
  10. import java.awt.List;
  11. import java.awt.TextField;
  12. import java.io.InputStream;
  13. import java.net.URL;
  14.  
  15. public class ClientSearch extends Applet implements Runnable {
  16.    Thread loader;
  17.    SearchEngine engine;
  18.    SearchEngineResult[] result;
  19.    // $FF: renamed from: t1 java.awt.TextField
  20.    TextField field_0;
  21.    // $FF: renamed from: b1 java.awt.Button
  22.    Button field_1;
  23.    // $FF: renamed from: l1 java.awt.List
  24.    List field_2;
  25.    static final String rawfile = "searchR.dat";
  26.    static final String zipfile = "searchZ.dat";
  27.    static final String version = "1.0";
  28.    boolean loaded = false;
  29.  
  30.    public String getAppletInfo() {
  31.       return "Name: ClientSearch Version 1.0\r\nAutor: Gerhard Schild, 1997\r\nFuer: PC-ONLiNE";
  32.    }
  33.  
  34.    private void add(Component var1, GridBagLayout var2, GridBagConstraints var3) {
  35.       ((Container)this).add(var1);
  36.       var2.setConstraints(var1, (GridBagConstraints)var3.clone());
  37.    }
  38.  
  39.    void status(String var1) {
  40.       ((Applet)this).showStatus(var1 + " - ClientSearch Version " + "1.0" + " - die Suchmaschine der PCONLiNE");
  41.    }
  42.  
  43.    void load(boolean var1) {
  44.       String var2 = var1 ? "searchZ.dat" : "searchR.dat";
  45.  
  46.       try {
  47.          URL var3 = new URL(((Applet)this).getDocumentBase(), var2);
  48.          this.status("Lade " + var3.getFile());
  49.          InputStream var4 = var3.openStream();
  50.          if (var1) {
  51.             this.engine.loadZIP(var4);
  52.          } else {
  53.             this.engine.load(var4);
  54.          }
  55.  
  56.          this.loaded = true;
  57.       } catch (Exception var5) {
  58.          System.err.println("Exception: " + ((Throwable)var5).getMessage());
  59.       }
  60.    }
  61.  
  62.    public void run() {
  63.       boolean var1 = true;
  64.  
  65.       try {
  66.          Class.forName("java.util.zip.InflaterInputStream");
  67.       } catch (Exception var2) {
  68.          var1 = false;
  69.       }
  70.  
  71.       this.load(var1);
  72.       if (!this.loaded && var1) {
  73.          this.load(false);
  74.       }
  75.  
  76.       if (this.loaded) {
  77.          this.status("Suchmaschine bereit (" + this.engine.size() + " Eintr├ñge)");
  78.          this.field_1.enable();
  79.       } else {
  80.          this.status("Suchdaten konnten nicht geladen werden");
  81.       }
  82.    }
  83.  
  84.    Color getColor(String var1) {
  85.       String var2 = ((Applet)this).getParameter(var1);
  86.       return var2 == null ? null : new Color(Integer.valueOf(var2, 16));
  87.    }
  88.  
  89.    public void init() {
  90.       Color var1 = this.getColor("bgcolor");
  91.       Color var2 = this.getColor("fgcolor");
  92.       if (var1 != null) {
  93.          ((Component)this).setBackground(var1);
  94.       }
  95.  
  96.       if (var2 != null) {
  97.          ((Component)this).setForeground(var2);
  98.       }
  99.  
  100.       GridBagConstraints var3 = new GridBagConstraints();
  101.       GridBagLayout var4 = new GridBagLayout();
  102.       ((Container)this).setLayout(var4);
  103.       var3.gridx = -1;
  104.       var3.gridy = 0;
  105.       var3.gridwidth = 1;
  106.       var3.gridheight = 1;
  107.       var3.weightx = (double)0.0F;
  108.       var3.fill = 1;
  109.       this.add(new Label("Suchbegriff:", 0), var4, var3);
  110.       var3.weightx = (double)1.0F;
  111.       this.add(this.field_0 = new TextField(""), var4, var3);
  112.       var3.weightx = (double)0.0F;
  113.       this.add(this.field_1 = new Button("Suchen"), var4, var3);
  114.       var3.gridx = 0;
  115.       var3.gridy = 1;
  116.       var3.gridwidth = 3;
  117.       var3.weighty = (double)1.0F;
  118.       this.add(this.field_2 = new List(), var4, var3);
  119.       this.field_0.requestFocus();
  120.       if (var1 != null) {
  121.          this.field_2.setBackground(var1);
  122.       }
  123.  
  124.       if (var2 != null) {
  125.          this.field_2.setForeground(var2);
  126.       }
  127.  
  128.       this.engine = new SearchEngine();
  129.       this.field_1.disable();
  130.    }
  131.  
  132.    public void start() {
  133.       if (this.loader == null) {
  134.          this.loader = new Thread(this);
  135.          this.loader.start();
  136.       }
  137.  
  138.    }
  139.  
  140.    public boolean action(Event var1, Object var2) {
  141.       if (var1.target == this.field_1) {
  142.          this.search();
  143.          return true;
  144.       } else if (var1.target == this.field_0) {
  145.          if (this.field_1.isEnabled()) {
  146.             this.search();
  147.          }
  148.  
  149.          return true;
  150.       } else if (var1.target == this.field_2) {
  151.          this.method_0();
  152.          return true;
  153.       } else {
  154.          return false;
  155.       }
  156.    }
  157.  
  158.    public boolean keyDown(Event var1, int var2) {
  159.       if (var1.target != this.field_2 || var2 != 13 && var2 != 10) {
  160.          return false;
  161.       } else {
  162.          this.method_0();
  163.          return true;
  164.       }
  165.    }
  166.  
  167.    // $FF: renamed from: go () void
  168.    void method_0() {
  169.       if (this.field_2.getSelectedIndex() >= 0) {
  170.          String var1 = ((Applet)this).getParameter("base");
  171.          if (var1 == null) {
  172.             var1 = "";
  173.          }
  174.  
  175.          String var2 = this.result[this.field_2.getSelectedIndex()].document;
  176.          URL var3 = null;
  177.  
  178.          try {
  179.             var3 = new URL(new URL(var1), var2);
  180.          } catch (Exception var6) {
  181.          }
  182.  
  183.          if (var3 == null) {
  184.             try {
  185.                var3 = new URL(((Applet)this).getDocumentBase(), var1 + var2);
  186.             } catch (Exception var5) {
  187.             }
  188.          }
  189.  
  190.          if (var3 == null) {
  191.             try {
  192.                var3 = new URL(var1 + var2);
  193.             } catch (Exception var4) {
  194.             }
  195.          }
  196.  
  197.          if (var3 == null) {
  198.             this.status("Ungueltige Verzweigung (" + var1 + "," + var2 + ")");
  199.          } else {
  200.             this.status("Verzweige zu " + var3.toString());
  201.             ((Applet)this).getAppletContext().showDocument(var3);
  202.          }
  203.       }
  204.    }
  205.  
  206.    void search() {
  207.       this.status("Suche...");
  208.       this.field_1.disable();
  209.       this.result = this.engine.lookup(this.field_0.getText().toUpperCase());
  210.       this.status("Treffer: " + this.result.length);
  211.       this.field_2.clear();
  212.       if (this.result.length > 0) {
  213.          for(int var1 = 0; var1 < this.result.length; ++var1) {
  214.             this.field_2.addItem(this.result[var1].getString());
  215.          }
  216.  
  217.          this.field_2.select(0);
  218.          this.field_2.requestFocus();
  219.       }
  220.  
  221.       this.field_1.enable();
  222.    }
  223. }
  224.