Project

General

Profile

Revision 3e157055

ID3e157055c9ae6df3b5ba1760f034061b26600ed7
Parent 6268cff8
Child 86fcba21

Added by Patrick Plitzner 5 months ago

ref #7923 Add context menu to character editor

View differences:

eu.etaxonomy.taxeditor.editor/fragment.e4xmi
7 7
  <imports xsi:type="commands:Command" xmi:id="_0WYQcL2lEeeyWfw0n8-ICQ" elementId="eu.etaxonomy.taxeditor.workbench.command.collapse"/>
8 8
  <imports xsi:type="commands:Command" xmi:id="_vDKPoL4vEeewU62zpvPllA" elementId="eu.etaxonomy.taxeditor.workbench.command.expand"/>
9 9
  <imports xsi:type="commands:Command" xmi:id="_W_4cQE3LEeiplYSgvvNXRQ" elementId="org.eclipse.ui.edit.copy"/>
10
  <imports xsi:type="commands:Command" xmi:id="_YMab4O5gEeiy4-dyP0ltdA" elementId="eu.etaxonomy.taxeditor.store.command.featureTree.copyFeature"/>
11
  <imports xsi:type="commands:Command" xmi:id="_Y2mBUO5gEeiy4-dyP0ltdA" elementId="eu.etaxonomy.taxeditor.store.command.featureTree.pasteFeature"/>
12
  <imports xsi:type="commands:Command" xmi:id="_a7aYwO5gEeiy4-dyP0ltdA" elementId="eu.etaxonomy.taxeditor.store.command.featureTree.addChildFeature"/>
13
  <imports xsi:type="commands:Command" xmi:id="_wujDAO5iEeiy4-dyP0ltdA" elementId="eu.etaxonomy.taxeditor.store.command.featureTree.addFeature"/>
10 14
  <fragments xsi:type="fragment:StringModelFragment" xmi:id="_gSpRsDQDEeeTNOFVGI4q2w" featurename="descriptors" parentElementId="xpath:/">
11 15
    <elements xsi:type="basic:PartDescriptor" xmi:id="_gSpRsTQDEeeTNOFVGI4q2w" elementId="eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView" label="%command.label.DERIVATIVE_EDITOR" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.editor/icons/derivate_view-16x16-32.png" tooltip="%command.label.DERIVATIVE_EDITOR" allowMultiple="true" category="" closeable="true" dirtyable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView">
12 16
      <tags>View</tags>
......
62 66
    </elements>
63 67
    <elements xsi:type="basic:PartDescriptor" xmi:id="_R7vxEECaEeeL5JDzMOYK6g" elementId="eu.etaxonomy.taxeditor.editor.descriptiveDataSet.CharacterEditor" label="%partdescriptor.label.1" closeable="true" dirtyable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.descriptiveDataSet.character.CharacterEditor">
64 68
      <tags>nonRestore</tags>
65
      <menus xsi:type="menu:PopupMenu" xmi:id="_cHWz8GhvEee3K4uKJljEYg" elementId="eu.etaxonomy.taxeditor.editor.popupmenu.characterEditor">
66
        <children xsi:type="menu:HandledMenuItem" xmi:id="_eDZC0GhvEee3K4uKJljEYg" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.removecharacter" label="%handledmenuitem.label.10" command="_oBEz8GhvEee3K4uKJljEYg"/>
69
      <handlers xmi:id="_A6uWsO5jEeiy4-dyP0ltdA" elementId="eu.etaxonomy.taxeditor.editor.handler.3" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.descriptiveDataSet.character.handler.AddFeatureToCharacterTreeHandler" command="_wujDAO5iEeiy4-dyP0ltdA"/>
70
      <menus xsi:type="menu:PopupMenu" xmi:id="_46lOIO5TEeiy4-dyP0ltdA" elementId="eu.etaxonomy.taxeditor.editor.popupmenu.characterEditor">
71
        <children xsi:type="menu:HandledMenuItem" xmi:id="_T5PhEO5hEeiy4-dyP0ltdA" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.addfeature" label="Add Feature" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/add.gif" command="_wujDAO5iEeiy4-dyP0ltdA"/>
72
        <children xsi:type="menu:HandledMenuItem" xmi:id="_eDsYUO5gEeiy4-dyP0ltdA" elementId="eu.etaxonomy.taxeditor.editor.charactereditor.handledmenuitem.addchildfeature" label="Add Child Feature" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/add.gif" command="_a7aYwO5gEeiy4-dyP0ltdA"/>
