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