Project

General

Profile

Download (1.78 KB) Statistics
| Branch: | Tag: | Revision:
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 = ".*" + 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
}
    (1-1/1)