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