ref #6595 Remove exception from editor opening
[taxeditor.git] / eu.etaxonomy.taxeditor.editor / src / main / java / eu / etaxonomy / taxeditor / editor / name / e4 / dnd / NameEditorDragListenerE4.java
1 /**
2 *
3 */
4 package eu.etaxonomy.taxeditor.editor.name.e4.dnd;
5
6 import org.eclipse.swt.dnd.DND;
7 import org.eclipse.swt.dnd.DragSourceAdapter;
8 import org.eclipse.swt.dnd.DragSourceEvent;
9 import org.eclipse.ui.forms.ManagedForm;
10
11 import eu.etaxonomy.cdm.model.common.ICdmBase;
12 import eu.etaxonomy.taxeditor.editor.CdmDataTransfer;
13 import eu.etaxonomy.taxeditor.editor.name.e4.container.AbstractGroupedContainerE4;
14
15 /**
16 *
17 * @author pplitzner
18 * @date 04.09.2017
19 *
20 */
21 public class NameEditorDragListenerE4 extends DragSourceAdapter {
22
23 private AbstractGroupedContainerE4 container;
24
25 public NameEditorDragListenerE4(AbstractGroupedContainerE4 container){
26 this.container = container;
27 }
28
29 /** {@inheritDoc} */
30 @Override
31 public void dragFinished(DragSourceEvent event) {
32 if(!event.doit) {
33 return;
34 }
35 if(event.detail == DND.DROP_MOVE){
36 ManagedForm managedForm = container.getGroup().getEditor().getManagedForm();
37 container.getGroup().remove(container);
38 managedForm.reflow(true);
39 }
40
41 };
42
43 /** {@inheritDoc} */
44 @Override
45 public void dragSetData(DragSourceEvent event) {
46 ICdmBase[] cdmBaseObjects = new ICdmBase[]{container.getData()};
47 if(CdmDataTransfer.getInstance().isSupportedType(event.dataType)){
48 event.data = cdmBaseObjects;
49 }
50 }
51
52 /** {@inheritDoc} */
53 @Override
54 public void dragStart(DragSourceEvent event) {
55 event.doit = container.getData() != null;
56 }
57 }