ref #6805 Remove e3 drag and drop adapters
authorPatrick Plitzner <p.plitzner@bgbm.org>
Wed, 12 Jul 2017 13:21:06 +0000 (15:21 +0200)
committerPatrick Plitzner <p.plitzner@bgbm.org>
Wed, 12 Jul 2017 13:21:06 +0000 (15:21 +0200)
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/workingSet/CharacterDragListener.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/workingSet/CharacterEditor.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/FeatureNodeDragListener.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/FeatureNodeDropAdapter.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/FeatureNodeDragListener.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/FeatureNodeDropAdapter.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/FeatureTreeEditor.java

index 7b127f6ff4b820c837c297c7e91b4200c05fb114..4da3e511a3c8ae1bead1c77976f63090d2f41af0 100644 (file)
@@ -13,8 +13,8 @@ import org.eclipse.jface.viewers.TreeViewer;
 import org.eclipse.swt.dnd.DragSourceEvent;
 
 import eu.etaxonomy.cdm.model.description.FeatureNode;
-import eu.etaxonomy.taxeditor.featuretree.FeatureNodeDragListener;
 import eu.etaxonomy.taxeditor.featuretree.FeatureNodeTransfer;
+import eu.etaxonomy.taxeditor.featuretree.e4.FeatureNodeDragListener;
 
 /**
  * @author pplitzner
index bea44ceecbe9a76fbdc1891d67430165dc9525b6..78d5df86bb339df5bf244d0c7d7ede5057fdb1a5 100644 (file)
@@ -50,8 +50,8 @@ import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.description.Character;
 import eu.etaxonomy.cdm.model.description.FeatureNode;
 import eu.etaxonomy.cdm.model.description.FeatureTree;
-import eu.etaxonomy.taxeditor.featuretree.FeatureNodeDragListener;
-import eu.etaxonomy.taxeditor.featuretree.FeatureNodeDropAdapter;
+import eu.etaxonomy.taxeditor.featuretree.e4.FeatureNodeDragListener;
+import eu.etaxonomy.taxeditor.featuretree.e4.FeatureNodeDropAdapter;
 import eu.etaxonomy.taxeditor.featuretree.e4.FeatureTreeEditorComposite;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
@@ -146,7 +146,7 @@ public class CharacterEditor implements ICdmEntitySessionEnabled, ISelectionChan
         composite_3.setLayout(new GridLayout(1, false));
 
         characterTreeEditorComposite = addFeatureTreeEditor(composite_3);
-        initFeatureTreeComposite(characterTreeEditorComposite, new FeatureNodeDragListener(characterTreeEditorComposite.getViewer()), new FeatureNodeDropAdapter(characterTreeEditorComposite.getViewer()));
+        initFeatureTreeComposite(characterTreeEditorComposite, new FeatureNodeDragListener(characterTreeEditorComposite.getViewer()), new FeatureNodeDropAdapter(dirty, characterTreeEditorComposite.getViewer()));
         characterTreeEditorComposite.getLabel_title().setText("Characters");
 
         sashForm.setWeights(new int[] {3, 3, 1, 3});
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/FeatureNodeDragListener.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/FeatureNodeDragListener.java
deleted file mode 100644 (file)
index 048d298..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-/**
-* Copyright (C) 2017 EDIT
-* European Distributed Institute of Taxonomy
-* http://www.e-taxonomy.eu
-*
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-package eu.etaxonomy.taxeditor.featuretree;
-
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.DragSourceAdapter;
-import org.eclipse.swt.dnd.DragSourceEvent;
-
-import eu.etaxonomy.cdm.model.description.FeatureNode;
-
-/**
- * @author pplitzner
- * @since Jun 2, 2017
- *
- */
-public class FeatureNodeDragListener extends DragSourceAdapter {
-
-    private final TreeViewer viewer;
-
-    public FeatureNodeDragListener(TreeViewer viewer) {
-        this.viewer = viewer;
-    }
-
-    /**
-     * Method declared on DragSourceListener
-     */
-    @Override
-    public void dragFinished(DragSourceEvent event) {
-        if (!event.doit) {
-            return;
-        }
-        if (event.detail == DND.DROP_MOVE) {
-            viewer.refresh();
-        }
-    }
-
-    /**
-     * Method declared on DragSourceListener
-     */
-    @Override
-    public void dragSetData(DragSourceEvent event) {
-        IStructuredSelection selection = (IStructuredSelection) viewer
-                .getSelection();
-        FeatureNode[] featureNodes = (FeatureNode[]) selection.toList()
-                .toArray(new FeatureNode[selection.size()]);
-        if (FeatureNodeTransfer.getInstance().isSupportedType(
-                event.dataType)) {
-            event.data = featureNodes;
-        }
-    }
-
-    /**
-     * Method declared on DragSourceListener
-     */
-    @Override
-    public void dragStart(DragSourceEvent event) {
-        event.doit = !viewer.getSelection().isEmpty();
-    }
-
-}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/FeatureNodeDropAdapter.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/FeatureNodeDropAdapter.java
deleted file mode 100644 (file)
index a3f7c71..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-/**
-* Copyright (C) 2017 EDIT
-* European Distributed Institute of Taxonomy
-* http://www.e-taxonomy.eu
-*
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-package eu.etaxonomy.taxeditor.featuretree;
-
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerDropAdapter;
-import org.eclipse.swt.dnd.TransferData;
-
-import eu.etaxonomy.cdm.model.description.FeatureNode;
-import eu.etaxonomy.cdm.model.description.FeatureTree;
-import eu.etaxonomy.taxeditor.model.MessagingUtils;
-
-/**
- * @author pplitzner
- * @since Jun 2, 2017
- *
- */
-public class FeatureNodeDropAdapter extends ViewerDropAdapter {
-
-    public FeatureNodeDropAdapter(Viewer viewer) {
-        super(viewer);
-    }
-
-    @Override
-    public boolean performDrop(Object data) {
-        FeatureNode target = (FeatureNode) getCurrentTarget();
-        int position = 0;
-
-        if (target != null) {
-            int location = getCurrentLocation();
-            FeatureNode parent = target.getParent();
-            if (location == LOCATION_BEFORE) {
-                position = Math.max(0, parent.getIndex(target) - 1);
-                target = parent;
-            }
-
-            if (location == LOCATION_AFTER) {
-                position = parent.getIndex(target);
-                target = parent;
-            }
-        }
-
-        // set target to root node if there is no target specified
-        if (target == null) {
-            FeatureTree featureTree = (FeatureTree) getViewer().getInput();
-            target = featureTree.getRoot();
-        }
-
-        Object[] droppedObjects = (Object[]) data;
-        TreeViewer viewer = (TreeViewer) getViewer();
-
-        // cannot drop a feature node onto itself
-        for (Object droppedObject : droppedObjects) {
-            if (droppedObject == null) {
-                MessagingUtils.warningDialog(
-                                "Operation not supported yet",
-                                this,
-                                "We are currently unable to change the order of freshly created "
-                                        + "feature trees nodes. Please close and reopen the dialog to change the order of features.");
-                return false;
-            }
-            if (droppedObject.equals(target)) {
-                return false;
-            }
-        }
-        for (Object droppedObject : droppedObjects) {
-            FeatureNode droppedNode = (FeatureNode) droppedObject;
-            target.addChild(droppedNode, position);
-            viewer.add(target, droppedNode);
-            viewer.reveal(droppedNode);
-        }
-        return true;
-    }
-
-    @Override
-    public boolean validateDrop(Object target, int operation,
-            TransferData transferData) {
-        return FeatureNodeTransfer.getInstance().isSupportedType(
-                transferData);
-    }
-
-}
\ No newline at end of file
index e02342f84ef6a56f9d522872dbfa5e48b5d3c515..e479ae99ff01b97930fb114d9328f70ae8509625 100644 (file)
@@ -16,7 +16,7 @@ import org.eclipse.swt.dnd.DragSourceEvent;
 import eu.etaxonomy.cdm.model.description.FeatureNode;
 import eu.etaxonomy.taxeditor.featuretree.FeatureNodeTransfer;
 
