ref #7086 i18n for WS editor
[taxeditor.git] / eu.etaxonomy.taxeditor.editor / src / main / java / eu / etaxonomy / taxeditor / editor / workingSet / TaxonNodeDropAdapter.java
index 2b6c16682cfbf4192cdee3454e942774edbca4ae..fbeb9a0b58bed7318a45f62df3775e9856db728a 100644 (file)
@@ -8,18 +8,18 @@
 */
 package eu.etaxonomy.taxeditor.editor.workingSet;
 
-import java.util.ArrayList;
-import java.util.Collection;
+import java.util.Set;
 
 import org.eclipse.jface.util.LocalSelectionTransfer;
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.ITreeSelection;
-import org.eclipse.jface.viewers.Viewer;
 import org.eclipse.jface.viewers.ViewerDropAdapter;
 import org.eclipse.swt.dnd.TransferData;
 
-import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
+import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.taxeditor.editor.l10n.Messages;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
 
 /**
  * @author pplitzner
@@ -40,18 +40,18 @@ public class TaxonNodeDropAdapter extends ViewerDropAdapter {
      */
     @Override
     public boolean performDrop(Object data) {
-        ITaxonTreeNode treeNode= (ITaxonTreeNode) ((ITreeSelection) data).getFirstElement();
-        Viewer taxonTreeViewer = workingSetEditor.getTaxonTreeViewer();
-        Object input = taxonTreeViewer.getInput();
-        Collection<ITaxonTreeNode> treeNodes;
-        if(input==null){
-            treeNodes = new ArrayList<>();
-        }
-        else{
-            treeNodes = (Collection<ITaxonTreeNode>) input;
+        TaxonNode taxonNode= (TaxonNode) ((ITreeSelection) data).getFirstElement();
+        //check if node belongs to same classification
+        Set<TaxonNode> taxonSubtreeFilter = workingSetEditor.getWorkingSet().getTaxonSubtreeFilter();
+        if(taxonSubtreeFilter!=null && !taxonSubtreeFilter.isEmpty()){
+            if(!taxonSubtreeFilter.iterator().next().getClassification().equals(taxonNode.getClassification())){
+                MessagingUtils.warningDialog(Messages.TaxonNodeDropAdapter_CLASSIFICATIONS_NO_MATCH, this.getClass(),
+                        Messages.TaxonNodeDropAdapter_CLASSIFICATIONS_NO_MATCH_MESSAGE);
+                return false;
+            }
+
         }
-        treeNodes.add(treeNode);
-        taxonTreeViewer.setInput(treeNodes);
+        workingSetEditor.addTaxonNode(taxonNode);
         return true;
     }
 
@@ -63,7 +63,7 @@ public class TaxonNodeDropAdapter extends ViewerDropAdapter {
         ISelection selection = LocalSelectionTransfer.getTransfer().getSelection();
         if(selection instanceof ITreeSelection
                 && ((IStructuredSelection) selection).size()==1
-                && ((IStructuredSelection) selection).getFirstElement() instanceof ITaxonTreeNode){
+                && ((IStructuredSelection) selection).getFirstElement() instanceof TaxonNode){
             return true;
         }
         return false;