Project

General

Profile

« Previous | Next » 

Revision eb916729

Added by Patrick Plitzner over 5 years ago

ref #7873 Allow paste on FeatureTrees

View differences:

eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/handler/PasteFeatureHandler.java
15 15
import org.eclipse.jface.viewers.IStructuredSelection;
16 16

  
17 17
import eu.etaxonomy.cdm.model.description.FeatureNode;
18
import eu.etaxonomy.cdm.model.description.FeatureTree;
18 19
import eu.etaxonomy.taxeditor.featuretree.e4.IFeatureTreeEditor;
19 20
import eu.etaxonomy.taxeditor.featuretree.e4.operation.AddFeatureOperation;
20 21
import eu.etaxonomy.taxeditor.model.AbstractUtility;
......
32 33
        }
33 34

  
34 35
        ISelection clipBoardSelection = LocalSelectionTransfer.getTransfer().getSelection();
35
        FeatureNode parentNode = (FeatureNode) selection.getFirstElement();
36
        FeatureNode copiedNode = (FeatureNode) ((IStructuredSelection)clipBoardSelection).getFirstElement();
36
        Object firstElement = selection.getFirstElement();
37
        FeatureNode parentNode = null;
38
        if(firstElement instanceof FeatureNode){
39
            parentNode = (FeatureNode) firstElement;
40
        }
41
        else if(firstElement instanceof FeatureTree){
42
            parentNode = ((FeatureTree)firstElement).getRoot();
43
        }
44
        if(parentNode!=null){
45
            FeatureNode copiedNode = (FeatureNode) ((IStructuredSelection)clipBoardSelection).getFirstElement();
37 46

  
38
        AddFeatureOperation operation = new AddFeatureOperation(copiedNode.getFeature(), parentNode, editor, editor);
39
        AbstractUtility.executeOperation(operation, sync);
47
            AddFeatureOperation operation = new AddFeatureOperation(copiedNode.getFeature(), parentNode, editor, editor);
48
            AbstractUtility.executeOperation(operation, sync);
49
        }
40 50
    }
41 51

  
42 52
    @CanExecute
......
46 56
        ISelection transferSelection = LocalSelectionTransfer.getTransfer().getSelection();
47 57
        canExecute = selection!=null
48 58
                && selection.size()==1
49
                && selection.getFirstElement() instanceof FeatureNode
50 59
                && transferSelection instanceof IStructuredSelection
51 60
                && ((IStructuredSelection)transferSelection).size()==1
52 61
                && ((IStructuredSelection)transferSelection).getFirstElement() instanceof FeatureNode;

Also available in: Unified diff