Merge branch 'develop' into LibrAlign
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / editor / definedterm / DefinedTermDragListener.java
1 /**
2 * Copyright (C) 2009 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
5 *
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
8 */
9 package eu.etaxonomy.taxeditor.editor.definedterm;
10
11 import java.util.ArrayList;
12 import java.util.List;
13
14 import org.eclipse.jface.viewers.IStructuredSelection;
15 import org.eclipse.jface.viewers.Viewer;
16 import org.eclipse.swt.dnd.DragSourceAdapter;
17 import org.eclipse.swt.dnd.DragSourceEvent;
18
19 import eu.etaxonomy.cdm.model.common.DefinedTermBase;
20
21 /**
22 * @author l.morris
23 * @date 10 Jan 2012
24 *
25 */
26 public class DefinedTermDragListener extends DragSourceAdapter {
27
28 private Viewer viewer;
29
30 /**
31 *
32 */
33 public DefinedTermDragListener(Viewer viewer) {
34 this.viewer = viewer;
35 }
36
37 /* (non-Javadoc)
38 * @see org.eclipse.swt.dnd.DragSourceAdapter#dragStart(org.eclipse.swt.dnd.DragSourceEvent)
39 */
40 @Override
41 public void dragStart(DragSourceEvent event) {
42
43 event.doit = true;// set to false if needed - default is true
44 }
45
46 /* (non-Javadoc)
47 * @see org.eclipse.swt.dnd.DragSourceAdapter#dragFinished(org.eclipse.swt.dnd.DragSourceEvent)
48 */
49 @Override
50 public void dragFinished(DragSourceEvent event) {
51 // TODO Auto-generated method stub
52 super.dragFinished(event);
53 }
54
55 /* (non-Javadoc)
56 * @see org.eclipse.swt.dnd.DragSourceAdapter#dragSetData(org.eclipse.swt.dnd.DragSourceEvent)
57 */
58 @Override
59 public void dragSetData(DragSourceEvent event) {
60
61 IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
62 List<DefinedTermBase> definedTerms = new ArrayList<DefinedTermBase>();
63
64 for (Object object : selection.toList()){
65 definedTerms.add((DefinedTermBase)object);
66 }
67
68 if (TermTransfer.getInstance().isSupportedType(
69 event.dataType)) {
70 event.data = definedTerms.toArray(new DefinedTermBase[definedTerms.size()]);
71 }
72 }
73
74
75
76 }