Project

General

Profile

« Previous | Next » 

Revision 9d89dd89

Added by Patrick Plitzner over 6 years ago

ref #6907 Fix selection handling on description elements

View differences:

eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/e4/handler/CreateDescriptionElementHandlerE4.java
22 22
import eu.etaxonomy.cdm.api.service.ITermService;
23 23
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
24 24
import eu.etaxonomy.cdm.model.description.DescriptionBase;
25
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
25 26
import eu.etaxonomy.cdm.model.description.Feature;
26 27
import eu.etaxonomy.taxeditor.editor.EditorUtil;
27 28
import eu.etaxonomy.taxeditor.editor.view.descriptive.e4.FactualDataPartE4;
28 29
import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.CreateDescriptionElementOperation;
29 30
import eu.etaxonomy.taxeditor.model.AbstractUtility;
31
import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
30 32
import eu.etaxonomy.taxeditor.model.MessagingUtils;
31 33
import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
32 34
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
......
42 44

  
43 45
    @Execute
44 46
    public void execute(@Named(IServiceConstants.ACTIVE_PART) MPart activePart,
45
            @Optional@Named(IServiceConstants.ACTIVE_SELECTION) DescriptionBase description, MHandledMenuItem menuItem) {
47
            @Optional@Named(IServiceConstants.ACTIVE_SELECTION) Object object, MHandledMenuItem menuItem) {
46 48

  
47 49
        String commandId = menuItem.getCommand().getElementId();
48 50
        UUID uuid = (UUID) menuItem.getTransientData().get(commandId+".feature.uuid");
......
50 52

  
51 53
        FactualDataPartE4 factualDataPart = (FactualDataPartE4) activePart.getObject();
52 54

  
53
        if (description != null) {
54
            AbstractPostOperation operation = null;
55
            // TODO use undo context specific to editor
56
            operation = operationCreationInstance(menuItem.getLocalizedLabel(), feature, description, factualDataPart);
57
            AbstractUtility.executeOperation(operation);
55
        DescriptionBase description = null;
56
        if(object instanceof FeatureNodeContainer){
57
            description = ((FeatureNodeContainer) object).getDescription();
58
        }
59
        else if(object instanceof DescriptionElementBase){
60
            DescriptionElementBase elementBase = HibernateProxyHelper.deproxy(object, DescriptionElementBase.class);
61
            description = elementBase.getInDescription();
62
        }
63
        else if (object instanceof DescriptionBase) {
64
            description = HibernateProxyHelper.deproxy(object, DescriptionBase.class);
58 65
        } else {
59 66
            MessagingUtils.error(getClass(), new IllegalArgumentException("Could not determine the taxon description")); //$NON-NLS-1$
67
            return;
60 68
        }
61

  
69
        AbstractPostOperation operation = operationCreationInstance(menuItem.getLocalizedLabel(), feature, description, factualDataPart);
70
        // TODO use undo context specific to editor
71
        AbstractUtility.executeOperation(operation);
62 72
    }
63 73

  
64 74
    /**

Also available in: Unified diff