1 package org.columba.calendar.context; 2 3 import java.util.Iterator ; 4 import java.util.List ; 5 import java.util.ResourceBundle ; 6 import java.util.Vector ; 7 8 import javax.swing.ImageIcon ; 9 import javax.swing.JComponent ; 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 bundle; 23 24 private List <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 <ISearchResult>(); 36 37 searchProvider = new CalendarSearchProvider(); 38 } 39 40 public void clear() { 41 resultList.clear(); 42 result.clear(); 43 } 44 45 public String getTechnicalName() { 46 return "calendar_list"; 47 } 48 49 public String getName() { 50 return bundle.getString("provider_related_title"); 51 } 52 53 public String getDescription() { 54 return bundle.getString("provider_related_title"); 55 } 56 57 public ImageIcon getIcon() { 58 return ImageLoader.getSmallIcon(IconKeys.CALENDAR); 59 } 60 61 public int getTotalResultCount() { 62 return searchProvider.getTotalResultCount(); 63 } 64 65 public JComponent 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 <IStructureValue> it = value.getChildIterator( 79 ISemanticContext.CONTEXT_NODE_MESSAGE, 80 ISemanticContext.CONTEXT_NAMESPACE_CORE); 81 82 if (it.hasNext()) { 83 IStructureValue message = it.next(); 85 86 String subject = message.getString( 88 ISemanticContext.CONTEXT_ATTR_SUBJECT, 89 ISemanticContext.CONTEXT_NAMESPACE_CORE); 90 91 if (subject != null) { 92 List <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 ("not implemented yet"); 103 } 104 105 public void showResult() { 106 resultList.addAll(result); 107 } 108 } 109
| Popular Tags
|