Revision 95116a15
Added by Patrick Plitzner over 5 years ago
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/e4/handler/CreateDescriptionWithSourceHandler.java | ||
---|---|---|
15 | 15 |
import org.eclipse.e4.ui.model.application.ui.basic.MPart; |
16 | 16 |
import org.eclipse.e4.ui.model.application.ui.menu.MMenuItem; |
17 | 17 |
import org.eclipse.e4.ui.services.IServiceConstants; |
18 |
import org.eclipse.jface.viewers.TreeNode; |
|
19 | 18 |
import org.eclipse.swt.widgets.Shell; |
20 | 19 |
|
21 | 20 |
import eu.etaxonomy.cdm.model.common.IdentifiableSource; |
22 | 21 |
import eu.etaxonomy.cdm.model.common.OriginalSourceType; |
23 |
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase; |
|
24 | 22 |
import eu.etaxonomy.cdm.model.reference.Reference; |
25 | 23 |
import eu.etaxonomy.cdm.model.taxon.Taxon; |
26 |
import eu.etaxonomy.cdm.model.taxon.TaxonBase; |
|
27 | 24 |
import eu.etaxonomy.taxeditor.editor.EditorUtil; |
28 |
import eu.etaxonomy.taxeditor.editor.view.descriptive.e4.FactualDataPartE4; |
|
29 |
import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.CreateSpecimenDescriptionOperation; |
|
30 | 25 |
import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.CreateTaxonDescriptionOperation; |
31 |
import eu.etaxonomy.taxeditor.model.AbstractUtility; |
|
32 |
import eu.etaxonomy.taxeditor.operation.AbstractDescriptionPostOperation; |
|
26 |
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled; |
|
33 | 27 |
import eu.etaxonomy.taxeditor.ui.dialog.selection.ReferenceSelectionDialog; |
34 | 28 |
|
35 | 29 |
/** |
... | ... | |
37 | 31 |
* @since Sep 20, 2018 |
38 | 32 |
* |
39 | 33 |
*/ |
40 |
public class CreateDescriptionWithSourceHandler { |
|
34 |
public class CreateDescriptionWithSourceHandler extends CreateDescriptionHandlerE4 { |
|
35 |
|
|
36 |
private Shell shell; |
|
37 |
|
|
41 | 38 |
@Execute |
42 | 39 |
public void execute(@Named(IServiceConstants.ACTIVE_PART) MPart activePart, MMenuItem menuItem, |
43 | 40 |
UISynchronize sync, @Named(IServiceConstants.ACTIVE_SHELL) Shell shell) { |
41 |
this.shell = shell; |
|
42 |
super.execute(activePart, menuItem, sync); |
|
43 |
} |
|
44 | 44 |
|
45 |
@Override |
|
46 |
protected CreateTaxonDescriptionOperation createTaxonOperation(String eventLabel, Taxon taxon, IPostOperationEnabled postOperationEnabled) { |
|
45 | 47 |
Reference reference = ReferenceSelectionDialog.select(shell, null); |
46 |
|
|
47 |
FactualDataPartE4 factualDataPart = (FactualDataPartE4) activePart.getObject(); |
|
48 |
|
|
49 |
AbstractDescriptionPostOperation operation = null; |
|
50 |
Object viewerInput = factualDataPart.getViewer().getInput(); |
|
51 |
if (viewerInput instanceof TreeNode) { |
|
52 |
viewerInput = ((TreeNode) viewerInput).getValue(); |
|
53 |
} |
|
54 |
if (viewerInput instanceof SpecimenOrObservationBase<?>) { |
|
55 |
operation = new CreateSpecimenDescriptionOperation(menuItem.getLocalizedLabel(), |
|
56 |
EditorUtil.getUndoContext(), (SpecimenOrObservationBase<?>) viewerInput, factualDataPart); |
|
57 |
AbstractUtility.executeOperation(operation, sync); |
|
58 |
} |
|
59 |
if (viewerInput instanceof TaxonBase) { |
|
60 |
operation = new CreateTaxonDescriptionOperation(menuItem.getLocalizedLabel(), EditorUtil.getUndoContext(), |
|
61 |
(Taxon) viewerInput, |
|
62 |
IdentifiableSource.NewInstance(OriginalSourceType.Unknown, null, null, reference, null), factualDataPart); |
|
63 |
AbstractUtility.executeOperation(operation, sync); |
|
64 |
} |
|
48 |
IdentifiableSource source = IdentifiableSource.NewInstance(OriginalSourceType.Unknown, null, null, reference, null); |
|
49 |
return new CreateTaxonDescriptionOperation(eventLabel, EditorUtil.getUndoContext(), taxon, source, postOperationEnabled); |
|
65 | 50 |
} |
66 | 51 |
} |
Also available in: Unified diff
ref #7775 i18n