import org.eclipse.swt.dnd.TransferData;
import eu.etaxonomy.cdm.api.service.IFeatureNodeService;
+import eu.etaxonomy.cdm.model.description.Feature;
import eu.etaxonomy.cdm.model.description.FeatureNode;
import eu.etaxonomy.cdm.model.description.FeatureTree;
+import eu.etaxonomy.taxeditor.editor.definedterm.TermTransfer;
import eu.etaxonomy.taxeditor.featuretree.FeatureNodeTransfer;
import eu.etaxonomy.taxeditor.store.CdmStore;
}
}
for (Object droppedObject : droppedObjects) {
- FeatureNode droppedNode = (FeatureNode) droppedObject;
- CdmStore.getService(IFeatureNodeService.class).moveFeatureNode(droppedNode.getUuid(), target.getUuid(), position);
- viewer.refresh();
- viewer.reveal(droppedNode);
+ if(droppedObject instanceof FeatureNode){
+ FeatureNode droppedNode = (FeatureNode) droppedObject;
+ CdmStore.getService(IFeatureNodeService.class).moveFeatureNode(droppedNode.getUuid(), target.getUuid(), position);
+ viewer.reveal(droppedNode);
+ }
+ else if(droppedObject instanceof Feature){
+ Feature droppedFeature = (Feature) droppedObject;
+ CdmStore.getService(IFeatureNodeService.class).addChildFeatureNode(target.getUuid(), droppedFeature.getUuid());
+
+ }
+ viewer.refresh();
}
this.dirtyable.setDirty(true);
return true;
@Override
public boolean validateDrop(Object target, int operation, TransferData transferData) {
- return FeatureNodeTransfer.getInstance().isSupportedType(transferData);
+ boolean isSupported = FeatureNodeTransfer.getInstance().isSupportedType(transferData);
+ isSupported |= TermTransfer.getInstance().isSupportedType(transferData);
+ isSupported &= getViewer().getInput()!=null;
+ return isSupported;
}
}
\ No newline at end of file
import org.eclipse.swt.widgets.Tree;
import eu.etaxonomy.cdm.model.description.FeatureTree;
+import eu.etaxonomy.taxeditor.editor.definedterm.TermTransfer;
import eu.etaxonomy.taxeditor.featuretree.FeatureNodeTransfer;
import eu.etaxonomy.taxeditor.featuretree.FeatureTreeContentProvider;
import eu.etaxonomy.taxeditor.featuretree.FeatureTreeLabelProvider;
int ops = DND.DROP_COPY | DND.DROP_MOVE;
Transfer[] transfers = new Transfer[] { FeatureNodeTransfer
- .getInstance() };
+ .getInstance(), TermTransfer.getInstance() };
if(dragSourceListener!=null){
viewer.addDragSupport(ops, transfers, dragSourceListener);
}