Project

General

Profile

Download (1.77 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.TaxonName;
8
import eu.etaxonomy.cdm.model.taxon.Taxon;
9

    
10
public class ChecklistEditorFilter extends ViewerFilter {
11

    
12
    private String searchString;
13

    
14
    public void setSearchText(String s) {
15
        // Search must be a substring of the existing value
16
        if(s.contains("*")){ //$NON-NLS-1$
17
            s=s.replace("*", ".*"); //$NON-NLS-1$ //$NON-NLS-2$
18
        }
19
        this.searchString = ".*" + s + ".*"; //$NON-NLS-1$ //$NON-NLS-2$
20
    }
21

    
22
    @Override
23
    public boolean select(Viewer viewer, Object parentElement, Object element) {
24
        if (searchString == null || searchString.length() == 0) {
25
            return true;
26
        }
27
        Taxon taxon = (Taxon) element;
28
        TaxonName nonVirlaName = HibernateProxyHelper.deproxy(taxon.getName());
29
      //  Reference reference = HibernateProxyHelper.deproxy(nonVirlaName.getNomenclaturalReference(), Reference.class);
30
      //  String rank = taxon.getName().getRank().toString();
31
        //TaxonName
32
        if (nonVirlaName.getNameCache()!=null && nonVirlaName.getNameCache().matches(searchString)) {
33
            return true;
34
        }
35
        //Author
36
//        if (nonVirlaName.getAuthorshipCache() != null && nonVirlaName.getAuthorshipCache().matches(searchString)) {
37
//            return true;
38
//        }
39
//        //Reference
40
//        if(reference != null && reference.getAbbrevTitleCache().matches(searchString)){
41
//            return true;
42
//        }
43
//        //Rank
44
//        if (rank != null && rank.matches(searchString)) {
45
//            return true;
46
//        }
47
        return false;
48
    }
49

    
50
}
    (1-1/1)