fix NPE in taxonnode comparator
[taxeditor.git] / eu.etaxonomy.taxeditor.navigation / src / main / java / eu / etaxonomy / taxeditor / navigation / navigator / TaxonNodeNavigatorComparator.java
1 package eu.etaxonomy.taxeditor.navigation.navigator;
2
3 import java.util.Comparator;
4
5 import org.eclipse.jface.viewers.Viewer;
6 import org.eclipse.jface.viewers.ViewerComparator;
7
8 import eu.etaxonomy.cdm.model.taxon.Classification;
9 import eu.etaxonomy.cdm.model.taxon.TaxonNaturalComparator;
10 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
11
12 public class TaxonNodeNavigatorComparator extends ViewerComparator{
13
14 Comparator<TaxonNode> comparator;
15
16 public TaxonNodeNavigatorComparator(Comparator<TaxonNode> comparator){
17 super();
18 this.comparator = comparator;
19 }
20
21
22
23 @Override
24 public int compare(Viewer viewer, Object e1, Object e2){
25 if ((e1 instanceof Classification && e2 instanceof Classification) ){
26 return ((Classification)e1).getTitleCache().compareTo(((Classification)e2).getTitleCache());
27 } else{
28 if (((TaxonNode)e1).getTaxon() == null && ((TaxonNode)e2).getTaxon() == null){
29 String title1 = ((TaxonNode)e1).getClassification().getTitleCache();
30 title1 = title1 == null ? "" : title1;
31 return title1.compareTo(((TaxonNode)e2).getClassification().getTitleCache());
32 }else{
33 return comparator.compare((TaxonNode)e1, (TaxonNode)e2);
34 }
35
36 }
37 }
38 }