Project

General

Profile

« Previous | Next » 

Revision d9fbbe86

Added by Patrick Plitzner over 5 years ago

ref #7775 Add option "Create new factual data set with sources"

View differences:

eu.etaxonomy.taxeditor.editor/OSGI-INF/l10n/plugin.properties
249 249
handledmenuitem.tooltip.4 = Character Editor
250 250
handledmenuitem.label.17 = Remove Taxon
251 251
command.commandname.21 = Remove taxon
252

  
253
handledmenuitem.label.18 = New Factual Data Set with source
254
handledmenuitem.label.19 = Create default description
255
handledmenuitem.label.20 = Create literature description
256
command.commandname.22 = Create default taxon description
257
command.commandname.23 = Create literature taxon description
258
command.commandname.24 = New description with source
eu.etaxonomy.taxeditor.editor/fragment.e4xmi
103 103
      <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"/>
104 104
      <handlers xmi:id="_Te6qAIy3EeeQaL4TL8oz7Q" elementId="eu.etaxonomy.taxeditor.editor.factualData.saveHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.workbench/eu.etaxonomy.taxeditor.workbench.SaveHandler" command="_majwMEaQEeeXMc6kSYO7Xg"/>
105 105
      <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"/>
106
      <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"/>
106 107
      <menus xsi:type="menu:PopupMenu" xmi:id="_HxxDt4GxEeehlNPrK_b5JA" elementId="eu.etaxonomy.taxeditor.editor.popupmenu.factualDataView">
107 108
        <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_bMfdYIG5EeehlNPrK_b5JA" coreExpressionId="isCdmStoreConnected"/>
108 109
        <children xsi:type="menu:HandledMenuItem" xmi:id="_jvmnkIGxEeehlNPrK_b5JA" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.factualData.addDescription" label="%command.label.27" command="_gE3lwIGyEeehlNPrK_b5JA"/>
109
        <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"/>
110
        <children xsi:type="menu:HandledMenuItem" xmi:id="_Im49wLy2EeioE565ihOF2g" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.newfactualdatasetwithsource" label="%handledmenuitem.label.18" command="_Z51sQLy2EeioE565ihOF2g"/>
110 111
        <children xsi:type="menu:MenuSeparator" xmi:id="_ij_wEIGxEeehlNPrK_b5JA" elementId="eu.etaxonomy.taxeditor.editor.menuseparator.8"/>
112
        <children xsi:type="menu:HandledMenuItem" xmi:id="_m00sEIGxEeehlNPrK_b5JA" elementId="eu.etaxonomy.taxeditor.editor.factualData.moveDescriptionElement" label="%command.label.29" command="_QJzBcIG4EeehlNPrK_b5JA"/>
111 113
        <children xsi:type="menu:HandledMenuItem" xmi:id="_mgmvkIGxEeehlNPrK_b5JA" elementId="eu.etaxonomy.taxeditor.editor.factualData.moveDescriptionToTaxon" label="%command.label.28" command="_Al6c0IG4EeehlNPrK_b5JA">
112 114
          <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_BZrDwIGyEeehlNPrK_b5JA" coreExpressionId="isDescription"/>
113 115
        </children>
114
        <children xsi:type="menu:HandledMenuItem" xmi:id="_m00sEIGxEeehlNPrK_b5JA" elementId="eu.etaxonomy.taxeditor.editor.factualData.moveDescriptionElement" label="%command.label.29" command="_QJzBcIG4EeehlNPrK_b5JA"/>
116
        <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"/>
115 117
        <children xsi:type="menu:MenuSeparator" xmi:id="_nRINkIGxEeehlNPrK_b5JA" elementId="eu.etaxonomy.taxeditor.editor.menuseparator.9"/>
116 118
        <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"/>
117 119
        <children xsi:type="menu:MenuSeparator" xmi:id="_pOAxAIGxEeehlNPrK_b5JA" elementId="eu.etaxonomy.taxeditor.editor.menuseparator.10"/>
......
276 278
        <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"/>
277 279
      </menus>
278 280
      <menus xsi:type="menu:PopupMenu" xmi:id="__10yYLKREeikjKoOnLFm2w" elementId="eu.etaxonomy.taxeditor.editor.popupmenu.charactermatrix">
279
        <children xsi:type="menu:HandledMenuItem" xmi:id="_AyHbgLKSEeikjKoOnLFm2w" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.createdefaultdescription" label="Create default description" command="_ZHC3oLKVEeikjKoOnLFm2w"/>
