Project

General

Profile

Download (1.72 KB) Statistics
| Branch: | Tag: | Revision:
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.e4;
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
import eu.etaxonomy.taxeditor.editor.definedterm.TermTransfer;
21

    
22
/**
23
 *
24
 * @author pplitzner
25
 * @since Aug 22, 2017
26
 *
27
 */
28
public class DefinedTermDragListenerE4 extends DragSourceAdapter {
29

    
30
	private Viewer viewer;
31

    
32
	public DefinedTermDragListenerE4(Viewer viewer) {
33
		this.viewer = viewer;
34
	}
35

    
36
	@Override
37
	public void dragStart(DragSourceEvent event) {
38
	    IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
39
	    List list = selection.toList();
40
	    for (Object object : list) {
41
            if(!(object instanceof DefinedTermBase)){
42
                event.doit = false;
43
                return;
44
            }
45
        }
46
		event.doit = true;
47
	}
48

    
49
	@Override
50
	public void dragSetData(DragSourceEvent event) {
51

    
52
		IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
53
		List<DefinedTermBase> definedTerms = new ArrayList<DefinedTermBase>();
54

    
55
		for (Object object : selection.toList()){
56
				definedTerms.add((DefinedTermBase)object);
57
			}
58

    
59
		if (TermTransfer.getInstance().isSupportedType(
60
				event.dataType)) {
61
			event.data = definedTerms.toArray(new DefinedTermBase[definedTerms.size()]);
62
		}
63
	}
64

    
65
}
(1-1/4)