73
        <children xsi:type="menu:MenuSeparator" xmi:id="_tTotQO5gEeiy4-dyP0ltdA" elementId="eu.etaxonomy.taxeditor.editor.menuseparator.27"/>
74
        <children xsi:type="menu:HandledMenuItem" xmi:id="_QquMEO5gEeiy4-dyP0ltdA" elementId="eu.etaxonomy.taxeditor.editor.charactereditor.handledmenuitem.paste" label="Paste" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/paste_edit.png" command="_Y2mBUO5gEeiy4-dyP0ltdA"/>
75
        <children xsi:type="menu:HandledMenuItem" xmi:id="_RNTUsO5gEeiy4-dyP0ltdA" elementId="eu.etaxonomy.taxeditor.editor.charactereditor.handledmenuitem.copy" label="Copy" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/copy_edit.png" command="_YMab4O5gEeiy4-dyP0ltdA"/>
76
        <children xsi:type="menu:MenuSeparator" xmi:id="_uNg7kO5gEeiy4-dyP0ltdA" elementId="eu.etaxonomy.taxeditor.editor.menuseparator.28"/>
77
        <children xsi:type="menu:HandledMenuItem" xmi:id="_F--RgO5UEeiy4-dyP0ltdA" elementId="eu.etaxonomy.taxeditor.editor.charactereditor.handledmenuitem.delete" label="Delete" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/delete.gif" command="_oBEz8GhvEee3K4uKJljEYg"/>
67 78
      </menus>
68 79
    </elements>
69 80
    <elements xsi:type="basic:PartDescriptor" xmi:id="_7GbckIDLEeeBD7P1FZoD-g" elementId="eu.etaxonomy.taxeditor.editor.view.media.e4.MediaViewPartE4" label="%view.name.1" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.editor/icons/camera-photo.png" closeable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.media.e4.MediaViewPartE4">
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/character/CharacterEditor.java
30 30
import org.eclipse.jface.viewers.ISelectionChangedListener;
31 31
import org.eclipse.jface.viewers.IStructuredSelection;
32 32
import org.eclipse.jface.viewers.SelectionChangedEvent;
33
import org.eclipse.jface.viewers.StructuredSelection;
33 34
import org.eclipse.jface.viewers.TreeSelection;
34 35
import org.eclipse.swt.SWT;
35 36
import org.eclipse.swt.custom.SashForm;
......
55 56
import eu.etaxonomy.cdm.model.description.FeatureNode;
56 57
import eu.etaxonomy.cdm.model.description.FeatureTree;
57 58
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
59
import eu.etaxonomy.taxeditor.editor.AppModelId;
58 60
import eu.etaxonomy.taxeditor.featuretree.e4.FeatureNodeDragListener;
59 61
import eu.etaxonomy.taxeditor.featuretree.e4.FeatureNodeDropAdapter;
60 62
import eu.etaxonomy.taxeditor.featuretree.e4.FeatureTreeEditorComposite;
61
import eu.etaxonomy.taxeditor.model.AbstractUtility;
63
import eu.etaxonomy.taxeditor.featuretree.e4.IFeatureTreeEditor;
62 64
import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
63 65
import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
64 66
import eu.etaxonomy.taxeditor.model.IPartContentHasSupplementalData;
65 67
import eu.etaxonomy.taxeditor.model.MessagingUtils;
66 68
import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
67
import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
68 69
import eu.etaxonomy.taxeditor.store.CdmStore;
69 70
import eu.etaxonomy.taxeditor.ui.dialog.selection.FeatureTreeSelectionDialog;
70
import eu.etaxonomy.taxeditor.workbench.part.IE4SavablePart;
71 71
import eu.etaxonomy.taxeditor.workbench.part.IE4ViewerPart;
72 72

  
73 73
/**
......
75 75
 * @date 24.05.2017
76 76
 *
77 77
 */
78
public class CharacterEditor implements ICdmEntitySessionEnabled, IConversationEnabled, ISelectionChangedListener,
79
        ModifyListener, IE4ViewerPart, IPartContentHasDetails, IPartContentHasSupplementalData, IE4SavablePart,
