Merge branch 'develop' of ssh://dev.e-taxonomy.eu/var/git/taxeditor into develop
[taxeditor.git] / eu.etaxonomy.taxeditor.navigation / src / main / java / eu / etaxonomy / taxeditor / navigation / navigator / TreeNodeDragListener.java
1 // $Id$
2 /**
3 * Copyright (C) 2015 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.navigation.navigator;
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 import org.eclipse.ui.navigator.CommonViewer;
20
21
22 import eu.etaxonomy.cdm.model.common.DefinedTermBase;
23 import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
24 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
25 import eu.etaxonomy.taxeditor.dnd.transfer.TaxonNodeTransfer;
26 import eu.etaxonomy.taxeditor.editor.definedterm.TermTransfer;
27
28 /**
29 * @author k.luther
30 * @date 02.06.2015
31 *
32 */
33 public class TreeNodeDragListener extends DragSourceAdapter {
34 private CommonViewer viewer;
35
36 /**
37 *
38 */
39 public TreeNodeDragListener(CommonViewer viewer) {
40 this.viewer = viewer;
41 }
42
43
44 public void setViewer(CommonViewer viewer){
45 this.viewer = viewer;
46 }
47 /* (non-Javadoc)
48 * @see org.eclipse.swt.dnd.DragSourceAdapter#dragStart(org.eclipse.swt.dnd.DragSourceEvent)
49 */
50 @Override
51 public void dragStart(DragSourceEvent event) {
52
53 event.doit = true;// set to false if needed - default is true
54 }
55
56 /* (non-Javadoc)
57 * @see org.eclipse.swt.dnd.DragSourceAdapter#dragFinished(org.eclipse.swt.dnd.DragSourceEvent)
58 */
59 @Override
60 public void dragFinished(DragSourceEvent event) {
61 // TODO Auto-generated method stub
62 super.dragFinished(event);
63 }
64
65 /* (non-Javadoc)
66 * @see org.eclipse.swt.dnd.DragSourceAdapter#dragSetData(org.eclipse.swt.dnd.DragSourceEvent)
67 */
68 @Override
69 public void dragSetData(DragSourceEvent event) {
70
71 IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
72 List<ITaxonTreeNode> taxonNodes = new ArrayList<ITaxonTreeNode>();
73
74 for (Object object : selection.toList()){
75 taxonNodes.add((ITaxonTreeNode)object);
76 }
77
78 if (TaxonNodeTransfer.getInstance().isSupportedType(
79 event.dataType)) {
80 event.data = taxonNodes.toArray(new TaxonNode[taxonNodes.size()]);
81 }
82 }
83 }