// $Id$
/**
* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy
+* 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.
*/
import org.eclipse.ui.navigator.CommonDropAdapterAssistant;
import eu.etaxonomy.cdm.model.common.CdmBase;
-import eu.etaxonomy.cdm.model.taxon.ITreeNode;
+import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
import eu.etaxonomy.taxeditor.navigation.navigator.operation.MoveTaxonOperation;
/** Constant <code>ID="eu.etaxonomy.taxeditor.navigation.navig"{trunked}</code> */
public static final String ID = "eu.etaxonomy.taxeditor.navigation.navigator.dropassistant"; //$NON-NLS-1$
-
+
/* (non-Javadoc)
* @see org.eclipse.ui.navigator.CommonDropAdapterAssistant#handleDrop(org.eclipse.ui.navigator.CommonDropAdapter, org.eclipse.swt.dnd.DropTargetEvent, java.lang.Object)
*/
@Override
public IStatus handleDrop(CommonDropAdapter dropAdapter,
DropTargetEvent dropTargetEvent, Object target) {
-
- if (target instanceof ITreeNode) {
+
+ if (target instanceof ITaxonTreeNode) {
Set<TaxonNode> taxonNodes = getSelectedTaxa();
- ITreeNode targetTreeNode = (ITreeNode) target;
- if(taxonNodes != null)
- return moveTaxon(taxonNodes, targetTreeNode);
+ ITaxonTreeNode targetTreeNode = (ITaxonTreeNode) target;
+ if(taxonNodes != null) {
+ return moveTaxon(taxonNodes, targetTreeNode);
+ }
}
-
+
return Status.CANCEL_STATUS;
}
-
+
private Set<TaxonNode> getSelectedTaxa(){
- HashSet<TaxonNode> taxonNodes = new HashSet<TaxonNode>();
-
+ HashSet<TaxonNode> taxonNodes = new HashSet<TaxonNode>();
+
ISelection selection = LocalSelectionTransfer.getTransfer().getSelection();
if (selection instanceof TreeSelection) {
-
+
Iterator selectionIterator = ((TreeSelection) selection).iterator();
-
+
while (selectionIterator.hasNext()){
Object object = selectionIterator.next();
if(object instanceof TaxonNode){
/** {@inheritDoc} */
@Override
public IStatus validateDrop(Object target, int operation,
- TransferData transferType) {
- if (target instanceof ITreeNode) {
+ TransferData transferType) {
+ if (target instanceof ITaxonTreeNode) {
// do not allow to drop onto itself
for(TaxonNode taxonNode : getSelectedTaxa()){
if (taxonNode.equals(target)) {
}
}
return Status.OK_STATUS;
- }
+ }
return Status.CANCEL_STATUS;
}
-
+
/**
* @param childTaxonNode
* @param parentTaxon
* @return
*/
- private IStatus moveTaxon(Set<TaxonNode> taxonNodes, ITreeNode targetITreeNode) {
-
+ private IStatus moveTaxon(Set<TaxonNode> taxonNodes, ITaxonTreeNode targetITaxonTreeNode) {
+
TaxonNavigator taxonNavigator;
taxonNavigator = (TaxonNavigator) NavigationUtil.showView(TaxonNavigator.ID);
-
- if(targetITreeNode instanceof TaxonNode){
-
- TaxonNode targetTaxonNode = (TaxonNode) targetITreeNode;
-
+
+ if(targetITaxonTreeNode instanceof TaxonNode){
+
+ TaxonNode targetTaxonNode = (TaxonNode) targetITaxonTreeNode;
+
// for(TaxonNode taxonNode : taxonNodes){
// if (taxonNode.equals(targetTaxonNode)) {
// return Status.CANCEL_STATUS;
// }
// }
-
+
// Make sure parent taxon does not have unsaved changes
if (NavigationUtil.isDirty(targetTaxonNode)){
MessageDialog.openWarning(NavigationUtil.getShell(), "Unsaved Parent Taxon", "There are unsaved " +
"changes in the parent taxon. Pleas save first.");
return Status.CANCEL_STATUS;
}
-
-
+
+
// Make sure parentTaxon is not the drop target
// if (!childTaxonNode.isTopmostNode() && childTaxonNode.getParent().equals(targetTaxonNode)){
// return Status.CANCEL_STATUS;
// }
-
+
// Make sure taxon is not being dropped onto itself
// if (childTaxonNode.equals(targetTaxonNode)) {
// return Status.CANCEL_STATUS;
// }
-
-
- }
-
+
+
+ }
+
IUndoContext workspaceUndoContext = NavigationUtil.getWorkbenchUndoContext();
if (workspaceUndoContext == null) {
logger.error("Workspace undo context is null. DND operation cancelled");
}
AbstractPostOperation operation = new MoveTaxonOperation
- ("Move Taxon", workspaceUndoContext, taxonNodes, targetITreeNode, this, taxonNavigator);
- NavigationUtil.executeOperation(operation);
-
- logger.info("Moved taxa to new parent " + targetITreeNode);
+ ("Move Taxon", workspaceUndoContext, taxonNodes, targetITaxonTreeNode, this, taxonNavigator);
+ NavigationUtil.executeOperation(operation);
+
+ logger.info("Moved taxa to new parent " + targetITaxonTreeNode);
return Status.OK_STATUS;
}
* @see eu.etaxonomy.taxeditor.operations.IPostOperationEnabled#postOperation(eu.etaxonomy.cdm.model.common.CdmBase)
*/
/** {@inheritDoc} */
- public boolean postOperation(CdmBase objectAffectedByOperation) {
+ @Override
+ public boolean postOperation(CdmBase objectAffectedByOperation) {
return true;
}
*
* @return a boolean.
*/
- public boolean onComplete() {
+ @Override
+ public boolean onComplete() {
// TODO Auto-generated method stub
return false;
}