Project

General

Profile

« Previous | Next » 

Revision cedc4ff1

Added by Katja Luther about 6 years ago

ref #2380: implement usage of Dto for taxon navigator

View differences:

eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/util/TaxonTreeNodeContentProvider.java
10 10
package eu.etaxonomy.taxeditor.util;
11 11

  
12 12
import java.util.Collection;
13
import java.util.List;
14 13

  
15 14
import org.eclipse.jface.viewers.ITreeContentProvider;
16 15

  
17
import eu.etaxonomy.cdm.hibernate.HHH_9751_Util;
18
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
19
import eu.etaxonomy.cdm.model.taxon.Classification;
20
import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
16
import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
21 17
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
18
import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
19
import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
20
import eu.etaxonomy.taxeditor.store.CdmStore;
22 21

  
23 22
/**
24 23
 * @author pplitzner
......
29 28

  
30 29
    private static final Object[] NO_CHILDREN = new Object[0];
31 30

  
31
    private ITaxonNodeService taxonNodeService;
32

  
32 33
    /**
33 34
     * {@inheritDoc}
34 35
     */
......
45 46
     */
46 47
    @Override
47 48
    public Object[] getChildren(Object parentElement) {
49
        if (taxonNodeService == null){
50
            taxonNodeService = CdmStore.getService(ITaxonNodeService.class);
51
        }
48 52
        Object[] children = null;
49 53

  
50
        if(parentElement instanceof Classification){
51
            children = ((Classification) parentElement).getChildNodes().toArray();
52
        }
53
        //taxon node
54
        if(parentElement instanceof ITaxonTreeNode){
55
            ITaxonTreeNode treeNode = (ITaxonTreeNode) HibernateProxyHelper.deproxy(parentElement);
56
            List<TaxonNode> childrenSet = treeNode.getChildNodes();
57
            HHH_9751_Util.removeAllNull(childrenSet);
58
            children = childrenSet.toArray();
54
//        if(parentElement instanceof Classification){
55
//            children = taxonNodeService.listChildNodesAsUuidAndTitleCache(((Classification)parentElement).getRootNode()).toArray();
56
////            children = ((Classification) parentElement).getChildNodes().toArray();
57
//        }
58
//        //taxon node
59
//        if(parentElement instanceof ITaxonTreeNode){
60
//            ITaxonTreeNode treeNode = (ITaxonTreeNode) HibernateProxyHelper.deproxy(parentElement);
61
//            List<TaxonNode> childrenSet = treeNode.getChildNodes();
62
//            HHH_9751_Util.removeAllNull(childrenSet);
63
//            children = childrenSet.toArray();
64
//        }
65

  
66
        if(parentElement instanceof TaxonNode){
67
            children = taxonNodeService.listChildNodesAsTaxonNodeDto((TaxonNode)parentElement).toArray();
68
        }else {
69
            children = taxonNodeService.listChildNodesAsTaxonNodeDto((UuidAndTitleCache<TaxonNode>)parentElement).toArray();
59 70
        }
71

  
60 72
        return children != null ? children : NO_CHILDREN;
61 73
    }
62 74

  
......
65 77
     */
66 78
    @Override
67 79
    public Object getParent(Object element) {
68
        if(element instanceof TaxonNode){
69
            return ((TaxonNode) element).getParent();
80
        if(element instanceof TaxonNodeDto){
81
            if (((TaxonNodeDto) element).getParentUUID() != null){
82
                TaxonNode parent = taxonNodeService.load(((TaxonNodeDto) element).getParentUUID());
83
                return new TaxonNodeDto(parent);
84
            }
70 85
        }
71 86
        return null;
72 87
    }
......
79 94
        if(element instanceof TaxonNode){
80 95
            return ((TaxonNode) element).getCountChildren() > 0;
81 96
        }
97
        if (element instanceof TaxonNodeDto){
98
            return ((TaxonNodeDto)element).getTaxonomicChildrenCount()>0;
99
        }
82 100
        return this.getChildren(element).length > 0;
83 101
    }
84 102

  

Also available in: Unified diff