2 * Copyright (C) 2015 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
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.
9 package eu
.etaxonomy
.taxeditor
.navigation
.navigator
;
11 import java
.util
.ArrayList
;
12 import java
.util
.List
;
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 import org
.eclipse
.ui
.navigator
.CommonViewer
;
21 import eu
.etaxonomy
.cdm
.model
.common
.DefinedTermBase
;
22 import eu
.etaxonomy
.cdm
.model
.taxon
.ITaxonTreeNode
;
23 import eu
.etaxonomy
.cdm
.model
.taxon
.TaxonNode
;
24 import eu
.etaxonomy
.taxeditor
.dnd
.transfer
.TaxonNodeTransfer
;
25 import eu
.etaxonomy
.taxeditor
.editor
.definedterm
.TermTransfer
;
32 public class TreeNodeDragListener
extends DragSourceAdapter
{
33 private CommonViewer viewer
;
38 public TreeNodeDragListener(CommonViewer viewer
) {
43 public void setViewer(CommonViewer viewer
){
47 * @see org.eclipse.swt.dnd.DragSourceAdapter#dragStart(org.eclipse.swt.dnd.DragSourceEvent)
50 public void dragStart(DragSourceEvent event
) {
52 event
.doit
= true;// set to false if needed - default is true
56 * @see org.eclipse.swt.dnd.DragSourceAdapter#dragFinished(org.eclipse.swt.dnd.DragSourceEvent)
59 public void dragFinished(DragSourceEvent event
) {
60 // TODO Auto-generated method stub
61 super.dragFinished(event
);
65 * @see org.eclipse.swt.dnd.DragSourceAdapter#dragSetData(org.eclipse.swt.dnd.DragSourceEvent)
68 public void dragSetData(DragSourceEvent event
) {
70 IStructuredSelection selection
= (IStructuredSelection
) viewer
.getSelection();
71 List
<ITaxonTreeNode
> taxonNodes
= new ArrayList
<ITaxonTreeNode
>();
73 for (Object object
: selection
.toList()){
74 taxonNodes
.add((ITaxonTreeNode
)object
);
77 if (TaxonNodeTransfer
.getInstance().isSupportedType(
79 event
.data
= taxonNodes
.toArray(new TaxonNode
[taxonNodes
.size()]);