Revision 9d89dd89
Added by Patrick Plitzner over 5 years ago
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
ref #6907 Fix selection handling on description elements