-class FeatureNodeDragListener extends DragSourceAdapter {
+public class FeatureNodeDragListener extends DragSourceAdapter {
 
        private final TreeViewer viewer;
 
index a9832364dc0dc7a38271a4cf44809e929496b0f0..65f80312bb50fa7cbebb9f8f858341f247f97507 100644 (file)
@@ -8,6 +8,7 @@
 */
 package eu.etaxonomy.taxeditor.featuretree.e4;
 
+import org.eclipse.e4.ui.model.application.ui.MDirtyable;
 import org.eclipse.jface.viewers.TreeViewer;
 import org.eclipse.jface.viewers.Viewer;
 import org.eclipse.jface.viewers.ViewerDropAdapter;
@@ -19,13 +20,13 @@ import eu.etaxonomy.cdm.model.description.FeatureTree;
 import eu.etaxonomy.taxeditor.featuretree.FeatureNodeTransfer;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
-class FeatureNodeDropAdapter extends ViewerDropAdapter {
+public class FeatureNodeDropAdapter extends ViewerDropAdapter {
 
-    private final FeatureTreeEditor featureTreeEditor;
+    private final MDirtyable dirtyable;
 
-    protected FeatureNodeDropAdapter(FeatureTreeEditor featureTreeEditor, Viewer viewer) {
+    public FeatureNodeDropAdapter(MDirtyable dirtyable, Viewer viewer) {
                super(viewer);
-        this.featureTreeEditor = featureTreeEditor;
+        this.dirtyable = dirtyable;
        }
 
        @Override
@@ -68,7 +69,7 @@ class FeatureNodeDropAdapter extends ViewerDropAdapter {
                        viewer.refresh();
                        viewer.reveal(droppedNode);
                }
-        this.featureTreeEditor.setDirty(true);
+        this.dirtyable.setDirty(true);
                return true;
        }
 
index cc9da65cb7f5e797aaaeba71468704024175e29b..9b52a339cd2bdce65c0dfb26d3e05d71cdda7073 100644 (file)
@@ -92,7 +92,7 @@ public class FeatureTreeEditor implements ICdmEntitySessionEnabled,
         }
         composite = new FeatureTreeEditorComposite(parent, SWT.NULL);
         composite.init(new FeatureNodeDragListener(composite.getViewer()),
-                new FeatureNodeDropAdapter(this, composite.getViewer()), this, new SelectionAdapter() {
+                new FeatureNodeDropAdapter(dirty, composite.getViewer()), this, new SelectionAdapter() {
                     @Override
                     public void widgetSelected(SelectionEvent e) {
                         if(isDirty()){