KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > columba > calendar > context > CalendarContextProvider


1 package org.columba.calendar.context;
2
3 import java.util.Iterator JavaDoc;
4 import java.util.List JavaDoc;
5 import java.util.ResourceBundle JavaDoc;
6 import java.util.Vector JavaDoc;
7
8 import javax.swing.ImageIcon JavaDoc;
9 import javax.swing.JComponent JavaDoc;
10
11 import org.columba.api.gui.frame.IFrameMediator;
12 import org.columba.calendar.search.CalendarSearchProvider;
13 import org.columba.calendar.ui.search.SearchResultList;
14 import org.columba.core.context.api.IContextProvider;
15 import org.columba.core.context.base.api.IStructureValue;
16 import org.columba.core.context.semantic.api.ISemanticContext;
17 import org.columba.core.resourceloader.IconKeys;
18 import org.columba.core.resourceloader.ImageLoader;
19 import org.columba.core.search.api.ISearchResult;
20
21 public class CalendarContextProvider implements IContextProvider {
22     private ResourceBundle JavaDoc bundle;
23
24     private List JavaDoc<ISearchResult> result;
25
26     private SearchResultList resultList;
27
28     private CalendarSearchProvider searchProvider;
29
30     public CalendarContextProvider() {
31         resultList = new SearchResultList();
32
33         bundle = ResourceBundle.getBundle("org.columba.calendar.i18n.search");
34
35         result = new Vector JavaDoc<ISearchResult>();
36
37         searchProvider = new CalendarSearchProvider();
38     }
39
40     public void clear() {
41         resultList.clear();
42         result.clear();
43     }
44
45     public String JavaDoc getTechnicalName() {
46         return "calendar_list";
47     }
48
49     public String JavaDoc getName() {
50         return bundle.getString("provider_related_title");
51     }
52
53     public String JavaDoc getDescription() {
54         return bundle.getString("provider_related_title");
55     }
56
57     public ImageIcon JavaDoc getIcon() {
58         return ImageLoader.getSmallIcon(IconKeys.CALENDAR);
59     }
60
61     public int getTotalResultCount() {
62         return searchProvider.getTotalResultCount();
63     }
64
65     public JComponent JavaDoc getView() {
66         return resultList;
67     }
68
69     public boolean isEnabledShowMoreLink() {
70         return false;
71     }
72
73     public void search(ISemanticContext context, int startIndex, int resultCount) {
74         IStructureValue value = context.getValue();
75         if (value == null)
76             return;
77
78         Iterator JavaDoc<IStructureValue> it = value.getChildIterator(
79                 ISemanticContext.CONTEXT_NODE_MESSAGE,
80                 ISemanticContext.CONTEXT_NAMESPACE_CORE);
81
82         if (it.hasNext()) {
83             // we only use the first message
84
IStructureValue message = it.next();
85
86             // retrieve subject
87
String JavaDoc subject = message.getString(
88                     ISemanticContext.CONTEXT_ATTR_SUBJECT,
89                     ISemanticContext.CONTEXT_NAMESPACE_CORE);
90
91             if (subject != null) {
92                 List JavaDoc<ISearchResult> temp = searchProvider.query(subject,
93                         CalendarSearchProvider.CRITERIA_SUMMARY_CONTAINS,
94                         false, 0, 5);
95                 result.addAll(temp);
96             }
97         }
98
99     }
100
101     public void showMoreResults(IFrameMediator mediator) {
102         throw new IllegalArgumentException JavaDoc("not implemented yet");
103     }
104
105     public void showResult() {
106         resultList.addAll(result);
107     }
108 }
109
Popular Tags