Sun Java System Portal Server 7.1 Developer's Guide

Define the SearchDemo Class

The class SearchDemo is an applet, so it extends the class Applet. SearchDemo defines init() and main() methods which allow it to run as an applet or as a stand alone (command line) program.


Example 29–1 SearchDemo


/**
* Applet/application for simple query interface. Can be used as an
* example for those who want to create their own java interface.
* This example demonstrates search only.  Browse, determining
* the schema of the search server and obtaining the taxonomy
* of the search server will be demonstrated in other examples.
*/

public class SearchDemo extends Applet {
    /** Run as an applet. */
    public void init() {
        String rdm = getParameter("RDMServer");
        SimpleSearch ss = new SimpleSearch(rdm);
        SearchPanel sp = new SearchPanel(ss);
        setLayout(new FlowLayout(FlowLayout.CENTER));
        add(sp);
    }
    /** Run as an application. */
    public static void main(String argv[]) throws Exception {
        int args = argv.length;
        String SearchOutputFile = null;
        if (args != 1 && args != 2 && args != 3) {
            System.out.println("args: RDMServer [query]
            [search_output_file_name]");
            return;
        }
        String rdm = argv[0];  // rdm search server, eg,
        // http://portal.siroe.com:2222/ps/search
        SimpleSearch ss = new SimpleSearch(rdm);
        if (args == 3) {
            --args;
            ss.setSearchfile(argv[2]); // dump raw Search results to this file
        }
        if (args == 1) {
            // run from a search box
            Frame f = new Frame();
            SearchPanel sp = new SearchPanel(ss);
            f.add(sp);
            f.pack();
            f.show();
        }
        else {
            // run from command line
            String query = argv[1];
            ss.doSearch(query);
        }
    }
}

There is a helper class called SearchPanel which handle the applet GUI. It sets up a search panel with a text box to enter a query and a submit button to run the query. See the source file for more details.