From: Patric Plitzner Date: Wed, 14 May 2014 07:18:25 +0000 (+0000) Subject: - only allow dragging in DerivateView when view is not dirty X-Git-Tag: 3.6.0~630 X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/commitdiff_plain/e331654fd33a6681ba2dcfa7e9a39c3dd0100c19 - only allow dragging in DerivateView when view is not dirty - added missing methods to transient services - exposed dto package in cdmlib project - some renaming --- diff --git a/eu.etaxonomy.taxeditor.cdmlib/META-INF/MANIFEST.MF b/eu.etaxonomy.taxeditor.cdmlib/META-INF/MANIFEST.MF index 86b13754f..0959b7a46 100644 --- a/eu.etaxonomy.taxeditor.cdmlib/META-INF/MANIFEST.MF +++ b/eu.etaxonomy.taxeditor.cdmlib/META-INF/MANIFEST.MF @@ -14,6 +14,7 @@ Export-Package: com.google.api, eu.etaxonomy.cdm.api.service, eu.etaxonomy.cdm.api.service.config, eu.etaxonomy.cdm.api.service.description, + eu.etaxonomy.cdm.api.service.dto, eu.etaxonomy.cdm.api.service.exception, eu.etaxonomy.cdm.api.service.lsid, eu.etaxonomy.cdm.api.service.lsid.impl, diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientOccurenceService.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientOccurenceService.java index 5a226f607..ab743b923 100644 --- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientOccurenceService.java +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientOccurenceService.java @@ -30,7 +30,7 @@ import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeNotSupportedException; import eu.etaxonomy.cdm.api.service.IOccurrenceService; import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase; import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator; -import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException; +import eu.etaxonomy.cdm.api.service.dto.DerivateHierarchyDTO; import eu.etaxonomy.cdm.api.service.pager.Pager; import eu.etaxonomy.cdm.api.service.search.SearchResult; import eu.etaxonomy.cdm.api.service.util.TaxonRelationshipEdge; @@ -898,9 +898,28 @@ public class TransientOccurenceService implements IOccurrenceService { @Override public List isDeletable(SpecimenOrObservationBase object, DeleteConfiguratorBase config) { - // TODO Auto-generated method stub - return null; + return defaultService.isDeletable(object, config); } + /* (non-Javadoc) + * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#listFieldUnitsByAssociatedTaxon(java.util.Set, eu.etaxonomy.cdm.model.taxon.Taxon, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List) + */ + @Override + public Collection listFieldUnitsByAssociatedTaxon(Set includeRelationships, + Taxon associatedTaxon, Integer maxDepth, Integer pageSize, Integer pageNumber, List orderHints, + List propertyPaths) { + return defaultService.listFieldUnitsByAssociatedTaxon(includeRelationships, associatedTaxon, maxDepth, pageSize, pageNumber, orderHints, propertyPaths); + } + + /* (non-Javadoc) + * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#listDerivateHierarchyDTOsByAssociatedTaxon(java.util.Set, eu.etaxonomy.cdm.model.taxon.Taxon, java.lang.Integer, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List) + */ + @Override + public Collection listDerivateHierarchyDTOsByAssociatedTaxon( + Set includeRelationships, Taxon associatedTaxon, Integer maxDepth, Integer pageSize, + Integer pageNumber, List orderHints, List propertyPaths) { + return listDerivateHierarchyDTOsByAssociatedTaxon(includeRelationships, associatedTaxon, maxDepth, pageSize, pageNumber, orderHints, propertyPaths); + } + } diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateDragListener.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateDragListener.java index 381aa64a4..e4656ef53 100644 --- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateDragListener.java +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateDragListener.java @@ -11,11 +11,11 @@ package eu.etaxonomy.taxeditor.editor.view.derivate; import org.eclipse.jface.util.LocalSelectionTransfer; import org.eclipse.jface.viewers.ISelection; -import org.eclipse.jface.viewers.Viewer; import org.eclipse.swt.dnd.DragSourceAdapter; import org.eclipse.swt.dnd.DragSourceEvent; import eu.etaxonomy.taxeditor.editor.EditorUtil; +import eu.etaxonomy.taxeditor.model.AbstractUtility; /** * @author pplitzner @@ -24,13 +24,13 @@ import eu.etaxonomy.taxeditor.editor.EditorUtil; */ public class DerivateDragListener extends DragSourceAdapter{ - private final Viewer viewer; + private final DerivateView derivateView; /** - * @param viewer + * @param derivateView */ - public DerivateDragListener(Viewer viewer) { - this.viewer = viewer; + public DerivateDragListener(DerivateView derivateView) { + this.derivateView = derivateView; } /* (non-Javadoc) @@ -39,7 +39,7 @@ public class DerivateDragListener extends DragSourceAdapter{ @Override public void dragSetData(DragSourceEvent event) { if (LocalSelectionTransfer.getTransfer().isSupportedType(event.dataType)) { - LocalSelectionTransfer.getTransfer().setSelection(viewer.getSelection()); + LocalSelectionTransfer.getTransfer().setSelection(derivateView.getViewer().getSelection()); } } @@ -48,7 +48,12 @@ public class DerivateDragListener extends DragSourceAdapter{ */ @Override public void dragStart(DragSourceEvent event) { - ISelection selection = viewer.getSelection(); + if(derivateView.isDirty()){ + event.doit = false; + AbstractUtility.warningDialog("View has unsaved changes", this, "You need to save before performing this action"); + return; + } + ISelection selection = derivateView.getViewer().getSelection(); if(EditorUtil.getTreeNodeOfSelection(selection)!=null){ event.doit = true; } diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateDropListener.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateDropListener.java index 05a769171..009c59fc0 100644 --- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateDropListener.java +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateDropListener.java @@ -79,18 +79,18 @@ public class DerivateDropListener extends ViewerDropAdapter { * @param value * @return */ - private boolean moveTreeNode(TreeNode from, TreeNode to) { - Object fromValue = from.getValue(); - Object toValue = to.getValue(); - TreeNode fromParentNode = from.getParent(); + private boolean moveTreeNode(TreeNode draggedNode, TreeNode targetNode) { + Object draggedNodeValue = draggedNode.getValue(); + Object targetNodeValue = targetNode.getValue(); + TreeNode fromParentNode = draggedNode.getParent(); Object fromParentSpecimen = fromParentNode.getValue(); // drag'n'drop for SpecimenOrObservationBase - if(fromValue instanceof DerivedUnit && toValue instanceof SpecimenOrObservationBase){ - DerivedUnit draggedSpecimen = (DerivedUnit) fromValue; - SpecimenOrObservationBase targetSpecimen = (SpecimenOrObservationBase) toValue; + if(draggedNodeValue instanceof DerivedUnit && targetNodeValue instanceof SpecimenOrObservationBase){ + DerivedUnit draggedSpecimen = (DerivedUnit) draggedNodeValue; + SpecimenOrObservationBase targetSpecimen = (SpecimenOrObservationBase) targetNodeValue; //check if type is a sub derivate type - if(!fromParentNode.equals(to)//don't drag on direct parent node + if(!fromParentNode.equals(targetNode)//don't drag on direct parent node && fromParentSpecimen instanceof SpecimenOrObservationBase){ CdmStore.getService(IOccurrenceService.class).moveDerivate((SpecimenOrObservationBase)fromParentSpecimen, targetSpecimen, draggedSpecimen); return true; @@ -98,19 +98,19 @@ public class DerivateDropListener extends ViewerDropAdapter { } // drag'n'drop for SingleRead - else if(fromValue instanceof SingleRead && toValue instanceof Sequence){ - SingleRead singleRead = (SingleRead) fromValue; + else if(draggedNodeValue instanceof SingleRead && targetNodeValue instanceof Sequence){ + SingleRead singleRead = (SingleRead) draggedNodeValue; if(fromParentSpecimen instanceof Sequence){ - CdmStore.getService(ISequenceService.class).moveSingleRead((Sequence)fromParentSpecimen, (Sequence)toValue, singleRead); + CdmStore.getService(ISequenceService.class).moveSingleRead((Sequence)fromParentSpecimen, (Sequence)targetNodeValue, singleRead); } return true; } // drag'n'drop for Sequence - else if(fromValue instanceof Sequence && toValue instanceof DnaSample ){ - Sequence sequence = (Sequence)fromValue; + else if(draggedNodeValue instanceof Sequence && targetNodeValue instanceof DnaSample ){ + Sequence sequence = (Sequence)draggedNodeValue; if(fromParentSpecimen instanceof DnaSample){ - CdmStore.getService(IOccurrenceService.class).moveSequence((DnaSample)fromParentSpecimen, (DnaSample)toValue, sequence); + CdmStore.getService(IOccurrenceService.class).moveSequence((DnaSample)fromParentSpecimen, (DnaSample)targetNodeValue, sequence); return true; } } diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateView.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateView.java index 441685dc4..2745a94d1 100644 --- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateView.java +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateView.java @@ -112,7 +112,7 @@ public class DerivateView extends EditorPart implements IPartContentHasFactualDa //add drag'n'drop support Transfer[] transfers = new Transfer[] {LocalSelectionTransfer.getTransfer(),}; - viewer.addDragSupport(dndOperations, transfers, new DerivateDragListener(viewer)); + viewer.addDragSupport(dndOperations, transfers, new DerivateDragListener(this)); viewer.addDropSupport(dndOperations, transfers, new DerivateDropListener(this)); }