1 package org.columba.mail.gui.search; 19 20 import java.text.MessageFormat ; 21 import java.util.Iterator ; 22 import java.util.List ; 23 import java.util.ResourceBundle ; 24 25 import javax.swing.ImageIcon ; 26 import javax.swing.JComponent ; 27 28 import org.columba.core.gui.search.api.IResultPanel; 29 import org.columba.core.search.api.IResultEvent; 30 import org.columba.core.search.api.ISearchResult; 31 import org.columba.mail.resourceloader.IconKeys; 32 import org.columba.mail.resourceloader.MailImageLoader; 33 34 public class CriteriaResultPanel implements IResultPanel { 35 36 private ResourceBundle bundle; 37 38 private String providerTechnicalName; 39 40 private String criteriaTechnicalName; 41 42 private ResultList list; 43 44 public CriteriaResultPanel(String providerTechnicalName, 45 String criteriaTechnicalName) { 46 super(); 47 48 this.criteriaTechnicalName = criteriaTechnicalName; 49 this.providerTechnicalName = providerTechnicalName; 50 51 bundle = ResourceBundle.getBundle("org.columba.mail.i18n.search"); 52 53 list = new ResultList(); 54 55 } 56 57 public String getSearchCriteriaTechnicalName() { 58 return criteriaTechnicalName; 59 } 60 61 public String getProviderTechnicalName() { 62 return providerTechnicalName; 63 } 64 65 public JComponent getView() { 66 return list; 67 } 68 69 public ImageIcon getIcon() { 70 return MailImageLoader.getSmallIcon(IconKeys.MESSAGE_READ); 71 } 72 73 public String getTitle(String searchTerm) { 74 String result = MessageFormat.format(bundle 75 .getString(criteriaTechnicalName + "_title"), 76 new Object [] { searchTerm }); 77 return result; 78 } 79 80 public String getDescription(String searchTerm) { 81 String result = MessageFormat.format(bundle 82 .getString(criteriaTechnicalName + "_description"), 83 new Object [] { searchTerm }); 84 return result; 85 } 86 87 public void resultArrived(IResultEvent event) { 88 if (!event.getProviderName().equals(this.providerTechnicalName)) 89 return; 90 if (!event.getSearchCriteria().getTechnicalName().equals( 91 this.criteriaTechnicalName)) 92 return; 93 94 List <ISearchResult> result = event.getSearchResults(); 95 96 Iterator <ISearchResult> it = result.iterator(); 97 while (it.hasNext()) { 98 list.add(it.next()); 99 } 100 101 list.revalidate(); 102 } 103 104 public void clearSearch(IResultEvent event) { 105 106 } 107 108 public void reset(IResultEvent event) { 109 list.clear(); 110 } 111 112 public void finished(IResultEvent event) { 113 } 114 115 } 116 | Popular Tags |