Revision 50c9803d
Added by Patrick Plitzner almost 7 years ago
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/FeatureNodeDragListener.java | ||
---|---|---|
10 | 10 |
|
11 | 11 |
import org.eclipse.jface.viewers.IStructuredSelection; |
12 | 12 |
import org.eclipse.jface.viewers.TreeViewer; |
13 |
import org.eclipse.swt.dnd.DND; |
|
14 | 13 |
import org.eclipse.swt.dnd.DragSourceAdapter; |
15 | 14 |
import org.eclipse.swt.dnd.DragSourceEvent; |
16 | 15 |
|
... | ... | |
25 | 24 |
this.viewer = viewer; |
26 | 25 |
} |
27 | 26 |
|
28 |
/** |
|
29 |
* Method declared on DragSourceListener |
|
30 |
*/ |
|
31 |
@Override |
|
32 |
public void dragFinished(DragSourceEvent event) { |
|
33 |
if (!event.doit) { |
|
34 |
return; |
|
27 |
/** |
|
28 |
* Method declared on DragSourceListener |
|
29 |
*/ |
|
30 |
@Override |
|
31 |
public void dragSetData(DragSourceEvent event) { |
|
32 |
IStructuredSelection selection = (IStructuredSelection) viewer.getSelection(); |
|
33 |
FeatureNode[] featureNodes = (FeatureNode[]) selection.toList().toArray(new FeatureNode[selection.size()]); |
|
34 |
if (FeatureNodeTransfer.getInstance().isSupportedType(event.dataType)) { |
|
35 |
event.data = featureNodes; |
|
35 | 36 |
} |
36 |
// if the featureNode was moved, remove it from the source viewer |
|
37 |
if (event.detail == DND.DROP_MOVE) { |
|
38 |
IStructuredSelection selection = (IStructuredSelection) viewer |
|
39 |
.getSelection(); |
|
40 |
viewer.remove(selection); |
|
41 |
viewer.refresh(); |
|
42 |
} |
|
43 |
} |
|
44 |
|
|
45 |
/** |
|
46 |
* Method declared on DragSourceListener |
|
47 |
*/ |
|
48 |
@Override |
|
49 |
public void dragSetData(DragSourceEvent event) { |
|
50 |
IStructuredSelection selection = (IStructuredSelection) viewer |
|
51 |
.getSelection(); |
|
52 |
FeatureNode[] featureNodes = (FeatureNode[]) selection.toList() |
|
53 |
.toArray(new FeatureNode[selection.size()]); |
|
54 |
if (FeatureNodeTransfer.getInstance().isSupportedType( |
|
55 |
event.dataType)) { |
|
56 |
event.data = featureNodes; |
|
57 |
} |
|
58 |
} |
|
37 |
} |
|
59 | 38 |
|
60 | 39 |
/** |
61 | 40 |
* Method declared on DragSourceListener |
Also available in: Unified diff
ref #6694 Fix session handling when moving feature nodes