80
        IDirtyMarkable {
78
public class CharacterEditor implements IFeatureTreeEditor,IConversationEnabled, ISelectionChangedListener,
79
        ModifyListener, IE4ViewerPart, IPartContentHasDetails, IPartContentHasSupplementalData, IDirtyMarkable {
81 80

  
82 81
    private FeatureTreeEditorComposite characterTreeEditorComposite;
83 82
    private FeatureTreeEditorComposite propertiesTreeEditorComposite;
......
141 140
        composite_1.setLayout(gl_composite_1);
142 141

  
143 142
        propertiesTreeEditorComposite = addFeatureTreeEditor(composite_1);
144
        initFeatureTreeComposite(propertiesTreeEditorComposite, null, null);
143
        initFeatureTreeComposite(propertiesTreeEditorComposite, new CharacterDragListener(structuresTreeEditorComposite.getViewer(), propertiesTreeEditorComposite.getViewer()), null);
145 144
        propertiesTreeEditorComposite.getLabel_title().setText("Properties");
146
        //TODO: fix drag and drop
147
//        initFeatureTreeComposite(treeViewerProperties, new CharacterDragListener(treeViewerStructures.getViewer(), treeViewerProperties.getViewer()), null);
148 145

  
149 146
        Composite composite_3 = new Composite(sashForm, SWT.NONE);
150 147
        formToolkit.adapt(composite_3);
......
162 159
        characterTreeEditorComposite.getLabel_title().setText("Characters");
163 160

  
164 161
        //add context menu to character viewer//create context menu
165
        menuService.registerContextMenu(characterTreeEditorComposite.getViewer().getControl(), "eu.etaxonomy.taxeditor.editor.popupmenu.characterEditor");
162
        menuService.registerContextMenu(characterTreeEditorComposite.getViewer().getControl(),
163
                AppModelId.POPUPMENU_EU_ETAXONOMY_TAXEDITOR_EDITOR_POPUPMENU_CHARACTEREDITOR);
166 164

  
167 165
        init();
168 166
    }
......
314 312
    @Override
315 313
    public void selectionChanged(SelectionChangedEvent event) {
316 314
        //propagate selection
317
        selService.setSelection(AbstractUtility.getElementsFromSelectionChangedEvent(event));
315
        selService.setSelection(event.getSelection());
318 316
    }
319 317

  
320 318

  
......
340 338
        return (IStructuredSelection) characterTreeEditorComposite.getViewer().getSelection();
341 339
    }
342 340

  
341
    public FeatureTree getCharacterTree(){
342
        return characterTreeEditorComposite.getFeatureTree();
343
    }
344

  
343 345
    @Override
344 346
    public void refresh(){
345 347
        structuresTreeEditorComposite.getViewer().refresh();
......
397 399
        setDirty();
398 400
    }
399 401

  
402
    /**
403
     * {@inheritDoc}
404
     */
405
    @Override
406
    public boolean postOperation(Object objectAffectedByOperation) {
407
        characterTreeEditorComposite.getViewer().refresh();
408
        if(objectAffectedByOperation instanceof FeatureNode){
409
            StructuredSelection selection = new StructuredSelection(objectAffectedByOperation);
410
            characterTreeEditorComposite.getViewer().setSelection(selection);
411
        }
412
        return true;
413
    }
414

  
415
    /**
416
     * {@inheritDoc}
417
     */
418
    @Override
419
    public boolean onComplete() {
420
        return false;
421
    }
422

  
400 423
}
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/character/handler/AddFeatureToCharacterTreeHandler.java
1
/**
2
* Copyright (C) 2017 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.descriptiveDataSet.character.handler;
10

  
11
import javax.inject.Named;
12

  
13
import org.eclipse.e4.core.di.annotations.CanExecute;
14
import org.eclipse.e4.core.di.annotations.Execute;
15
import org.eclipse.e4.core.di.annotations.Optional;
16
import org.eclipse.e4.ui.di.UISynchronize;
17
import org.eclipse.e4.ui.model.application.ui.basic.MPart;
18
import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
19
import org.eclipse.e4.ui.services.IServiceConstants;
20
import org.eclipse.jface.viewers.IStructuredSelection;
21
import org.eclipse.jface.viewers.StructuredSelection;
22
import org.eclipse.swt.widgets.Shell;
23

  
24
import eu.etaxonomy.taxeditor.editor.descriptiveDataSet.character.CharacterEditor;
25
import eu.etaxonomy.taxeditor.featuretree.e4.handler.AddFeatureHandler;
26

  
27
/**
28
 * @author pplitzner
29
 * @since Jul 12, 2017
30
 *
31
 */
