From: Frederik D. <fd...@us...> - 2006-06-25 16:42:06
|
Update of /cvsroot/columba/columba/mail/src/main/java/org/columba/mail/search In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv32677/mail/src/main/java/org/columba/mail/search Modified Files: AbstractMailSearchProvider.java SubjectContainsSearchProvider.java BodyContainsSearchProvider.java FromContainsSearchProvider.java Added Files: SizeSmallerThanSearchProvider.java SizeGreaterThanSearchProvider.java Log Message: [intern]dynamic menu support added Index: AbstractMailSearchProvider.java =================================================================== RCS file: /cvsroot/columba/columba/mail/src/main/java/org/columba/mail/search/AbstractMailSearchProvider.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** AbstractMailSearchProvider.java 25 Jun 2006 12:17:31 -0000 1.2 --- AbstractMailSearchProvider.java 25 Jun 2006 16:42:02 -0000 1.3 *************** *** 3,6 **** --- 3,7 ---- import java.net.URI; import java.text.DateFormat; + import java.text.MessageFormat; import java.text.SimpleDateFormat; import java.util.Date; *************** *** 9,12 **** --- 10,14 ---- import java.util.List; import java.util.Locale; + import java.util.ResourceBundle; import java.util.TimeZone; import java.util.Vector; *************** *** 20,27 **** --- 22,31 ---- import org.columba.core.filter.FilterFactory; import org.columba.core.resourceloader.ImageLoader; + import org.columba.core.search.SearchCriteria; import org.columba.core.search.api.ISearchCriteria; import org.columba.core.search.api.ISearchProvider; import org.columba.core.search.api.ISearchResult; import org.columba.mail.folder.IMailbox; + import org.columba.mail.resourceloader.IconKeys; import org.columba.mail.resourceloader.MailImageLoader; import org.columba.ristretto.message.Address; *************** *** 39,44 **** --- 43,53 ---- private int totalResultCount = 0; + private ResourceBundle bundle; + public AbstractMailSearchProvider() { super(); + + bundle = ResourceBundle.getBundle("org.columba.mail.i18n.search"); + } *************** *** 47,51 **** public abstract String getNamespace(); ! public abstract ISearchCriteria getCriteria(String searchTerm); protected abstract FilterCriteria createFilterCriteria(String searchTerm); --- 56,70 ---- public abstract String getNamespace(); ! /** ! * @see org.columba.core.search.api.ISearchProvider#getCriteria(java.lang.String) ! */ ! public ISearchCriteria getCriteria(String searchTerm) { ! String title = MessageFormat.format(bundle.getString(getName() ! + "_title"), new Object[] { searchTerm }); ! String description = MessageFormat.format(bundle.getString(getName() ! + "_description"), new Object[] { searchTerm }); ! return new SearchCriteria(title, description, MailImageLoader ! .getSmallIcon(IconKeys.MESSAGE_READ)); ! } protected abstract FilterCriteria createFilterCriteria(String searchTerm); *************** *** 71,76 **** Filter filter = FilterFactory.createEmptyFilter(); FilterCriteria criteria = createFilterCriteria(searchTerm); if (criteria == null) ! throw new IllegalArgumentException("criteria == null"); filter.getFilterRule().add(criteria); --- 90,96 ---- Filter filter = FilterFactory.createEmptyFilter(); FilterCriteria criteria = createFilterCriteria(searchTerm); + // return empty result, in case the criteria doesn't match the search term if (criteria == null) ! return result; filter.getFilterRule().add(criteria); --- NEW FILE: SizeGreaterThanSearchProvider.java --- package org.columba.mail.search; import org.columba.core.filter.FilterCriteria; import org.columba.core.search.api.ISearchCriteria; import org.columba.mail.filter.MailFilterFactory; public class SizeGreaterThanSearchProvider extends AbstractMailSearchProvider { public SizeGreaterThanSearchProvider() { super(); } @Override public String getName() { return "size_greater_than"; } @Override public String getNamespace() { return "org.columba.mail"; } /** * @see org.columba.core.search.api.ISearchProvider#getCriteria(java.lang.String) */ public ISearchCriteria getCriteria(String searchTerm) { if ( searchTerm.length() == 0) return super.getCriteria(searchTerm); try { int searchTermInt = Integer.parseInt(searchTerm); return super.getCriteria(searchTerm); } catch (NumberFormatException e) { } return null; } @Override protected FilterCriteria createFilterCriteria(String searchTerm) { try { int searchTermInt = Integer.parseInt(searchTerm); FilterCriteria criteria = MailFilterFactory .createSizeIsBigger(searchTermInt); return criteria; } catch (NumberFormatException e) { } return null; } } --- NEW FILE: SizeSmallerThanSearchProvider.java --- package org.columba.mail.search; import org.columba.core.filter.FilterCriteria; import org.columba.core.search.api.ISearchCriteria; import org.columba.mail.filter.MailFilterFactory; public class SizeSmallerThanSearchProvider extends AbstractMailSearchProvider{ public SizeSmallerThanSearchProvider() { super(); } @Override public String getName() { return "size_smaller_than"; } @Override public String getNamespace() { return "org.columba.mail"; } /** * @see org.columba.core.search.api.ISearchProvider#getCriteria(java.lang.String) */ public ISearchCriteria getCriteria(String searchTerm) { if (searchTerm.length() == 0) return super.getCriteria(searchTerm); try { int searchTermInt = Integer.parseInt(searchTerm); return super.getCriteria(searchTerm); } catch (NumberFormatException e) { } return null; } @Override protected FilterCriteria createFilterCriteria(String searchTerm) { try { int searchTermInt = Integer.parseInt(searchTerm); FilterCriteria criteria = MailFilterFactory .createSizeIsSmaller(searchTermInt); return criteria; } catch (NumberFormatException e) { } return null; } } Index: SubjectContainsSearchProvider.java =================================================================== RCS file: /cvsroot/columba/columba/mail/src/main/java/org/columba/mail/search/SubjectContainsSearchProvider.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** SubjectContainsSearchProvider.java 25 Jun 2006 12:17:31 -0000 1.2 --- SubjectContainsSearchProvider.java 25 Jun 2006 16:42:02 -0000 1.3 *************** *** 5,10 **** import org.columba.core.filter.FilterCriteria; - import org.columba.core.search.SearchCriteria; - import org.columba.core.search.api.ISearchCriteria; import org.columba.core.search.api.ISearchProvider; import org.columba.mail.filter.MailFilterFactory; --- 5,8 ---- *************** *** 35,45 **** } - /** - * @see org.columba.core.search.api.ISearchProvider#getCriteria(java.lang.String) - */ - public ISearchCriteria getCriteria(String searchTerm) { - return new SearchCriteria("Subject contains " + searchTerm, - "Subject contains " + searchTerm); - } @Override --- 33,36 ---- Index: BodyContainsSearchProvider.java =================================================================== RCS file: /cvsroot/columba/columba/mail/src/main/java/org/columba/mail/search/BodyContainsSearchProvider.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** BodyContainsSearchProvider.java 25 Jun 2006 12:17:31 -0000 1.3 --- BodyContainsSearchProvider.java 25 Jun 2006 16:42:02 -0000 1.4 *************** *** 2,7 **** import org.columba.core.filter.FilterCriteria; - import org.columba.core.search.SearchCriteria; - import org.columba.core.search.api.ISearchCriteria; import org.columba.core.search.api.ISearchProvider; import org.columba.mail.filter.MailFilterFactory; --- 2,5 ---- *************** *** 10,15 **** --- 8,16 ---- implements ISearchProvider { + + public BodyContainsSearchProvider() { super(); + } *************** *** 28,38 **** } - /** - * @see org.columba.core.search.api.ISearchProvider#getCriteria(java.lang.String) - */ - public ISearchCriteria getCriteria(String searchTerm) { - return new SearchCriteria("Body contains " + searchTerm, - "Body contains " + searchTerm); - } @Override --- 29,32 ---- Index: FromContainsSearchProvider.java =================================================================== RCS file: /cvsroot/columba/columba/mail/src/main/java/org/columba/mail/search/FromContainsSearchProvider.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** FromContainsSearchProvider.java 25 Jun 2006 12:17:31 -0000 1.3 --- FromContainsSearchProvider.java 25 Jun 2006 16:42:02 -0000 1.4 *************** *** 2,7 **** import org.columba.core.filter.FilterCriteria; - import org.columba.core.search.SearchCriteria; - import org.columba.core.search.api.ISearchCriteria; import org.columba.core.search.api.ISearchProvider; import org.columba.mail.filter.MailFilterFactory; --- 2,5 ---- *************** *** 28,38 **** } ! /** ! * @see org.columba.core.search.api.ISearchProvider#getCriteria(java.lang.String) ! */ ! public ISearchCriteria getCriteria(String searchTerm) { ! return new SearchCriteria("From contains " + searchTerm, ! "From contains " + searchTerm); ! } @Override --- 26,30 ---- } ! @Override |