Revision 11a549d1
Added by Patrick Plitzner over 5 years ago
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/DescriptionTreeFormat.java | ||
---|---|---|
13 | 13 |
import java.util.List; |
14 | 14 |
|
15 | 15 |
import ca.odell.glazedlists.TreeList; |
16 |
import eu.etaxonomy.cdm.api.service.ITaxonNodeService; |
|
16 | 17 |
import eu.etaxonomy.cdm.api.service.dto.RowWrapperDTO; |
17 | 18 |
import eu.etaxonomy.cdm.model.description.DescriptiveDataSet; |
18 | 19 |
import eu.etaxonomy.cdm.model.name.Rank; |
19 | 20 |
import eu.etaxonomy.cdm.model.taxon.TaxonNode; |
21 |
import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto; |
|
22 |
import eu.etaxonomy.taxeditor.store.CdmStore; |
|
20 | 23 |
|
21 | 24 |
/** |
22 | 25 |
* The tree format defines how to build the hierarchy path for the |
... | ... | |
38 | 41 |
public void getPath(List path, Object element) { |
39 | 42 |
if(element instanceof RowWrapperDTO){ |
40 | 43 |
//TODO: check for multiple taxon nodes in multiple classifications |
41 |
TaxonNode taxonNode = ((RowWrapperDTO) element).getTaxonNode(); |
|
44 |
TaxonNodeDto taxonNode = ((RowWrapperDTO) element).getTaxonNode();
|
|
42 | 45 |
addPathRecursive(path, taxonNode); |
43 | 46 |
} |
44 | 47 |
path.add(element); |
45 | 48 |
} |
46 | 49 |
|
47 |
private void addPathRecursive(List path, TaxonNode node){ |
|
48 |
if(node!=null |
|
49 |
&& node.getParent()!=null |
|
50 |
&& node.getTaxon()!=null |
|
51 |
&& node.getTaxon().getName()!=null |
|
52 |
&& node.getTaxon().getName().getRank()!=null){ |
|
53 |
Rank rank = node.getTaxon().getName().getRank(); |
|
54 |
if(maxRank!=null && maxRank.equals(rank)){ |
|
50 |
private void addPathRecursive(List path, TaxonNodeDto node){ |
|
51 |
if(node!=null){ |
|
52 |
if(maxRank!=null && node.getRankOrderIndex()==maxRank.getOrderIndex()){ |
|
55 | 53 |
path.add(node); |
56 | 54 |
return; |
57 | 55 |
} |
58 |
addPathRecursive(path, node.getParent()); |
|
59 |
path.add(node); |
|
56 |
TaxonNode parent = CdmStore.getService(ITaxonNodeService.class).load(node.getParentUUID()); |
|
57 |
if(parent!=null){ |
|
58 |
TaxonNodeDto parentNodeDto = new TaxonNodeDto(parent); |
|
59 |
addPathRecursive(path, parentNodeDto); |
|
60 |
path.add(node); |
|
61 |
} |
|
60 | 62 |
} |
61 | 63 |
} |
62 | 64 |
|
Also available in: Unified diff
ref #7589 Use TaxonNodeDtos in character matrix