KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > columba > core > gui > search > HTMLResultView


1 package org.columba.core.gui.search;
2
3 import java.awt.BorderLayout JavaDoc;
4 import java.util.Iterator JavaDoc;
5 import java.util.List JavaDoc;
6
7 import javax.swing.JPanel JavaDoc;
8
9 import org.columba.core.gui.htmlviewer.HTMLViewerFactory;
10 import org.columba.core.gui.htmlviewer.api.IHTMLViewerPlugin;
11 import org.columba.core.search.api.IResultEvent;
12 import org.columba.core.search.api.IResultListener;
13 import org.columba.core.search.api.ISearchCriteria;
14 import org.columba.core.search.api.ISearchResult;
15
16 public class HTMLResultView extends JPanel JavaDoc implements IResultListener {
17
18     private IHTMLViewerPlugin viewerPlugin;
19
20     private StringBuffer JavaDoc buf;
21
22     public HTMLResultView() {
23         super();
24
25         viewerPlugin = HTMLViewerFactory.createHTMLViewer();
26
27         setLayout(new BorderLayout JavaDoc());
28
29         add(viewerPlugin.getContainer(), BorderLayout.CENTER);
30     }
31
32     public void resultArrived(IResultEvent event) {
33         List JavaDoc<ISearchResult> result = event.getSearchResults();
34
35         buf.append("<p>" + createCriteria(event.getSearchCriteria())
36                 + "</p><br>");
37
38         Iterator JavaDoc<ISearchResult> it = result.iterator();
39         while (it.hasNext()) {
40             ISearchResult r = it.next();
41             buf.append("<p>");
42             buf.append(createTitle(r));
43             buf.append("</p><p>");
44             buf.append(getDescription(r));
45             buf.append("</p><p><br></p>");
46         }
47
48         StringBuffer JavaDoc doc = new StringBuffer JavaDoc();
49         startDocument(doc);
50         doc.append(buf.toString());
51         endDocument(doc);
52
53         viewerPlugin.view(doc.toString());
54
55     }
56
57     private String JavaDoc createCriteria(ISearchCriteria r) {
58         return "Search Results for \"<font class=\"italic\">" + r.getTitle() + "</font>\":";
59     }
60
61     private String JavaDoc createTitle(ISearchResult r) {
62         return "<a HREF=\"" + r.getLocation().toString() + "\">" + r.getTitle()
63                 + "</a>";
64     }
65
66     private String JavaDoc getDescription(ISearchResult r) {
67         return "<font class=\"quoting\">" + r.getDescription() + "</font>";
68     }
69
70     public void clearSearch(IResultEvent event) {
71         buf = new StringBuffer JavaDoc();
72         viewerPlugin.view("");
73     }
74
75     private void startDocument(StringBuffer JavaDoc b) {
76         String JavaDoc css = "<style type=\"text/css\">\n"
77                 + "a { color: blue; text-decoration: underline }\n"
78                 + "font.quoting {color:#949494;} \n font.italic {font-style:italic;color:#000;} \n" + "</style>\n";
79
80         b.append("<HTML><HEAD>" + css + "</HEAD><BODY>");
81     }
82
83     private void endDocument(StringBuffer JavaDoc b) {
84         b.append("</P></BODY></HTML>");
85     }
86
87     public void reset(IResultEvent event) {
88         buf = new StringBuffer JavaDoc();
89         viewerPlugin.view("");
90     }
91
92     public void finished(IResultEvent event) {
93         // TODO Auto-generated method stub
94

95     }
96
97 }
98
Popular Tags