c229b0a85bfb1671031d594d46f1f25997282910
[taxeditor.git] / taxeditor-editor / src / main / java / eu / etaxonomy / taxeditor / editor / name / NameEditorDragListener.java
1 /**
2 *
3 */
4 package eu.etaxonomy.taxeditor.editor.name;
5
6 import org.apache.log4j.Logger;
7 import org.eclipse.swt.dnd.DND;
8 import org.eclipse.swt.dnd.DragSourceAdapter;
9 import org.eclipse.swt.dnd.DragSourceEvent;
10
11 import eu.etaxonomy.cdm.model.common.ICdmBase;
12 import eu.etaxonomy.taxeditor.editor.CdmDataTransfer;
13
14 /**
15 * <p>NameEditorDragListener class.</p>
16 *
17 * @author n.hoffmann
18 * @version $Id: $
19 */
20 public class NameEditorDragListener extends DragSourceAdapter {
21
22 private static final Logger logger = Logger.getLogger(NameEditorDragListener.class);
23
24 private AbstractGroupedContainer container;
25
26 /**
27 * <p>Constructor for NameEditorDragListener.</p>
28 *
29 * @param container a {@link eu.etaxonomy.taxeditor.editor.name.AbstractGroupedContainer} object.
30 */
31 public NameEditorDragListener(AbstractGroupedContainer container){
32 this.container = container;
33 }
34
35 /** {@inheritDoc} */
36 public void dragFinished(DragSourceEvent event) {
37 if(!event.doit)
38 return;
39 if(event.detail == DND.DROP_MOVE){
40 logger.warn("drag finished");
41 container.remove();
42 }
43
44 };
45
46 /** {@inheritDoc} */
47 @Override
48 public void dragSetData(DragSourceEvent event) {
49 ICdmBase[] cdmBaseObjects = new ICdmBase[]{(ICdmBase) container.getData()};
50 if(CdmDataTransfer.getInstance().isSupportedType(event.dataType)){
51 event.data = cdmBaseObjects;
52 }
53 }
54
55 /** {@inheritDoc} */
56 @Override
57 public void dragStart(DragSourceEvent event) {
58 event.doit = container.getData() != null;
59 }
60 }