*/
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
*/
@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;
}
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;