Revision 86fcba21
Added by Patrick Plitzner over 5 years ago
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/character/CharacterDragListener.java | ||
---|---|---|
8 | 8 |
*/ |
9 | 9 |
package eu.etaxonomy.taxeditor.editor.descriptiveDataSet.character; |
10 | 10 |
|
11 |
import org.eclipse.jface.viewers.IStructuredSelection; |
|
11 |
import java.util.List; |
|
12 |
|
|
13 |
import org.eclipse.jface.util.LocalSelectionTransfer; |
|
14 |
import org.eclipse.jface.viewers.StructuredSelection; |
|
15 |
import org.eclipse.jface.viewers.TreeSelection; |
|
12 | 16 |
import org.eclipse.jface.viewers.TreeViewer; |
13 | 17 |
import org.eclipse.swt.dnd.DragSourceEvent; |
14 | 18 |
|
15 |
import eu.etaxonomy.cdm.model.description.FeatureNode; |
|
16 |
import eu.etaxonomy.taxeditor.featuretree.FeatureNodeTransfer; |
|
19 |
import eu.etaxonomy.cdm.model.description.Character; |
|
17 | 20 |
import eu.etaxonomy.taxeditor.featuretree.e4.FeatureNodeDragListener; |
18 | 21 |
|
19 | 22 |
/** |
... | ... | |
26 | 29 |
private TreeViewer structureViewer; |
27 | 30 |
private TreeViewer propertyViewer; |
28 | 31 |
|
29 |
/** |
|
30 |
* @param propertyViewer |
|
31 |
*/ |
|
32 | 32 |
public CharacterDragListener(TreeViewer structureViewer, TreeViewer propertyViewer) { |
33 | 33 |
super(propertyViewer); |
34 | 34 |
this.structureViewer = structureViewer; |
35 | 35 |
this.propertyViewer = propertyViewer; |
36 | 36 |
} |
37 | 37 |
|
38 |
/** |
|
39 |
* {@inheritDoc} |
|
40 |
*/ |
|
41 | 38 |
@Override |
42 | 39 |
public void dragSetData(DragSourceEvent event) { |
43 |
FeatureNode structure = (FeatureNode) ((IStructuredSelection) structureViewer.getSelection()).getFirstElement(); |
|
44 |
FeatureNode property = (FeatureNode) ((IStructuredSelection) propertyViewer.getSelection()).getFirstElement(); |
|
45 |
FeatureNode[] character = new FeatureNode[2]; |
|
46 |
character[0] = structure; |
|
47 |
character[1] = property; |
|
48 |
if (FeatureNodeTransfer.getInstance().isSupportedType(event.dataType)) { |
|
49 |
event.data = character; |
|
40 |
TreeSelection structureSelection = (TreeSelection) structureViewer.getSelection(); |
|
41 |
TreeSelection propertySelection = (TreeSelection) propertyViewer.getSelection(); |
|
42 |
if(structureSelection!=null && propertySelection!=null |
|
43 |
&& !structureSelection.isEmpty() && !propertySelection.isEmpty()){ |
|
44 |
//create all possible characters |
|
45 |
List<Character> characters = CharacterEditor.createCharacters(structureSelection, propertySelection); |
|
46 |
|
|
47 |
LocalSelectionTransfer.getTransfer().setSelection(new StructuredSelection(characters)); |
|
50 | 48 |
} |
51 | 49 |
} |
52 | 50 |
|
Also available in: Unified diff
ref #7923 Extend drag & drop action for creating characters