1 | package org.columba.mail.gui.search;↵ | | 1 | package org.columba.mail.gui.search;↵
|
|
2 | import java.text.MessageFormat;↵ | | 2 | import java.text.MessageFormat;↵
|
3 | import java.util.Iterator;↵ | | 3 | import java.util.Iterator;↵
|
4 | import java.util.List;↵ | | 4 | import java.util.List;↵
|
5 | import java.util.ResourceBundle;↵ | | 5 | import java.util.ResourceBundle;↵
|
|
6 | import javax.swing.ImageIcon;↵ | | 6 | import javax.swing.ImageIcon;↵
|
7 | import javax.swing.JComponent;↵ | | 7 | import javax.swing.JComponent;↵
|
|
8 | import org.columba.core.gui.search.api.IResultPanel;↵ | | 8 | import org.columba.core.gui.search.api.IResultPanel;↵
|
9 | import org.columba.core.search.api.IResultEvent;↵ | | 9 | import org.columba.core.search.api.IResultEvent;↵
|
10 | import org.columba.core.search.api.ISearchResult;↵ | | 10 | import org.columba.core.search.api.ISearchResult;↵
|
11 | import org.columba.mail.resourceloader.IconKeys;↵ | | 11 | import org.columba.mail.resourceloader.IconKeys;↵
|
12 | import org.columba.mail.resourceloader.MailImageLoader;↵ | | 12 | import org.columba.mail.resourceloader.MailImageLoader;↵
|
|
13 | public class BasicResultPanel implements IResultPanel {↵ | | 13 | public class CriteriaResultPanel implements IResultPanel {↵
|
|
14 | private ResourceBundle bundle;↵ | | 14 | private ResourceBundle bundle;↵
|
|
15 | private String providerTechnicalName;↵ | | 15 | private String providerTechnicalName;↵
|
|
16 | private String criteriaTechnicalName;↵ | | 16 | private String criteriaTechnicalName;↵
|
|
17 | private ResultList list;↵ | | 17 | private ResultList list;↵
|
|
18 | public BasicResultPanel(String providerTechnicalName,↵ | | 18 | public CriteriaResultPanel(String providerTechnicalName,↵
|
19 | String criteriaTechnicalName) {↵ | | 19 | String criteriaTechnicalName) {↵
|
20 | super();↵ | | 20 | super();↵
|
|
21 | this.criteriaTechnicalName = criteriaTechnicalName;↵ | | 21 | this.criteriaTechnicalName = criteriaTechnicalName;↵
|
22 | this.providerTechnicalName = providerTechnicalName;↵ | | 22 | this.providerTechnicalName = providerTechnicalName;↵
|
|
23 | bundle = ResourceBundle.getBundle("org.columba.mail.i18n.search");↵ | | 23 | bundle = ResourceBundle.getBundle("org.columba.mail.i18n.search");↵
|
|
24 | list = new ResultList();↵ | | 24 | list = new ResultList();↵
|
|
25 | }↵ | | 25 | }↵
|
|
26 | public String getSearchCriteriaTechnicalName() {↵ | | 26 | public String getSearchCriteriaTechnicalName() {↵
|
27 | return criteriaTechnicalName;↵ | | 27 | return criteriaTechnicalName;↵
|
28 | }↵ | | 28 | }↵
|
|
29 | public String getProviderTechnicalName() {↵ | | 29 | public String getProviderTechnicalName() {↵
|
30 | return providerTechnicalName;↵ | | 30 | return providerTechnicalName;↵
|
31 | }↵ | | 31 | }↵
|
|
32 | public JComponent getView() {↵ | | 32 | public JComponent getView() {↵
|
33 | return list;↵ | | 33 | return list;↵
|
34 | }↵ | | 34 | }↵
|
|
35 | public ImageIcon getIcon() {↵ | | 35 | public ImageIcon getIcon() {↵
|
36 | return MailImageLoader.getSmallIcon(IconKeys.MESSAGE_READ);↵ | | 36 | return MailImageLoader.getSmallIcon(IconKeys.MESSAGE_READ);↵
|
37 | }↵ | | 37 | }↵
|
|
38 | public String getTitle(String searchTerm) {↵ | | 38 | public String getTitle(String searchTerm) {↵
|
39 | String result = MessageFormat.format(bundle↵ | | 39 | String result = MessageFormat.format(bundle↵
|
40 | .getString(criteriaTechnicalName + "_title"),↵ | | 40 | .getString(criteriaTechnicalName + "_title"),↵
|
41 | new Object[] { searchTerm });↵ | | 41 | new Object[] { searchTerm });↵
|
42 | return result;↵ | | 42 | return result;↵
|
43 | }↵ | | 43 | }↵
|
|
44 | public String getDescription(String searchTerm) {↵ | | 44 | public String getDescription(String searchTerm) {↵
|
45 | String result = MessageFormat.format(bundle↵ | | 45 | String result = MessageFormat.format(bundle↵
|
46 | .getString(criteriaTechnicalName + "_description"),↵ | | 46 | .getString(criteriaTechnicalName + "_description"),↵
|
47 | new Object[] { searchTerm });↵ | | 47 | new Object[] { searchTerm });↵
|
48 | return result;↵ | | 48 | return result;↵
|
49 | }↵ | | 49 | }↵
|
|
50 | public void resultArrived(IResultEvent event) {↵ | | 50 | public void resultArrived(IResultEvent event) {↵
|
51 | if (!event.getProviderName().equals(this.providerTechnicalName))↵ | | 51 | if (!event.getProviderName().equals(this.providerTechnicalName))↵
|
52 | return;↵ | | 52 | return;↵
|
53 | if (!event.getSearchCriteria().getTechnicalName().equals(↵ | | 53 | if (!event.getSearchCriteria().getTechnicalName().equals(↵
|
54 | this.criteriaTechnicalName))↵ | | 54 | this.criteriaTechnicalName))↵
|
55 | return;↵ | | 55 | return;↵
|
|
56 | List<ISearchResult> result = event.getSearchResults();↵ | | 56 | List<ISearchResult> result = event.getSearchResults();↵
|
|
57 | Iterator<ISearchResult> it = result.iterator();↵ | | 57 | Iterator<ISearchResult> it = result.iterator();↵
|
58 | while (it.hasNext()) {↵ | | 58 | while (it.hasNext()) {↵
|
59 | list.add(it.next());↵ | | 59 | list.add(it.next());↵
|
60 | }↵ | | 60 | }↵
|
|
61 | // setPreferredSize(list.getPreferredSize());↵ | | |
|
62 | list.revalidate();↵ | | 61 | list.revalidate();↵
|
63 | }↵ | | 62 | }↵
|
|
64 | public void clearSearch(IResultEvent event) {↵ | | 63 | public void clearSearch(IResultEvent event) {↵
|
|
65 | }↵ | | 64 | }↵
|
|
66 | public void reset(IResultEvent event) {↵ | | 65 | public void reset(IResultEvent event) {↵
|
67 | list.clear();↵ | | 66 | list.clear();↵
|
68 | }↵ | | 67 | }↵
|
|
69 | public void finished(IResultEvent event) {↵ | | 68 | public void finished(IResultEvent event) {↵
|
70 | }↵ | | 69 | }↵
|
|
71 | } | | 70 | }
|