Project

General

Profile

Download (2.24 KB) Statistics
| Branch: | Tag: | Revision:
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
}
(19-19/21)