TaxonNavigatorDragAdapterAssistant : Drag assistant for taxon nodes
authorCherian Mathew <c.mathew@bgbm.org>
Tue, 9 Apr 2013 12:56:04 +0000 (12:56 +0000)
committerCherian Mathew <c.mathew@bgbm.org>
Tue, 9 Apr 2013 12:56:04 +0000 (12:56 +0000)
plugin.xml : added TaxonNavigatorDragAdapterAssistant to the taxon navigator
BulkEditorPropertyTester : added isGroup test

.gitattributes
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/command/BulkEditorPropertyTester.java
eu.etaxonomy.taxeditor.navigation/plugin.xml
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/dnd/TaxonNavigatorDragAdapterAssistant.java [new file with mode: 0644]

index beba8398d519837059517effdd664132385cee6b..36e3e00a1991a65902eaa38ce74eeb70f788497f 100644 (file)
@@ -851,6 +851,7 @@ eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigatio
 eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNodeLabelProvider.java -text
 eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNodePropertyTester.java -text
 eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TreeNodeDropAdapterAssistant.java -text
+eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/dnd/TaxonNavigatorDragAdapterAssistant.java -text
 eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/handler/CopyHandler.java -text
 eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/handler/DeleteHandler.java -text
 eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/handler/EditHandler.java -text
index 378729b3541c080a2db6257680d886c29f9c2e3a..7c59ac5871bfba47eea27db5162f4a0b6a7145a7 100644 (file)
@@ -12,10 +12,13 @@ package eu.etaxonomy.taxeditor.bulkeditor.command;
 
 import org.apache.log4j.Logger;
 import org.eclipse.core.expressions.PropertyTester;
+import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.ui.IEditorInput;
 
+import eu.etaxonomy.cdm.model.common.Group;
 import eu.etaxonomy.taxeditor.bulkeditor.BulkEditor;
 import eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput;
+import eu.etaxonomy.taxeditor.bulkeditor.input.GroupEditorInput;
 
 /**
  * <p>BulkEditorPropertyTester class.</p>
@@ -28,6 +31,7 @@ public class BulkEditorPropertyTester extends PropertyTester {
        private static final Logger logger = Logger
                        .getLogger(BulkEditorPropertyTester.class);
 
+       private static final String GROUP = "isGroup";
        /* (non-Javadoc)
         * @see org.eclipse.core.expressions.IPropertyTester#test(java.lang.Object, java.lang.String, java.lang.Object[], java.lang.Object)
         */
@@ -35,11 +39,15 @@ public class BulkEditorPropertyTester extends PropertyTester {
        public boolean test(Object receiver, String property, Object[] args,
                        Object expectedValue) {
                BulkEditor bulkEditor = (BulkEditor) receiver;
+                       
                if ("isMergingEnabled".equals(property)) {                      
                        IEditorInput input = bulkEditor.getEditorInput();
                        if (input instanceof AbstractBulkEditorInput) {
                                return ((AbstractBulkEditorInput) input).isMergingEnabled();
-                       }
+                       }                       
+               }
+               if(GROUP.equals(property)){
+                       return isGroup(bulkEditor);
                }
 //             if (("isPublishFlagEditingEnabled").equals(property)) {
 //                     IEditorInput input = bulkEditor.getEditorInput();
@@ -49,4 +57,9 @@ public class BulkEditorPropertyTester extends PropertyTester {
 //             }
                return false;
        }
+       
+       private boolean isGroup(BulkEditor bulkEditor) {
+               IEditorInput input = bulkEditor.getEditorInput();
+               return (input instanceof GroupEditorInput) ? true : false;
+       }
 }
index aae8baea7bdaf2c1ed1d6b4fe85c674f333474f8..ea92e5a527891636011a7ab62a21cc5f42ccc407 100644 (file)
             </property>
          </options>
       </viewer-->
+      <dragAssistant
+               class="eu.etaxonomy.taxeditor.navigation.navigator.dnd.TaxonNavigatorDragAdapterAssistant"
+               viewerId="eu.etaxonomy.taxeditor.navigation.navigator">
+      </dragAssistant>
    </extension>
    <extension
          point="org.eclipse.ui.navigator.linkHelper">
diff --git a/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/dnd/TaxonNavigatorDragAdapterAssistant.java b/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/dnd/TaxonNavigatorDragAdapterAssistant.java
new file mode 100644 (file)
index 0000000..34ed650
--- /dev/null
@@ -0,0 +1,41 @@
+package eu.etaxonomy.taxeditor.navigation.navigator.dnd;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.dnd.DragSourceEvent;
+import org.eclipse.swt.dnd.Transfer;
+import org.eclipse.ui.navigator.CommonDragAdapterAssistant;
+
+import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.taxeditor.dnd.transfer.TaxonNodeTransfer;
+
+public class TaxonNavigatorDragAdapterAssistant extends
+               CommonDragAdapterAssistant {
+
+       @Override
+       public Transfer[] getSupportedTransferTypes() {
+               return new Transfer[] { TaxonNodeTransfer.getInstance() };
+       }
+
+       @Override
+       public boolean setDragData(DragSourceEvent event,
+                       IStructuredSelection selection) {
+               boolean setDataSuccess = false;
+               List<TaxonNode> taxonNodes = new ArrayList<TaxonNode>();
+               for (Object object : selection.toList()){
+                       if(object instanceof TaxonNode){
+                               taxonNodes.add(((TaxonNode) object));
+                               setDataSuccess = true;
+                       }
+                       
+               }
+               if (TaxonNodeTransfer.getInstance().isSupportedType(
+                               event.dataType)) {
+                       event.data = taxonNodes.toArray(new TaxonNode[taxonNodes.size()]);
+               }
+               return setDataSuccess;
+       }
+
+}