Project

General

Profile

« Previous | Next » 

Revision 11a549d1

Added by Patrick Plitzner over 5 years ago

ref #7589 Use TaxonNodeDtos in character matrix

View differences:

eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/CharacterMatrixConfigLabelAccumulator.java
13 13

  
14 14
import eu.etaxonomy.cdm.api.service.dto.TaxonRowWrapperDTO;
15 15
import eu.etaxonomy.cdm.model.description.Feature;
16
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
16
import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
17 17

  
18 18
/**
19 19
 * @author pplitzner
......
39 39
        boolean isEditable = true;
40 40

  
41 41
        Object rowObject = matrix.getBodyDataProvider().getRowObject(rowPosition);
42
        if(rowObject instanceof TaxonNode){
42
        if(rowObject instanceof TaxonNodeDto){
43 43
            configLabels.addLabel(CharacterMatrix.LABEL_TAXON_ROW);
44 44
        }
45 45
        else if(rowObject instanceof TaxonRowWrapperDTO){
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

  
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/MatrixRowComparator.java
10 10

  
11 11
import java.util.Comparator;
12 12

  
13
import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
13 14
import eu.etaxonomy.cdm.api.service.dto.RowWrapperDTO;
14 15
import eu.etaxonomy.cdm.model.common.MarkerType;
15 16
import eu.etaxonomy.cdm.model.description.DescriptionBase;
16 17
import eu.etaxonomy.cdm.model.description.SpecimenDescription;
17 18
import eu.etaxonomy.cdm.model.description.TaxonDescription;
18
import eu.etaxonomy.cdm.model.taxon.TaxonNaturalComparator;
19
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
20
import eu.etaxonomy.cdm.model.taxon.TaxonNodeByNameComparator;
21
import eu.etaxonomy.cdm.model.taxon.TaxonNodeByRankAndNameComparator;
19
import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
20
import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDtoByNameComparator;
21
import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDtoByRankAndNameComparator;
22
import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDtoNaturalComparator;
22 23
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
24
import eu.etaxonomy.taxeditor.store.CdmStore;
23 25

  
24 26
/**
25 27
 * @author pplitzner
......
28 30
 */