280
        <children xsi:type="menu:HandledMenuItem" xmi:id="_DYlHcLKSEeikjKoOnLFm2w" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.createliteraturedescription" label="Create literature description" command="_fkPkkLKVEeikjKoOnLFm2w"/>
281
        <children xsi:type="menu:HandledMenuItem" xmi:id="_AyHbgLKSEeikjKoOnLFm2w" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.createdefaultdescription" label="%handledmenuitem.label.19" command="_ZHC3oLKVEeikjKoOnLFm2w"/>
282
        <children xsi:type="menu:HandledMenuItem" xmi:id="_DYlHcLKSEeikjKoOnLFm2w" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.createliteraturedescription" label="%handledmenuitem.label.20" command="_fkPkkLKVEeikjKoOnLFm2w"/>
281 283
      </menus>
282 284
    </elements>
283 285
    <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">
......
375 377
    <elements xsi:type="commands:Command" xmi:id="_c3wW8FeBEeiJAP3GTkE0aQ" elementId="eu.etaxonomy.taxeditor.editor.command.descriptivedataseteditor.removeTaxon" commandName="%command.commandname.21"/>
376 378
    <elements xsi:type="commands:Command" xmi:id="_HSKdYFgXEeiQk_eTMvMviQ" elementId="eu.etaxonomy.taxeditor.editor.name.createProParteSynonym" commandName="%command.name.60"/>
377 379
    <elements xsi:type="commands:Command" xmi:id="_BgX6gFj_EeiQk_eTMvMviQ" elementId="eu.etaxonomy.taxeditor.editor.command.changeToProParteSynonym" commandName="%command.name.61"/>
378
    <elements xsi:type="commands:Command" xmi:id="_ZHC3oLKVEeikjKoOnLFm2w" elementId="eu.etaxonomy.taxeditor.editor.charactermatrix.command.createDefaultTaxonDescription" commandName="Create default taxon description"/>
379
    <elements xsi:type="commands:Command" xmi:id="_fkPkkLKVEeikjKoOnLFm2w" elementId="eu.etaxonomy.taxeditor.editor.charactermatrix.command.createLiteratureTaxonDescription" commandName="Create literature taxon description"/>
380
    <elements xsi:type="commands:Command" xmi:id="_ZHC3oLKVEeikjKoOnLFm2w" elementId="eu.etaxonomy.taxeditor.editor.charactermatrix.command.createDefaultTaxonDescription" commandName="%command.commandname.22"/>
381
    <elements xsi:type="commands:Command" xmi:id="_fkPkkLKVEeikjKoOnLFm2w" elementId="eu.etaxonomy.taxeditor.editor.charactermatrix.command.createLiteratureTaxonDescription" commandName="%command.commandname.23"/>
382
    <elements xsi:type="commands:Command" xmi:id="_Z51sQLy2EeioE565ihOF2g" elementId="eu.etaxonomy.taxeditor.editor.view.descriptive.command.adddescriptionWithSource" commandName="%command.commandname.24"/>
380 383
  </fragments>
381 384
  <fragments xsi:type="fragment:StringModelFragment" xmi:id="_pZmusEalEeeXMc6kSYO7Xg" featurename="children" parentElementId="eu.etaxonomy.taxeditor.menu.showView" positionInList="after:eu.etaxonomy.taxeditor.workbench.menuseparator.navigation">
382 385
    <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">
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/e4/handler/CreateDescriptionHandlerE4.java
58 58
        }
59 59
	}
60 60

  
61
	   /** {@inheritDoc} */
62 61
    protected CreateTaxonDescriptionOperation createTaxonOperation(String eventLabel, Taxon taxon, IPostOperationEnabled postOperationEnabled) {
63
        return new CreateTaxonDescriptionOperation(eventLabel, EditorUtil.getUndoContext(), taxon, postOperationEnabled);
62
        return new CreateTaxonDescriptionOperation(eventLabel, EditorUtil.getUndoContext(), taxon, null, postOperationEnabled);
64 63
    }
