import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.dnd.DND;
import org.eclipse.swt.dnd.DragSourceAdapter;
import org.eclipse.swt.dnd.DragSourceEvent;
this.viewer = viewer;
}
- /**
- * Method declared on DragSourceListener
- */
- @Override
- public void dragFinished(DragSourceEvent event) {
- if (!event.doit) {
- return;
+ /**
+ * Method declared on DragSourceListener
+ */
+ @Override
+ public void dragSetData(DragSourceEvent event) {
+ IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
+ FeatureNode[] featureNodes = (FeatureNode[]) selection.toList().toArray(new FeatureNode[selection.size()]);
+ if (FeatureNodeTransfer.getInstance().isSupportedType(event.dataType)) {
+ event.data = featureNodes;
}
- // if the featureNode was moved, remove it from the source viewer
- if (event.detail == DND.DROP_MOVE) {
- IStructuredSelection selection = (IStructuredSelection) viewer
- .getSelection();
- viewer.remove(selection);
- viewer.refresh();
- }
- }
-
- /**
- * Method declared on DragSourceListener
- */
- @Override
- public void dragSetData(DragSourceEvent event) {
- IStructuredSelection selection = (IStructuredSelection) viewer
- .getSelection();
- FeatureNode[] featureNodes = (FeatureNode[]) selection.toList()
- .toArray(new FeatureNode[selection.size()]);
- if (FeatureNodeTransfer.getInstance().isSupportedType(
- event.dataType)) {
- event.data = featureNodes;
- }
- }
+ }
/**
* Method declared on DragSourceListener
import org.eclipse.jface.viewers.ViewerDropAdapter;
import org.eclipse.swt.dnd.TransferData;
+import eu.etaxonomy.cdm.api.service.IFeatureNodeService;
import eu.etaxonomy.cdm.model.description.FeatureNode;
import eu.etaxonomy.cdm.model.description.FeatureTree;
import eu.etaxonomy.taxeditor.featuretree.FeatureNodeTransfer;
-import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.store.CdmStore;
class FeatureNodeDropAdapter extends ViewerDropAdapter {
- /**
- *
- */
private final FeatureTreeEditor featureTreeEditor;
protected FeatureNodeDropAdapter(FeatureTreeEditor featureTreeEditor, Viewer viewer) {
// cannot drop a feature node onto itself
for (Object droppedObject : droppedObjects) {
- if (droppedObject == null) {
- MessagingUtils.warningDialog(
- "Operation not supported yet",
- this,
- "We are currently unable to change the order of freshly created "
- + "feature trees nodes. Please close and reopen the dialog to change the order of features.");
- return false;
- }
if (droppedObject.equals(target)) {
return false;
}
}
for (Object droppedObject : droppedObjects) {
FeatureNode droppedNode = (FeatureNode) droppedObject;
- target.addChild(droppedNode, position);
- viewer.add(target, droppedNode);
- viewer.reveal(droppedNode);
+ CdmStore.getService(IFeatureNodeService.class).moveFeatureNode(droppedNode.getUuid(), target.getUuid(), position);
+ viewer.refresh();
+// viewer.reveal(droppedNode);
}
this.featureTreeEditor.setDirty(true);
return true;
}
- @Override
- public boolean validateDrop(Object target, int operation,
- TransferData transferData) {
- return FeatureNodeTransfer.getInstance().isSupportedType(
- transferData);
- }
+ @Override
+ public boolean validateDrop(Object target, int operation, TransferData transferData) {
+ return FeatureNodeTransfer.getInstance().isSupportedType(transferData);
+ }
}
\ No newline at end of file
}
}
}, new AddButtonListener(), new RemoveSelectionListener());
+ composite.getText_title().setEnabled(false);
}
public void setDirty(boolean isDirty){
this.dirty.setDirty(isDirty);
}
+ public boolean isDirty(){
+ return dirty.isDirty();
+ }
+
public void setSelectedTree(FeatureTree featureTree) {
this.featureTree = HibernateProxyHelper.deproxy(featureTree, FeatureTree.class);
this.featureTree.setRoot(HibernateProxyHelper.deproxy(featureTree.getRoot(), FeatureNode.class));
composite.getViewer().setInput(featureTree);
+ composite.getText_title().setEnabled(true);
composite.getText_title().removeModifyListener(this);
composite.getText_title().setText(featureTree.getTitleCache());
composite.getText_title().addModifyListener(this);
.getAdditionalFeatures();
for (Feature feature : additionalFeatures) {
FeatureNode child = FeatureNode.NewInstance(feature);
- CdmStore.getService(IFeatureNodeService.class).merge(child, true);
-
parent.addChild(child);
+ CdmStore.getService(IFeatureNodeService.class).save(child);
}
setDirty(true);
composite.getViewer().refresh();