package eu.etaxonomy.taxeditor.util;
import java.util.Collection;
-import java.util.List;
import org.eclipse.jface.viewers.ITreeContentProvider;
-import eu.etaxonomy.cdm.hibernate.HHH_9751_Util;
-import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
-import eu.etaxonomy.cdm.model.taxon.Classification;
-import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
+import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
+import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
+import eu.etaxonomy.taxeditor.store.CdmStore;
/**
* @author pplitzner
private static final Object[] NO_CHILDREN = new Object[0];
+ private ITaxonNodeService taxonNodeService;
+
/**
* {@inheritDoc}
*/
*/
@Override
public Object[] getChildren(Object parentElement) {
+ if (taxonNodeService == null){
+ taxonNodeService = CdmStore.getService(ITaxonNodeService.class);
+ }
Object[] children = null;
- if(parentElement instanceof Classification){
- children = ((Classification) parentElement).getChildNodes().toArray();
- }
- //taxon node
- if(parentElement instanceof ITaxonTreeNode){
- ITaxonTreeNode treeNode = (ITaxonTreeNode) HibernateProxyHelper.deproxy(parentElement);
- List<TaxonNode> childrenSet = treeNode.getChildNodes();
- HHH_9751_Util.removeAllNull(childrenSet);
- children = childrenSet.toArray();
+// if(parentElement instanceof Classification){
+// children = taxonNodeService.listChildNodesAsUuidAndTitleCache(((Classification)parentElement).getRootNode()).toArray();
+//// children = ((Classification) parentElement).getChildNodes().toArray();
+// }
+// //taxon node
+// if(parentElement instanceof ITaxonTreeNode){
+// ITaxonTreeNode treeNode = (ITaxonTreeNode) HibernateProxyHelper.deproxy(parentElement);
+// List<TaxonNode> childrenSet = treeNode.getChildNodes();
+// HHH_9751_Util.removeAllNull(childrenSet);
+// children = childrenSet.toArray();
+// }
+
+ if(parentElement instanceof TaxonNode){
+ children = taxonNodeService.listChildNodesAsTaxonNodeDto((TaxonNode)parentElement).toArray();
+ }else {
+ children = taxonNodeService.listChildNodesAsTaxonNodeDto((UuidAndTitleCache<TaxonNode>)parentElement).toArray();
}
+
return children != null ? children : NO_CHILDREN;
}
*/
@Override
public Object getParent(Object element) {
- if(element instanceof TaxonNode){
- return ((TaxonNode) element).getParent();
+ if (taxonNodeService == null){
+ taxonNodeService = CdmStore.getService(ITaxonNodeService.class);
+ }
+ if(element instanceof TaxonNodeDto){
+ if (((TaxonNodeDto) element).getParentUUID() != null){
+ TaxonNode parent = taxonNodeService.load(((TaxonNodeDto) element).getParentUUID());
+ return new TaxonNodeDto(parent);
+ }
}
return null;
}
if(element instanceof TaxonNode){
return ((TaxonNode) element).getCountChildren() > 0;
}
+ if (element instanceof TaxonNodeDto){
+ return ((TaxonNodeDto)element).getTaxonomicChildrenCount()>0;
+ }
return this.getChildren(element).length > 0;
}