32
public class AddFeatureToCharacterTreeHandler extends AddFeatureHandler {
33

  
34
    @Execute
35
    @Override
36
    public void execute(@Named(IServiceConstants.ACTIVE_SHELL) Shell shell,
37
            @Named(IServiceConstants.ACTIVE_SELECTION)IStructuredSelection selection,
38
            @Named(IServiceConstants.ACTIVE_PART)MPart thisPart, UISynchronize sync) {
39
        CharacterEditor editor = (CharacterEditor) thisPart.getObject();
40
        super.execute(shell, new StructuredSelection(editor.getCharacterTree()), thisPart, sync);
41
    }
42

  
43
    @Override
44
    @CanExecute
45
    public boolean canExecute(
46
            @Optional@Named(IServiceConstants.ACTIVE_SELECTION)IStructuredSelection selection,
47
            @Named(IServiceConstants.ACTIVE_PART)MPart thisPart,
48
            MHandledMenuItem menuItem) {
49
        boolean canExecute = false;
50
        canExecute = thisPart.getObject() instanceof CharacterEditor
51
                && ((CharacterEditor) thisPart.getObject()).getCharacterTree()!=null
52
                && (selection==null || selection.isEmpty());
53
        menuItem.setVisible(canExecute);
54
        return canExecute;
55
    }
56
}
eu.etaxonomy.taxeditor.store/META-INF/MANIFEST.MF
17 17
 eu.etaxonomy.taxeditor.event,
18 18
 eu.etaxonomy.taxeditor.featuretree,
19 19
 eu.etaxonomy.taxeditor.featuretree.e4,
20
 eu.etaxonomy.taxeditor.featuretree.e4.handler,
20 21
 eu.etaxonomy.taxeditor.handler,
21 22
 eu.etaxonomy.taxeditor.handler.defaultHandler,
22 23
 eu.etaxonomy.taxeditor.handler.defaultHandler.e4,
eu.etaxonomy.taxeditor.store/fragment.e4xmi
9 9
    </elements>
10 10
    <elements xsi:type="basic:PartDescriptor" xmi:id="_J-3UEEqgEeeN-dEYnw7m3g" elementId="eu.etaxonomy.taxeditor.featuretree.e4.FeatureTreeEditor" label="%partdescriptor.label.featureTreeEditor" allowMultiple="true" closeable="true" dirtyable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.FeatureTreeEditor">
11 11
      <tags>nonRestore</tags>
12
      <handlers xmi:id="_H_c_EEq2EeeN-dEYnw7m3g" elementId="eu.etaxonomy.taxeditor.featuretree.handler.SaveHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.workbench/eu.etaxonomy.taxeditor.workbench.SaveHandler" command="_LlbAMEq2EeeN-dEYnw7m3g"/>
13
      <handlers xmi:id="_3wq0cGceEee0qLTtA2ZpVQ" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.AddFeatureHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.AddFeatureHandler" command="_oftL0GceEee0qLTtA2ZpVQ"/>
14
      <handlers xmi:id="_VSc2UGcqEee0qLTtA2ZpVQ" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.FeatureTreeExportHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.FeatureTreeExportHandler" command="_I_yx4GcqEee0qLTtA2ZpVQ"/>
15
      <handlers xmi:id="_hPTxMBezEeiXusClKZjycQ" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.AddChildFeatureHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.AddChildFeatureHandler" command="_aPYxsBezEeiXusClKZjycQ"/>
16
      <handlers xmi:id="_Bb0TwCFeEeiVXriJfxPIuA" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.RemoveFeatureTreeHandlers" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.RemoveFeatureTreeHandler" command="_3mqzkCFdEeiVXriJfxPIuA"/>
17 12
      <handlers xmi:id="_DYhGACHXEeiP8eNo0PEm1g" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.CreateFeatureTreeHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.CreateFeatureTreeHandler" command="_AJtnsCHXEeiP8eNo0PEm1g"/>
18
      <handlers xmi:id="_i-FlkNjyEeidDMMI9xTsbQ" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.CopyFeatureHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.CopyFeatureHandler" command="_cMyQ4NjyEeidDMMI9xTsbQ"/>
19
      <handlers xmi:id="_tzQ_YNjyEeidDMMI9xTsbQ" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.PasteFeatureHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.PasteFeatureHandler" command="_xDk5kNjyEeidDMMI9xTsbQ"/>
13
      <handlers xmi:id="_Bb0TwCFeEeiVXriJfxPIuA" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.RemoveFeatureTreeHandlers" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.RemoveFeatureTreeHandler" command="_3mqzkCFdEeiVXriJfxPIuA"/>
14
      <handlers xmi:id="_VSc2UGcqEee0qLTtA2ZpVQ" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.FeatureTreeExportHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.FeatureTreeExportHandler" command="_I_yx4GcqEee0qLTtA2ZpVQ"/>
15
      <handlers xmi:id="_3wq0cGceEee0qLTtA2ZpVQ" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.AddFeatureHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.AddFeatureHandler" command="_oftL0GceEee0qLTtA2ZpVQ"/>
20 16
      <menus xsi:type="menu:PopupMenu" xmi:id="__Jwh4GceEee0qLTtA2ZpVQ" elementId="eu.etaxonomy.taxeditor.store.popupmenu.featureTreeEditor">
21 17
        <children xsi:type="menu:HandledMenuItem" xmi:id="_GuuM0CHXEeiP8eNo0PEm1g" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.newfeaturetree" label="%handledmenuitem.label.1" iconURI="platform:/plugin/org.eclipse.ui/icons/full/etool16/new_wiz.png" command="_AJtnsCHXEeiP8eNo0PEm1g"/>
22 18
        <children xsi:type="menu:MenuSeparator" xmi:id="_eIB1kCHXEeiP8eNo0PEm1g" elementId="eu.etaxonomy.taxeditor.store.menuseparator.5"/>
......
175 171
    <elements xsi:type="commands:Handler" xmi:id="_4owEkMVREeiKErB3UVzQug" elementId="eu.etaxonomy.taxeditor.handler.e4.OpenDistributionEditorWizardHandlerAdminE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.handler.e4.OpenDistributionEditorWizardHandlerAdminE4" command="_Vs75kMVfEeiKErB3UVzQug"/>
176 172
    <elements xsi:type="commands:Handler" xmi:id="_VBYX4MiQEeiKErB3UVzQug" elementId="eu.etaxonomy.taxeditor.handler.e4.OpenDistributionStausWizardAdminHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.handler.e4.OpenDistributionStatusWizardAdminHandler" command="_tPtdwMiIEeiKErB3UVzQug"/>
177 173
    <elements xsi:type="commands:Handler" xmi:id="_jnQb8MrcEeiKErB3UVzQug" elementId="eu.etaxonomy.taxeditor.handler.e4.OpenCommonNameAreaWizardAdminHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.handler.e4.OpenCommonNameAreaWizardAdminHandler" command="_tRsg8MrcEeiKErB3UVzQug"/>
174
    <elements xsi:type="commands:Handler" xmi:id="_H_c_EEq2EeeN-dEYnw7m3g" elementId="eu.etaxonomy.taxeditor.featuretree.handler.SaveHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.workbench/eu.etaxonomy.taxeditor.workbench.SaveHandler" command="_LlbAMEq2EeeN-dEYnw7m3g"/>
175
    <elements xsi:type="commands:Handler" xmi:id="_hPTxMBezEeiXusClKZjycQ" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.AddChildFeatureHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.AddChildFeatureHandler" command="_aPYxsBezEeiXusClKZjycQ"/>
176
    <elements xsi:type="commands:Handler" xmi:id="_i-FlkNjyEeidDMMI9xTsbQ" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.CopyFeatureHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.CopyFeatureHandler" command="_cMyQ4NjyEeidDMMI9xTsbQ"/>
177
    <elements xsi:type="commands:Handler" xmi:id="_tzQ_YNjyEeidDMMI9xTsbQ" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.PasteFeatureHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.PasteFeatureHandler" command="_xDk5kNjyEeidDMMI9xTsbQ"/>
178 178
  </fragments>
179 179
  <fragments xsi:type="fragment:StringModelFragment" xmi:id="_qT4hgIfTEeecZ4F2Y9Z0Og" featurename="children" parentElementId="eu.etaxonomy.taxeditor.workbench.menu.window" positionInList="before:eu.etaxonomy.taxeditor.application.windowMenu.last">
180 180
    <elements xsi:type="menu:Menu" xmi:id="_LT3P8IfcEeecZ4F2Y9Z0Og" elementId="eu.etaxonomy.taxeditor.store.menu.termeditor" label="%menu.label.1">

Also available in: Unified diff

Add picture from clipboard (Maximum size: 40 MB)