reintegrated redlist branch into trunk
[taxeditor.git] / eu.etaxonomy.taxeditor.editor / src / main / java / eu / etaxonomy / taxeditor / editor / view / checklist / filter / ChecklistEditorFilter.java
1 package eu.etaxonomy.taxeditor.editor.view.checklist.filter;
2
3 import org.eclipse.jface.viewers.Viewer;
4 import org.eclipse.jface.viewers.ViewerFilter;
5
6 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
7 import eu.etaxonomy.cdm.model.name.NonViralName;
8 import eu.etaxonomy.cdm.model.reference.Reference;
9 import eu.etaxonomy.cdm.model.taxon.Taxon;
10
11 public class ChecklistEditorFilter extends ViewerFilter {
12
13 private String searchString;
14
15 public void setSearchText(String s) {
16 // Search must be a substring of the existing value
17 if(s.contains("*")){
18 s=s.replace("*", "");
19 }
20 this.searchString = "(?i).*" + s + ".*";
21 }
22
23 @Override
24 public boolean select(Viewer viewer, Object parentElement, Object element) {
25 if (searchString == null || searchString.length() == 0) {
26 return true;
27 }
28 Taxon taxon = (Taxon) element;
29 NonViralName<?> nonVirlaName = HibernateProxyHelper.deproxy(taxon.getName(), NonViralName.class);
30 Reference reference = HibernateProxyHelper.deproxy(nonVirlaName.getNomenclaturalReference(), Reference.class);
31 String rank = taxon.getName().getRank().toString();
32 //TaxonName
33 if (nonVirlaName.getNameCache()!=null && nonVirlaName.getNameCache().matches(searchString)) {
34 return true;
35 }
36 //Author
37 if (nonVirlaName.getAuthorshipCache() != null && nonVirlaName.getAuthorshipCache().matches(searchString)) {
38 return true;
39 }
40 //Reference
41 if(reference != null && reference.getAbbrevTitleCache().matches(searchString)){
42 return true;
43 }
44 //Rank
45 if (rank != null && rank.matches(searchString)) {
46 return true;
47 }
48 return false;
49 }
50
51 }