65 64

  
66 65
}
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/e4/handler/CreateDescriptionWithSourceHandler.java
1
/**
2
* Copyright (C) 2018 EDIT
3
* European Distributed Institute of Taxonomy
4
* http://www.e-taxonomy.eu
5
*
6
* The contents of this file are subject to the Mozilla Public License Version 1.1
7
* See LICENSE.TXT at the top of this package for the full license terms.
8
*/
9
package eu.etaxonomy.taxeditor.editor.view.descriptive.e4.handler;
10

  
11
import javax.inject.Named;
12

  
13
import org.eclipse.e4.core.di.annotations.Execute;
14
import org.eclipse.e4.ui.di.UISynchronize;
15
import org.eclipse.e4.ui.model.application.ui.basic.MPart;
16
import org.eclipse.e4.ui.model.application.ui.menu.MMenuItem;
17
import org.eclipse.e4.ui.services.IServiceConstants;
18
import org.eclipse.jface.viewers.TreeNode;
19
import org.eclipse.swt.widgets.Shell;
20

  
21
import eu.etaxonomy.cdm.model.common.IdentifiableSource;
22
import eu.etaxonomy.cdm.model.common.OriginalSourceType;
23
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
24
import eu.etaxonomy.cdm.model.reference.Reference;
25
import eu.etaxonomy.cdm.model.taxon.Taxon;
26
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
27
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
import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.CreateTaxonDescriptionOperation;
31
import eu.etaxonomy.taxeditor.model.AbstractUtility;
32
import eu.etaxonomy.taxeditor.operation.AbstractDescriptionPostOperation;
33
import eu.etaxonomy.taxeditor.ui.dialog.selection.ReferenceSelectionDialog;
34

  
35
/**
36
 * @author pplitzner
37
 * @since Sep 20, 2018
38
 *
39
 */
40
public class CreateDescriptionWithSourceHandler {
41
    @Execute
42
    public void execute(@Named(IServiceConstants.ACTIVE_PART) MPart activePart, MMenuItem menuItem,
43
            UISynchronize sync, @Named(IServiceConstants.ACTIVE_SHELL) Shell shell) {
44

  
45
        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
        }
65
    }
66
}
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/operation/CreateSpecimenDescriptionOperation.java
23 23
 */