29 31
public class MatrixRowComparator implements Comparator<Object>{
30 32

  
31
    private Comparator<TaxonNode> comparator;
33
    private Comparator<TaxonNodeDto> comparator;
34
    private ITaxonNodeService taxonNodeService;
32 35

  
33 36
    public MatrixRowComparator() {
37
        taxonNodeService = CdmStore.getService(ITaxonNodeService.class);
34 38
        if (PreferencesUtil.isNodesSortedNaturally()){
35
            comparator = new TaxonNaturalComparator();
39
            comparator = new TaxonNodeDtoNaturalComparator();
36 40
        } else if (PreferencesUtil.isNodesSortedByName()){
37
            comparator = new TaxonNodeByNameComparator();
41
            comparator = new TaxonNodeDtoByNameComparator();
38 42
        }else {
39
            comparator = new TaxonNodeByRankAndNameComparator();
43
            comparator = new TaxonNodeDtoByRankAndNameComparator();
40 44
        }
41 45
    }
42 46

  
43 47
    @Override
44 48
    public int compare(Object o1, Object o2) {
45
        if(o1 instanceof TaxonNode){
49
        if(o1 instanceof TaxonNodeDto){
46 50
            if(o2 instanceof RowWrapperDTO){
47 51
                return 1;
48 52
            }
49 53
        }
50 54
        else{
51
            if(o2 instanceof TaxonNode){
55
            if(o2 instanceof TaxonNodeDto){
52 56
                return -1;
53 57
            }
54 58
        }
55
        if(o1 instanceof TaxonNode && o2 instanceof TaxonNode){
56
            return comparator.compare((TaxonNode)o1, (TaxonNode)o2);
59
        if(o1 instanceof TaxonNodeDto && o2 instanceof TaxonNodeDto){
60
            return comparator.compare((TaxonNodeDto)o1, (TaxonNodeDto)o2);
57 61
        }
58 62
        if(o1 instanceof RowWrapperDTO && o2 instanceof RowWrapperDTO){
59 63
            RowWrapperDTO rowWrapper1 = (RowWrapperDTO)o1;
......
62 66
            if(rowWrapper1.equals(rowWrapper2)){
63 67
                return 0;
64 68
            }
65
            TaxonNode node1 = rowWrapper1.getTaxonNode().getParent();
66
            TaxonNode node2 = rowWrapper2.getTaxonNode().getParent();
69
            TaxonNodeDto node1 = taxonNodeService.dto(rowWrapper1.getTaxonNode().getParentUUID());
70
            TaxonNodeDto node2 = taxonNodeService.dto(rowWrapper2.getTaxonNode().getParentUUID());
67 71
            if(node1!=null && node2!=null){
68 72
                //compare by taxon node
69 73
                int compare = comparator.compare(node1, node2);
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/handler/CreateTaxonDescriptionHandler.java
22 22
import eu.etaxonomy.cdm.api.service.dto.TaxonRowWrapperDTO;
23 23
import eu.etaxonomy.cdm.model.common.MarkerType;
24 24
import eu.etaxonomy.cdm.model.description.DescriptiveDataSet;
25
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
25
import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
26 26
import eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix.CharacterMatrixPart;
27 27
import eu.etaxonomy.taxeditor.store.CdmStore;
28 28

  
......
37 37
    public void execute(@Named(IServiceConstants.ACTIVE_PART)MPart activePart, UISynchronize sync) {
38 38
        CharacterMatrixPart matrixPart = (CharacterMatrixPart) activePart.getObject();
39 39
        DescriptiveDataSet descriptiveDataSet = matrixPart.getDescriptiveDataSet();
40
        TaxonNode node = (TaxonNode) matrixPart.getSelection().getFirstElement();
40
        TaxonNodeDto node = (TaxonNodeDto) matrixPart.getSelection().getFirstElement();
41 41
        TaxonRowWrapperDTO taxonRowWrapperDTO = CdmStore.getService(IDescriptiveDataSetService.class)
42 42
                .createTaxonDescription(descriptiveDataSet.getUuid(), node.getUuid(), getMarkerType(), getMarkerFlag());
43
        matrixPart.getMatrix().getCdmEntitiySession().load(taxonRowWrapperDTO.getDescription(), true);
43 44
        matrixPart.getMatrix().getDescriptions().add(taxonRowWrapperDTO);
44 45
    }
45 46

  
......
54 55
        boolean canExecute = false;
55 56
        IStructuredSelection selection = ((CharacterMatrixPart)activePart.getObject()).getSelection();
56 57
        canExecute = selection.size()==1
57
                && selection.getFirstElement() instanceof TaxonNode;
58
                && selection.getFirstElement() instanceof TaxonNodeDto;
58 59
        menuItem.setVisible(canExecute);
59 60
        return canExecute;
60 61
    }
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/supplementalInfo/SupplementalInfoDisplayConverter.java
15 15
import eu.etaxonomy.cdm.model.location.NamedArea;
16 16
import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
17 17
import eu.etaxonomy.cdm.model.occurrence.GatheringEvent;
18
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
18
import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
19 19

  
20 20
/**
21 21
 * Converts the supplemental information (taxon and specimen data)
......
36 36
    @Override
37 37
    public Object canonicalToDisplayValue(Object canonicalValue) {
38 38
        String displayValue = "";
39
        if(HibernateProxyHelper.isInstanceOf(canonicalValue, TaxonNode.class)){
40
            TaxonNode node = (TaxonNode)canonicalValue;
41
            displayValue = node.getTaxon().getName().getTitleCache();
39
        if(canonicalValue instanceof TaxonNodeDto){
40
            TaxonNodeDto node = (TaxonNodeDto)canonicalValue;
41
            displayValue = node.getTaxonTitleCache();
42 42
        }
43 43
        else if(HibernateProxyHelper.isInstanceOf(canonicalValue, FieldUnit.class)){
44 44
            FieldUnit fieldUnit = HibernateProxyHelper.deproxy(canonicalValue, FieldUnit.class);

Also available in: Unified diff