handledmenuitem.tooltip.4 = Character Editor
handledmenuitem.label.17 = Remove Taxon
command.commandname.21 = Remove taxon
+
+handledmenuitem.label.18 = New Factual Data Set with source
+handledmenuitem.label.19 = Create default description
+handledmenuitem.label.20 = Create literature description
+command.commandname.22 = Create default taxon description
+command.commandname.23 = Create literature taxon description
+command.commandname.24 = New description with source
<handlers xmi:id="_xJ3XUIy0EeeQaL4TL8oz7Q" elementId="eu.etaxonomy.taxeditor.editor.view.descriptive.e4.handler.ToggleShowOnlyIndividualAssociationsHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.descriptive.e4.handler.ToggleShowOnlyIndividualAssociationsHandlerE4" command="_4eDWoIy0EeeQaL4TL8oz7Q"/>
<handlers xmi:id="_Te6qAIy3EeeQaL4TL8oz7Q" elementId="eu.etaxonomy.taxeditor.editor.factualData.saveHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.workbench/eu.etaxonomy.taxeditor.workbench.SaveHandler" command="_majwMEaQEeeXMc6kSYO7Xg"/>
<handlers xmi:id="_Epa7oJMpEeeR4YRjNqCKeA" elementId="eu.etaxonomy.taxeditor.editor.view.derivate.handler.OpenDerivativeEditorForDescriptionElement" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.derivate.handler.OpenDerivativeEditorForDescriptionElement" command="_j2cfsJMmEeeR4YRjNqCKeA"/>
+ <handlers xmi:id="_tc-7wLy2EeioE565ihOF2g" elementId="eu.etaxonomy.taxeditor.editor.view.descriptive.e4.handler.CreateDescriptionWithSourceHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.descriptive.e4.handler.CreateDescriptionWithSourceHandler" command="_Z51sQLy2EeioE565ihOF2g"/>
<menus xsi:type="menu:PopupMenu" xmi:id="_HxxDt4GxEeehlNPrK_b5JA" elementId="eu.etaxonomy.taxeditor.editor.popupmenu.factualDataView">
<visibleWhen xsi:type="ui:CoreExpression" xmi:id="_bMfdYIG5EeehlNPrK_b5JA" coreExpressionId="isCdmStoreConnected"/>
<children xsi:type="menu:HandledMenuItem" xmi:id="_jvmnkIGxEeehlNPrK_b5JA" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.factualData.addDescription" label="%command.label.27" command="_gE3lwIGyEeehlNPrK_b5JA"/>
- <children xsi:type="menu:DynamicMenuContribution" xmi:id="_2t3BgIHWEeehlNPrK_b5JA" elementId="eu.etaxonomy.taxeditor.editor.view.descriptive.e4.handler.DynamicFeatureMenuE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.descriptive.e4.handler.DynamicFeatureMenuE4"/>
+ <children xsi:type="menu:HandledMenuItem" xmi:id="_Im49wLy2EeioE565ihOF2g" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.newfactualdatasetwithsource" label="%handledmenuitem.label.18" command="_Z51sQLy2EeioE565ihOF2g"/>
<children xsi:type="menu:MenuSeparator" xmi:id="_ij_wEIGxEeehlNPrK_b5JA" elementId="eu.etaxonomy.taxeditor.editor.menuseparator.8"/>
+ <children xsi:type="menu:HandledMenuItem" xmi:id="_m00sEIGxEeehlNPrK_b5JA" elementId="eu.etaxonomy.taxeditor.editor.factualData.moveDescriptionElement" label="%command.label.29" command="_QJzBcIG4EeehlNPrK_b5JA"/>
<children xsi:type="menu:HandledMenuItem" xmi:id="_mgmvkIGxEeehlNPrK_b5JA" elementId="eu.etaxonomy.taxeditor.editor.factualData.moveDescriptionToTaxon" label="%command.label.28" command="_Al6c0IG4EeehlNPrK_b5JA">
<visibleWhen xsi:type="ui:CoreExpression" xmi:id="_BZrDwIGyEeehlNPrK_b5JA" coreExpressionId="isDescription"/>
</children>
- <children xsi:type="menu:HandledMenuItem" xmi:id="_m00sEIGxEeehlNPrK_b5JA" elementId="eu.etaxonomy.taxeditor.editor.factualData.moveDescriptionElement" label="%command.label.29" command="_QJzBcIG4EeehlNPrK_b5JA"/>
+ <children xsi:type="menu:DynamicMenuContribution" xmi:id="_2t3BgIHWEeehlNPrK_b5JA" elementId="eu.etaxonomy.taxeditor.editor.view.descriptive.e4.handler.DynamicFeatureMenuE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.descriptive.e4.handler.DynamicFeatureMenuE4"/>
<children xsi:type="menu:MenuSeparator" xmi:id="_nRINkIGxEeehlNPrK_b5JA" elementId="eu.etaxonomy.taxeditor.editor.menuseparator.9"/>
<children xsi:type="menu:DynamicMenuContribution" xmi:id="_4KNqkIGxEeehlNPrK_b5JA" elementId="eu.etaxonomy.taxeditor.editor.factual.dynamicmenucontribution.cdmViewer" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.view.CdmViewerContextMenuE4"/>
<children xsi:type="menu:MenuSeparator" xmi:id="_pOAxAIGxEeehlNPrK_b5JA" elementId="eu.etaxonomy.taxeditor.editor.menuseparator.10"/>
<children xsi:type="menu:HandledMenuItem" xmi:id="_TGK04OPBEeeIH8IplZ0cuA" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.characterMatrix.export" label="%handledmenuitem.label.12" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/export.gif" command="_YeWagOPBEeeIH8IplZ0cuA"/>
</menus>
<menus xsi:type="menu:PopupMenu" xmi:id="__10yYLKREeikjKoOnLFm2w" elementId="eu.etaxonomy.taxeditor.editor.popupmenu.charactermatrix">
- <children xsi:type="menu:HandledMenuItem" xmi:id="_AyHbgLKSEeikjKoOnLFm2w" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.createdefaultdescription" label="Create default description" command="_ZHC3oLKVEeikjKoOnLFm2w"/>
- <children xsi:type="menu:HandledMenuItem" xmi:id="_DYlHcLKSEeikjKoOnLFm2w" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.createliteraturedescription" label="Create literature description" command="_fkPkkLKVEeikjKoOnLFm2w"/>
+ <children xsi:type="menu:HandledMenuItem" xmi:id="_AyHbgLKSEeikjKoOnLFm2w" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.createdefaultdescription" label="%handledmenuitem.label.19" command="_ZHC3oLKVEeikjKoOnLFm2w"/>
+ <children xsi:type="menu:HandledMenuItem" xmi:id="_DYlHcLKSEeikjKoOnLFm2w" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.createliteraturedescription" label="%handledmenuitem.label.20" command="_fkPkkLKVEeikjKoOnLFm2w"/>
</menus>
</elements>
<elements xsi:type="basic:PartDescriptor" xmi:id="_XcQMEN8mEee9zP45RW4C3A" elementId="eu.etaxonomy.taxeditor.editor.descriptiveDataSet.DescriptiveDataSetNavigator" label="%partdescriptor.label.5" closeable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.descriptiveDataSet.DescriptiveDataSetNavigator">
<elements xsi:type="commands:Command" xmi:id="_c3wW8FeBEeiJAP3GTkE0aQ" elementId="eu.etaxonomy.taxeditor.editor.command.descriptivedataseteditor.removeTaxon" commandName="%command.commandname.21"/>
<elements xsi:type="commands:Command" xmi:id="_HSKdYFgXEeiQk_eTMvMviQ" elementId="eu.etaxonomy.taxeditor.editor.name.createProParteSynonym" commandName="%command.name.60"/>
<elements xsi:type="commands:Command" xmi:id="_BgX6gFj_EeiQk_eTMvMviQ" elementId="eu.etaxonomy.taxeditor.editor.command.changeToProParteSynonym" commandName="%command.name.61"/>
- <elements xsi:type="commands:Command" xmi:id="_ZHC3oLKVEeikjKoOnLFm2w" elementId="eu.etaxonomy.taxeditor.editor.charactermatrix.command.createDefaultTaxonDescription" commandName="Create default taxon description"/>
- <elements xsi:type="commands:Command" xmi:id="_fkPkkLKVEeikjKoOnLFm2w" elementId="eu.etaxonomy.taxeditor.editor.charactermatrix.command.createLiteratureTaxonDescription" commandName="Create literature taxon description"/>
+ <elements xsi:type="commands:Command" xmi:id="_ZHC3oLKVEeikjKoOnLFm2w" elementId="eu.etaxonomy.taxeditor.editor.charactermatrix.command.createDefaultTaxonDescription" commandName="%command.commandname.22"/>
+ <elements xsi:type="commands:Command" xmi:id="_fkPkkLKVEeikjKoOnLFm2w" elementId="eu.etaxonomy.taxeditor.editor.charactermatrix.command.createLiteratureTaxonDescription" commandName="%command.commandname.23"/>
+ <elements xsi:type="commands:Command" xmi:id="_Z51sQLy2EeioE565ihOF2g" elementId="eu.etaxonomy.taxeditor.editor.view.descriptive.command.adddescriptionWithSource" commandName="%command.commandname.24"/>
</fragments>
<fragments xsi:type="fragment:StringModelFragment" xmi:id="_pZmusEalEeeXMc6kSYO7Xg" featurename="children" parentElementId="eu.etaxonomy.taxeditor.menu.showView" positionInList="after:eu.etaxonomy.taxeditor.workbench.menuseparator.navigation">
<elements xsi:type="menu:HandledMenuItem" xmi:id="_FPIHQKNwEeebGZ23ERGMGw" elementId="eu.etaxonomy.taxeditor.editor.showViewMenu.conceptGraph" label="%view.name.3" iconURI="" tooltip="%view.name.3" command="_WPjpoDSnEeek0dKsFNy--Q">
}
}
- /** {@inheritDoc} */
protected CreateTaxonDescriptionOperation createTaxonOperation(String eventLabel, Taxon taxon, IPostOperationEnabled postOperationEnabled) {
- return new CreateTaxonDescriptionOperation(eventLabel, EditorUtil.getUndoContext(), taxon, postOperationEnabled);
+ return new CreateTaxonDescriptionOperation(eventLabel, EditorUtil.getUndoContext(), taxon, null, postOperationEnabled);
}
}
--- /dev/null
+/**
+* Copyright (C) 2018 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.editor.view.descriptive.e4.handler;
+
+import javax.inject.Named;
+
+import org.eclipse.e4.core.di.annotations.Execute;
+import org.eclipse.e4.ui.di.UISynchronize;
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
+import org.eclipse.e4.ui.model.application.ui.menu.MMenuItem;
+import org.eclipse.e4.ui.services.IServiceConstants;
+import org.eclipse.jface.viewers.TreeNode;
+import org.eclipse.swt.widgets.Shell;
+
+import eu.etaxonomy.cdm.model.common.IdentifiableSource;
+import eu.etaxonomy.cdm.model.common.OriginalSourceType;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
+import eu.etaxonomy.cdm.model.reference.Reference;
+import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.cdm.model.taxon.TaxonBase;
+import eu.etaxonomy.taxeditor.editor.EditorUtil;
+import eu.etaxonomy.taxeditor.editor.view.descriptive.e4.FactualDataPartE4;
+import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.CreateSpecimenDescriptionOperation;
+import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.CreateTaxonDescriptionOperation;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.taxeditor.operation.AbstractDescriptionPostOperation;
+import eu.etaxonomy.taxeditor.ui.dialog.selection.ReferenceSelectionDialog;
+
+/**
+ * @author pplitzner
+ * @since Sep 20, 2018
+ *
+ */
+public class CreateDescriptionWithSourceHandler {
+ @Execute
+ public void execute(@Named(IServiceConstants.ACTIVE_PART) MPart activePart, MMenuItem menuItem,
+ UISynchronize sync, @Named(IServiceConstants.ACTIVE_SHELL) Shell shell) {
+
+ Reference reference = ReferenceSelectionDialog.select(shell, null);
+
+ FactualDataPartE4 factualDataPart = (FactualDataPartE4) activePart.getObject();
+
+ AbstractDescriptionPostOperation operation = null;
+ Object viewerInput = factualDataPart.getViewer().getInput();
+ if (viewerInput instanceof TreeNode) {
+ viewerInput = ((TreeNode) viewerInput).getValue();
+ }
+ if (viewerInput instanceof SpecimenOrObservationBase<?>) {
+ operation = new CreateSpecimenDescriptionOperation(menuItem.getLocalizedLabel(),
+ EditorUtil.getUndoContext(), (SpecimenOrObservationBase<?>) viewerInput, factualDataPart);
+ AbstractUtility.executeOperation(operation, sync);
+ }
+ if (viewerInput instanceof TaxonBase) {
+ operation = new CreateTaxonDescriptionOperation(menuItem.getLocalizedLabel(), EditorUtil.getUndoContext(),
+ (Taxon) viewerInput,
+ IdentifiableSource.NewInstance(OriginalSourceType.Unknown, null, null, reference, null), factualDataPart);
+ AbstractUtility.executeOperation(operation, sync);
+ }
+ }
+}
*/
public class CreateSpecimenDescriptionOperation extends AbstractDescriptionPostOperation<SpecimenOrObservationBase, DescriptionBase> {
- /**
- * @param label
- * @param undoContext
- * @param describable
- * @param postOperationEnabled
- */
public CreateSpecimenDescriptionOperation(String label, IUndoContext undoContext, SpecimenOrObservationBase<?> describable, IPostOperationEnabled postOperationEnabled) {
- super(label, undoContext, describable, postOperationEnabled);
+ super(label, undoContext, describable, null, postOperationEnabled);
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.operation.AbstractDescriptionPostOperation#initDescription()
- */
@Override
protected void initDescription() {
description = SpecimenDescription.NewInstance(element);
import org.eclipse.core.commands.operations.IUndoContext;
+import eu.etaxonomy.cdm.model.common.IdentifiableSource;
import eu.etaxonomy.cdm.model.description.TaxonDescription;
import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.taxeditor.operation.AbstractDescriptionPostOperation;
*/
public class CreateTaxonDescriptionOperation extends AbstractDescriptionPostOperation<Taxon, TaxonDescription> {
- /**
- * @param label
- * @param undoContext
- * @param describable
- * @param postOperationEnabled
- * @param isImageGallery
- */
- public CreateTaxonDescriptionOperation(String label, IUndoContext undoContext, Taxon describable, IPostOperationEnabled postOperationEnabled) {
- super(label, undoContext, describable, postOperationEnabled, false);
+ public CreateTaxonDescriptionOperation(String label, IUndoContext undoContext, Taxon describable,
+ IdentifiableSource source, IPostOperationEnabled postOperationEnabled) {
+ super(label, undoContext, describable, source, postOperationEnabled, false);
}
- /**
- * @param label
- * @param undoContext
- * @param describable
- * @param postOperationEnabled
- * @param isImageGallery
- */
- public CreateTaxonDescriptionOperation(String label, IUndoContext undoContext, Taxon describable, IPostOperationEnabled postOperationEnabled, boolean isImageGallery) {
- super(label, undoContext, describable, postOperationEnabled, isImageGallery);
+ public CreateTaxonDescriptionOperation(String label, IUndoContext undoContext, Taxon describable,
+ IdentifiableSource source, IPostOperationEnabled postOperationEnabled, boolean isImageGallery) {
+ super(label, undoContext, describable, source, postOperationEnabled, isImageGallery);
}
@Override
Taxon taxon = HibernateProxyHelper.deproxy(viewerInput, Taxon.class);
AbstractPostOperation<?> operation = new CreateTaxonDescriptionOperation(menuItem.getLocalizedLabel(),
- EditorUtil.getUndoContext(), taxon, mediaView, true);
+ EditorUtil.getUndoContext(), taxon, null, mediaView, true);
AbstractUtility.executeOperation(operation, sync);
}
*/\r
public CreateTaxonUseOperation(String label, IUndoContext undoContext,\r
Taxon taxon, IPostOperationEnabled postOperationEnabled, boolean isImageGallery) {\r
- super(label, undoContext, taxon, postOperationEnabled);\r
+ super(label, undoContext, taxon, null, postOperationEnabled);\r
}\r
\r
\r
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
+import eu.etaxonomy.cdm.model.common.IdentifiableSource;
import eu.etaxonomy.cdm.model.description.DescriptionBase;
import eu.etaxonomy.cdm.model.description.Feature;
import eu.etaxonomy.cdm.model.description.IDescribable;
public abstract class AbstractDescriptionPostOperation<T extends IDescribable, D extends DescriptionBase> extends AbstractPostOperation<T> {
protected D description;
+ protected IdentifiableSource source;
private final boolean isImageGallery;
- /**
- *
- */
public AbstractDescriptionPostOperation(String label, IUndoContext undoContext,
- T describable, IPostOperationEnabled postOperationEnabled) {
- this(label, undoContext, describable, postOperationEnabled, false);
+ T describable, IdentifiableSource source, IPostOperationEnabled postOperationEnabled) {
+ this(label, undoContext, describable, source, postOperationEnabled, false);
}
- /**
- *
- */
public AbstractDescriptionPostOperation(String label, IUndoContext undoContext,
- T describable, IPostOperationEnabled postOperationEnabled, boolean isImageGallery) {
+ T describable, IdentifiableSource source, IPostOperationEnabled postOperationEnabled, boolean isImageGallery) {
super(label, undoContext, describable, postOperationEnabled);
this.isImageGallery = isImageGallery;
+ this.source = source;
}
- /** {@inheritDoc} */
@Override
public IStatus execute(IProgressMonitor monitor, IAdaptable info)
throws ExecutionException {
initDescription();
+ if(source!=null){
+ description.addSource(source);
+ }
monitor.worked(20);
if(isImageGallery){
*/
protected abstract void initDescription();
- /** {@inheritDoc} */
@Override
public IStatus redo(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
return postExecute(description);
}
- /** {@inheritDoc} */
@Override
public IStatus undo(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {