X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/blobdiff_plain/d312fb84249af5ed09898c328b3535fd4cd93d68..7e55a0c5a0ca335fea66c81fa0ba7de366e5dad3:/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateDragListener.java 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 1099c62bc..e96e5badf 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,13 +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.IStructuredSelection; -import org.eclipse.jface.viewers.TreeNode; -import org.eclipse.jface.viewers.Viewer; import org.eclipse.swt.dnd.DragSourceAdapter; import org.eclipse.swt.dnd.DragSourceEvent; -import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase; +import eu.etaxonomy.taxeditor.editor.EditorUtil; +import eu.etaxonomy.taxeditor.model.MessagingUtils; /** * @author pplitzner @@ -26,35 +24,32 @@ import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase; */ 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) - * @see org.eclipse.swt.dnd.DragSourceAdapter#dragSetData(org.eclipse.swt.dnd.DragSourceEvent) - */ @Override public void dragSetData(DragSourceEvent event) { if (LocalSelectionTransfer.getTransfer().isSupportedType(event.dataType)) { - LocalSelectionTransfer.getTransfer().setSelection(viewer.getSelection()); + DerivateViewSelection derivateViewSelection = new DerivateViewSelection(derivateView.getViewer().getSelection(), derivateView); + LocalSelectionTransfer.getTransfer().setSelection(derivateViewSelection); } } - /* (non-Javadoc) - * @see org.eclipse.swt.dnd.DragSourceAdapter#dragStart(org.eclipse.swt.dnd.DragSourceEvent) - */ @Override public void dragStart(DragSourceEvent event) { - ISelection selection = viewer.getSelection(); - if(selection instanceof IStructuredSelection - && ((IStructuredSelection) selection).size()==1 - && ((IStructuredSelection) selection).getFirstElement() instanceof TreeNode - && ((TreeNode) ((IStructuredSelection) selection).getFirstElement()).getValue() instanceof SpecimenOrObservationBase){ + if(derivateView.isDirty()){ + event.doit = false; + MessagingUtils.warningDialog(DerivateView.VIEW_HAS_UNSAVED_CHANGES, this, DerivateView.YOU_NEED_TO_SAVE_BEFORE_PERFORMING_THIS_ACTION); + return; + } + ISelection selection = derivateView.getViewer().getSelection(); + if(EditorUtil.getTreeNodeOfSelection(selection)!=null){ event.doit = true; } else{