24 24
public class CreateSpecimenDescriptionOperation extends AbstractDescriptionPostOperation<SpecimenOrObservationBase, DescriptionBase> {
25 25

  
26
    /**
27
     * @param label
28
     * @param undoContext
29
     * @param describable
30
     * @param postOperationEnabled
31
     */
32 26
    public CreateSpecimenDescriptionOperation(String label, IUndoContext undoContext, SpecimenOrObservationBase<?> describable, IPostOperationEnabled postOperationEnabled) {
33
        super(label, undoContext, describable, postOperationEnabled);
27
        super(label, undoContext, describable, null, postOperationEnabled);
34 28
    }
35 29

  
36
    /* (non-Javadoc)
37
     * @see eu.etaxonomy.taxeditor.operation.AbstractDescriptionPostOperation#initDescription()
38
     */
39 30
    @Override
40 31
    protected void initDescription() {
41 32
        description = SpecimenDescription.NewInstance(element);
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/operation/CreateTaxonDescriptionOperation.java
10 10

  
11 11
import org.eclipse.core.commands.operations.IUndoContext;
12 12

  
13
import eu.etaxonomy.cdm.model.common.IdentifiableSource;
13 14
import eu.etaxonomy.cdm.model.description.TaxonDescription;
14 15
import eu.etaxonomy.cdm.model.taxon.Taxon;
15 16
import eu.etaxonomy.taxeditor.operation.AbstractDescriptionPostOperation;
......
22 23
 */
23 24
public class CreateTaxonDescriptionOperation extends AbstractDescriptionPostOperation<Taxon, TaxonDescription> {
24 25

  
25
    /**
26
     * @param label
27
     * @param undoContext
28
     * @param describable
29
     * @param postOperationEnabled
30
     * @param isImageGallery
31
     */
32
    public CreateTaxonDescriptionOperation(String label, IUndoContext undoContext, Taxon describable, IPostOperationEnabled postOperationEnabled) {
33
        super(label, undoContext, describable, postOperationEnabled, false);
26
    public CreateTaxonDescriptionOperation(String label, IUndoContext undoContext, Taxon describable,
27
            IdentifiableSource source, IPostOperationEnabled postOperationEnabled) {
28
        super(label, undoContext, describable, source, postOperationEnabled, false);
34 29
    }
35 30

  
36
    /**
37
     * @param label
38
     * @param undoContext
39
     * @param describable
40
     * @param postOperationEnabled
41
     * @param isImageGallery
42
     */
43
    public CreateTaxonDescriptionOperation(String label, IUndoContext undoContext, Taxon describable, IPostOperationEnabled postOperationEnabled, boolean isImageGallery) {
44
        super(label, undoContext, describable, postOperationEnabled, isImageGallery);
31
    public CreateTaxonDescriptionOperation(String label, IUndoContext undoContext, Taxon describable,
32
            IdentifiableSource source, IPostOperationEnabled postOperationEnabled, boolean isImageGallery) {
33
        super(label, undoContext, describable, source, postOperationEnabled, isImageGallery);
45 34
    }
46 35

  
47 36
    @Override
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/handler/AddImageGalleryHandler.java
44 44
                Taxon taxon = HibernateProxyHelper.deproxy(viewerInput, Taxon.class);
45 45

  
46 46
                AbstractPostOperation<?> operation = new CreateTaxonDescriptionOperation(menuItem.getLocalizedLabel(),
47
                        EditorUtil.getUndoContext(), taxon, mediaView, true);
47
                        EditorUtil.getUndoContext(), taxon, null, mediaView, true);
48 48

  
49 49
                AbstractUtility.executeOperation(operation, sync);
50 50
            }
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/uses/operation/CreateTaxonUseOperation.java
55 55
	 */
56 56
	public CreateTaxonUseOperation(String label, IUndoContext undoContext,
57 57
			Taxon taxon, IPostOperationEnabled postOperationEnabled, boolean isImageGallery) {
58
		super(label, undoContext, taxon, postOperationEnabled);
58
		super(label, undoContext, taxon, null, postOperationEnabled);
59 59
	}
60 60

  
61 61

  
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/operation/AbstractDescriptionPostOperation.java
14 14
import org.eclipse.core.runtime.IProgressMonitor;
15 15
import org.eclipse.core.runtime.IStatus;
16 16

  
17
import eu.etaxonomy.cdm.model.common.IdentifiableSource;
17 18
import eu.etaxonomy.cdm.model.description.DescriptionBase;
18 19
import eu.etaxonomy.cdm.model.description.Feature;
19 20
import eu.etaxonomy.cdm.model.description.IDescribable;
......
28 29
public abstract class AbstractDescriptionPostOperation<T extends IDescribable, D extends DescriptionBase> extends AbstractPostOperation<T> {
29 30

  
30 31
    protected D description;
32
    protected IdentifiableSource source;
31 33

  
32 34
    private final boolean isImageGallery;
33 35

  
34
    /**
35
     *
36
     */
37 36
    public AbstractDescriptionPostOperation(String label, IUndoContext undoContext,
38
            T describable, IPostOperationEnabled postOperationEnabled) {
39
        this(label, undoContext, describable, postOperationEnabled, false);
37
            T describable, IdentifiableSource source, IPostOperationEnabled postOperationEnabled) {
38
        this(label, undoContext, describable, source, postOperationEnabled, false);
40 39
    }
41 40

  
42
    /**
43
     *
44
     */
45 41
    public AbstractDescriptionPostOperation(String label, IUndoContext undoContext,
46
            T describable, IPostOperationEnabled postOperationEnabled,  boolean isImageGallery) {
42
            T describable, IdentifiableSource source, IPostOperationEnabled postOperationEnabled,  boolean isImageGallery) {
47 43
        super(label, undoContext, describable, postOperationEnabled);
48 44
        this.isImageGallery = isImageGallery;
45
        this.source = source;
49 46
    }
50 47

  
51
    /** {@inheritDoc} */
52 48
    @Override
53 49
    public IStatus execute(IProgressMonitor monitor, IAdaptable info)
54 50
            throws ExecutionException {
55 51

  
56 52
        initDescription();
53
        if(source!=null){
54
            description.addSource(source);
55
        }
57 56
        monitor.worked(20);
58 57

  
59 58
        if(isImageGallery){
......
73 72
     */
74 73
    protected abstract void initDescription();
75 74

  
76
    /** {@inheritDoc} */
77 75
    @Override
78 76
    public IStatus redo(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
79 77

  
......
82 80
    	return postExecute(description);
83 81
    }
84 82

  
85
    /** {@inheritDoc} */
86 83
    @Override
87 84
    public IStatus undo(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
88 85

  

Also available in: Unified diff