Revision 362b3a0c
Added by Patrick Plitzner over 4 years ago
eu.etaxonomy.taxeditor.store/OSGI-INF/l10n/bundle.properties | ||
---|---|---|
184 | 184 |
wizard.name.23 = Excel Distribution Data Update |
185 | 185 |
wizard.name.24 = RIS Reference |
186 | 186 |
command.label.25 = Import Preferences |
187 |
partdescriptor.label.featureTreeEditor = Term Tree Editor
|
|
187 |
partdescriptor.label.featureTreeEditor = Feature Tree Editor
|
|
188 | 188 |
command.name.OPEN_REFERENCING_OBJECTS_VIEW = Open Referencing Objects View |
189 | 189 |
extension.name.1 = Store Workbench Model |
190 | 190 |
page.name.21 = Distribution Editor |
... | ... | |
284 | 284 |
page.name.104 = Distribution Data |
285 | 285 |
page.name.105 = Vocabularies and Status |
286 | 286 |
|
287 |
page.name.sources = Sources |
|
287 |
page.name.sources = Sources |
|
288 |
partdescriptor.label.4 = Character Tree Editor |
|
289 |
partdescriptor.label.5 = Structure Tree Editor |
|
290 |
partdescriptor.label.6 = Property Tree Editor |
|
291 |
handledmenuitem.label.24 = Feature |
|
292 |
handledmenuitem.label.25 = Character |
|
293 |
handledmenuitem.label.26 = Structure |
|
294 |
handledmenuitem.label.27 = Property |
eu.etaxonomy.taxeditor.store/OSGI-INF/l10n/bundle_de.properties | ||
---|---|---|
184 | 184 |
wizard.name.23 = Excel Verbreitungsdaten Update |
185 | 185 |
wizard.name.24 = RIS Referenzen |
186 | 186 |
command.label.25 = Import Pr?ferenzen |
187 |
partdescriptor.label.featureTreeEditor = Termbaum-Editor
|
|
187 |
partdescriptor.label.featureTreeEditor = Merkmalsbaum-Editor
|
|
188 | 188 |
command.name.OPEN_REFERENCING_OBJECTS_VIEW = ?ffne Referenzierende Objekte |
189 | 189 |
extension.name.1 = Store Workbench Model |
190 | 190 |
page.name.21 = Verbreitungs-Editor |
... | ... | |
284 | 284 |
page.name.104 = Verbreitungsdaten |
285 | 285 |
page.name.105 = Vokabulare und Status |
286 | 286 |
|
287 |
page.name.sources = Quellen |
|
287 |
page.name.sources = Quellen |
|
288 |
partdescriptor.label.4 = Character-Baum-Editor |
|
289 |
partdescriptor.label.5 = Struktur-Baum-Editor |
|
290 |
partdescriptor.label.6 = Property-Baum-Editor |
|
291 |
handledmenuitem.label.24 = Merkmal |
|
292 |
handledmenuitem.label.25 = Character |
|
293 |
handledmenuitem.label.26 = Struktur |
|
294 |
handledmenuitem.label.27 = Property |
eu.etaxonomy.taxeditor.store/fragment.e4xmi | ||
---|---|---|
7 | 7 |
<tags>nonRestore</tags> |
8 | 8 |
<handlers xmi:id="_gbMXAL-rEeegz7IDD8MJaw" elementId="eu.etaxonomy.taxeditor.view.sessions.InspectSessionHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.view.sessions.InspectSessionHandler" command="_dQ0swL-rEeegz7IDD8MJaw"/> |
9 | 9 |
</elements> |
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 |
<tags>nonRestore</tags> |
|
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"/> |
|
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.FeatureTreeExportWordHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.FeatureTreeExportWordHandler" 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"/> |
|
16 |
<handlers xmi:id="_DcmpgPhnEei8uPv-H2wqnw" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.FeatureTreeExportOntologyHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.FeatureTreeExportOntologyHandler" command="_xyZ4oPhmEei8uPv-H2wqnw"/> |
|
17 |
<handlers xmi:id="_LL9nkI51Eem9zru2SAuoRA" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.CreateStructureTreeHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.CreateStructureTreeHandler" command="_BjUSUI51Eem9zru2SAuoRA"/> |
|
18 |
<handlers xmi:id="_u5RGoI53Eem9zru2SAuoRA" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.CreatePropertyTreeHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.CreatePropertyTreeHandler" command="_sKucwI53Eem9zru2SAuoRA"/> |
|
19 |
<menus xsi:type="menu:PopupMenu" xmi:id="__Jwh4GceEee0qLTtA2ZpVQ" elementId="eu.etaxonomy.taxeditor.store.popupmenu.featureTreeEditor"> |
|
20 |
<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"/> |
|
21 |
<children xsi:type="menu:Menu" xmi:id="_AJdcEI54Eem9zru2SAuoRA" elementId="eu.etaxonomy.taxeditor.store.menu.new" label="%menu.label.5" iconURI="platform:/plugin/org.eclipse.ui/icons/full/etool16/new_wiz.png"> |
|
22 |
<visibleWhen xsi:type="ui:CoreExpression" xmi:id="_DuXtQI54Eem9zru2SAuoRA" coreExpressionId="isShowExperimentalFeatures"/> |
|
23 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_4jFA4I50Eem9zru2SAuoRA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.newStructureTree" label="%handledmenuitem.label.20" iconURI="platform:/plugin/org.eclipse.ui/icons/full/etool16/new_wiz.png" command="_BjUSUI51Eem9zru2SAuoRA"> |
|
24 |
<visibleWhen xsi:type="ui:CoreExpression" xmi:id="_FJyiYI54Eem9zru2SAuoRA" coreExpressionId="isShowExperimentalFeatures"/> |
|
25 |
</children> |
|
26 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_7yI2gI53Eem9zru2SAuoRA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.newPropertyTree" label="%handledmenuitem.label.21" iconURI="platform:/plugin/org.eclipse.ui/icons/full/etool16/new_wiz.png" command="_sKucwI53Eem9zru2SAuoRA"> |
|
27 |
<visibleWhen xsi:type="ui:CoreExpression" xmi:id="_FdhWsI54Eem9zru2SAuoRA" coreExpressionId="isShowExperimentalFeatures"/> |
|
28 |
</children> |
|
29 |
</children> |
|
30 |
<children xsi:type="menu:MenuSeparator" xmi:id="_eIB1kCHXEeiP8eNo0PEm1g" elementId="eu.etaxonomy.taxeditor.store.menuseparator.5"/> |
|
31 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_jr4E0Be0EeiXusClKZjycQ" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.addchildfeature" label="%handledmenuitem.label.2" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/add.gif" command="_aPYxsBezEeiXusClKZjycQ"/> |
|
32 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_eWBz0GcjEee0qLTtA2ZpVQ" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.addFeature" label="%handledmenuitem.label.3" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/add.gif" command="_oftL0GceEee0qLTtA2ZpVQ"/> |
|
33 |
<children xsi:type="menu:MenuSeparator" xmi:id="_XtPjcNjyEeidDMMI9xTsbQ" elementId="eu.etaxonomy.taxeditor.store.menuseparator.8"/> |
|
34 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_G_IOENj3EeidDMMI9xTsbQ" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.paste" label="%handledmenuitem.label.12" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/paste_edit.png" command="_xDk5kNjyEeidDMMI9xTsbQ"/> |
|
35 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_QXkWYNjyEeidDMMI9xTsbQ" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.copy" label="%handledmenuitem.label.13" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/copy_edit.png" command="_cMyQ4NjyEeidDMMI9xTsbQ"/> |
|
36 |
<children xsi:type="menu:MenuSeparator" xmi:id="_So5f0NjyEeidDMMI9xTsbQ" elementId="eu.etaxonomy.taxeditor.store.menuseparator.7"/> |
|
37 |
<children xsi:type="menu:Menu" xmi:id="_jPawUPhmEei8uPv-H2wqnw" elementId="eu.etaxonomy.taxeditor.store.menu.export" label="%menu.label.4" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/export.gif"> |
|
38 |
<visibleWhen xsi:type="ui:CoreExpression" xmi:id="_QGF5kCRZEemBIp_HwXtqoA" coreExpressionId="isFeatureTree"/> |
|
39 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_7vaEcGcqEee0qLTtA2ZpVQ" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.exportFeatureTreeOwl" label="%handledmenuitem.label.14" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/export.gif" command="_xyZ4oPhmEei8uPv-H2wqnw"> |
|
40 |
<visibleWhen xsi:type="ui:CoreExpression" xmi:id="_-91IQGcqEee0qLTtA2ZpVQ" coreExpressionId="isShowExperimentalFeatures"/> |
|
41 |
</children> |
|
42 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_qcmvwPhmEei8uPv-H2wqnw" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.exportFeatureTree" label="%handledmenuitem.label.4" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/export.gif" command="_I_yx4GcqEee0qLTtA2ZpVQ"> |
|
43 |
<visibleWhen xsi:type="ui:CoreExpression" xmi:id="_qcmvwfhmEei8uPv-H2wqnw" coreExpressionId="isShowExperimentalFeatures"/> |
|
44 |
</children> |
|
45 |
</children> |
|
46 |
<children xsi:type="menu:MenuSeparator" xmi:id="_TFRL0CFgEeiVXriJfxPIuA" elementId="eu.etaxonomy.taxeditor.store.menuseparator.0"/> |
|
47 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_Beb6QGcfEee0qLTtA2ZpVQ" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.removeFeature" label="%handledmenuitem.label.5" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/delete.gif" command="_fNBtQGcjEee0qLTtA2ZpVQ"/> |
|
48 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_pw1FICFdEeiVXriJfxPIuA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.deletefeaturetree" label="%handledmenuitem.label.6" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/delete.gif" command="_3mqzkCFdEeiVXriJfxPIuA"/> |
|
49 |
</menus> |
|
50 |
</elements> |
|
51 | 10 |
<elements xsi:type="basic:PartDescriptor" xmi:id="_zTXhUGvBEeeNmdqhxF1CnA" elementId="eu.etaxonomy.taxeditor.view.e4.details.DetailsPartE4" label="%view.name.4" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/accessories-text-editor.png" closeable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.view.e4.details.DetailsPartE4"/> |
52 | 11 |
<elements xsi:type="basic:PartDescriptor" xmi:id="_coTYkH3eEeeVL5aZ55YsWA" elementId="eu.etaxonomy.taxeditor.view.e4.supplementaldata.SupplementalDataPartE4" label="%view.name.3" closeable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.view.e4.supplementaldata.SupplementalDataPartE4"/> |
53 | 12 |
<elements xsi:type="basic:PartDescriptor" xmi:id="_eKzREIcpEee-HITNnU9cVw" elementId="eu.etaxonomy.taxeditor.view.datasource" label="%view.name" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/system-file-manager.png" closeable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.view.datasource.e4.CdmDataSourceViewPartE4"> |
... | ... | |
97 | 56 |
<elements xsi:type="basic:PartDescriptor" xmi:id="_XV6gkEbOEeiER_VRS0L7wA" elementId="eu.etaxonomy.taxeditor.view.webimport.termimport.GfBioTerminologyImportPart" label="%partdescriptor.label.1" tooltip="%partdescriptor.tooltip.1" closeable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.view.webimport.termimport.GfBioTerminologyImportPart"/> |
98 | 57 |
<elements xsi:type="basic:PartDescriptor" xmi:id="_namYwB7xEemDKJyLc5CJfQ" elementId="eu.etaxonomy.taxeditor.store.partdescriptor.termsearch" label="%partdescriptor.label.2" closeable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.view.search.facet.term.TermSearch"/> |
99 | 58 |
<elements xsi:type="basic:PartDescriptor" xmi:id="_mbegMDNMEemOn_75IU-Tvg" elementId="eu.etaxonomy.taxeditor.store.partdescriptor.occurencesearch" label="%partdescriptor.label.3" closeable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.view.search.facet.occurrence.OccurrenceSearch"/> |
59 |
<elements xsi:type="basic:PartDescriptor" xmi:id="_-y1CcMKPEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.featuretree.e4.FeatureTreeEditor" label="%partdescriptor.label.featureTreeEditor" tooltip="%partdescriptor.label.featureTreeEditor" allowMultiple="true" closeable="true" dirtyable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.FeatureTreeEditor"> |
|
60 |
<tags>nonRestore</tags> |
|
61 |
<handlers xmi:id="_-y1CccKPEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.CreateFeatureTreeHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.CreateFeatureTreeHandler" command="_AJtnsCHXEeiP8eNo0PEm1g"/> |
|
62 |
<handlers xmi:id="_-y1CcsKPEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.RemoveFeatureTreeHandlers" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.RemoveFeatureTreeHandler" command="_3mqzkCFdEeiVXriJfxPIuA"/> |
|
63 |
<handlers xmi:id="_-y1Cc8KPEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.FeatureTreeExportWordHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.FeatureTreeExportWordHandler" command="_I_yx4GcqEee0qLTtA2ZpVQ"/> |
|
64 |
<handlers xmi:id="_-y1CdMKPEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.AddFeatureHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.AddFeatureHandler" command="_oftL0GceEee0qLTtA2ZpVQ"/> |
|
65 |
<handlers xmi:id="_-y1CdcKPEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.FeatureTreeExportOntologyHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.FeatureTreeExportOntologyHandler" command="_xyZ4oPhmEei8uPv-H2wqnw"/> |
|
66 |
<handlers xmi:id="_-y1CdsKPEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.CreateStructureTreeHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.CreateStructureTreeHandler" command="_BjUSUI51Eem9zru2SAuoRA"/> |
|
67 |
<handlers xmi:id="_-y1Cd8KPEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.CreatePropertyTreeHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.CreatePropertyTreeHandler" command="_sKucwI53Eem9zru2SAuoRA"/> |
|
68 |
<menus xsi:type="menu:PopupMenu" xmi:id="_-y1CeMKPEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.popupmenu.featureTreeEditor"> |
|
69 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_-y1CecKPEem1vZq1LletZg" 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"/> |
|
70 |
<children xsi:type="menu:Menu" xmi:id="_-y1CesKPEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.menu.new" label="%menu.label.5" iconURI="platform:/plugin/org.eclipse.ui/icons/full/etool16/new_wiz.png"> |
|
71 |
<visibleWhen xsi:type="ui:CoreExpression" xmi:id="_-y1Ce8KPEem1vZq1LletZg" coreExpressionId="isShowExperimentalFeatures"/> |
|
72 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_-y1CfMKPEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.newStructureTree" label="%handledmenuitem.label.20" iconURI="platform:/plugin/org.eclipse.ui/icons/full/etool16/new_wiz.png" command="_BjUSUI51Eem9zru2SAuoRA"> |
|
73 |
<visibleWhen xsi:type="ui:CoreExpression" xmi:id="_-y1CfcKPEem1vZq1LletZg" coreExpressionId="isShowExperimentalFeatures"/> |
|
74 |
</children> |
|
75 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_-y1CfsKPEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.newPropertyTree" label="%handledmenuitem.label.21" iconURI="platform:/plugin/org.eclipse.ui/icons/full/etool16/new_wiz.png" command="_sKucwI53Eem9zru2SAuoRA"> |
|
76 |
<visibleWhen xsi:type="ui:CoreExpression" xmi:id="_-y1Cf8KPEem1vZq1LletZg" coreExpressionId="isShowExperimentalFeatures"/> |
|
77 |
</children> |
|
78 |
</children> |
|
79 |
<children xsi:type="menu:MenuSeparator" xmi:id="_-y1CgMKPEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.menuseparator.5"/> |
|
80 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_-y1CgcKPEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.addchildfeature" label="%handledmenuitem.label.2" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/add.gif" command="_aPYxsBezEeiXusClKZjycQ"/> |
|
81 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_-y1CgsKPEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.addFeature" label="%handledmenuitem.label.3" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/add.gif" command="_oftL0GceEee0qLTtA2ZpVQ"/> |
|
82 |
<children xsi:type="menu:MenuSeparator" xmi:id="_-y1Cg8KPEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.menuseparator.8"/> |
|
83 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_-y1ChMKPEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.paste" label="%handledmenuitem.label.12" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/paste_edit.png" command="_xDk5kNjyEeidDMMI9xTsbQ"/> |
|
84 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_-y1ChcKPEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.copy" label="%handledmenuitem.label.13" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/copy_edit.png" command="_cMyQ4NjyEeidDMMI9xTsbQ"/> |
|
85 |
<children xsi:type="menu:MenuSeparator" xmi:id="_-y1ChsKPEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.menuseparator.7"/> |
|
86 |
<children xsi:type="menu:Menu" xmi:id="_-y1Ch8KPEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.menu.export" label="%menu.label.4" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/export.gif"> |
|
87 |
<visibleWhen xsi:type="ui:CoreExpression" xmi:id="_-y1CiMKPEem1vZq1LletZg" coreExpressionId="isFeatureTree"/> |
|
88 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_-y1CicKPEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.exportFeatureTreeOwl" label="%handledmenuitem.label.14" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/export.gif" command="_xyZ4oPhmEei8uPv-H2wqnw"> |
|
89 |
<visibleWhen xsi:type="ui:CoreExpression" xmi:id="_-y1CisKPEem1vZq1LletZg" coreExpressionId="isShowExperimentalFeatures"/> |
|
90 |
</children> |
|
91 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_-y1Ci8KPEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.exportFeatureTree" label="%handledmenuitem.label.4" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/export.gif" command="_I_yx4GcqEee0qLTtA2ZpVQ"> |
|
92 |
<visibleWhen xsi:type="ui:CoreExpression" xmi:id="_-y1CjMKPEem1vZq1LletZg" coreExpressionId="isShowExperimentalFeatures"/> |
|
93 |
</children> |
|
94 |
</children> |
|
95 |
<children xsi:type="menu:MenuSeparator" xmi:id="_-y1CjcKPEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.menuseparator.0"/> |
|
96 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_-y1CjsKPEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.removeFeature" label="%handledmenuitem.label.5" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/delete.gif" command="_fNBtQGcjEee0qLTtA2ZpVQ"/> |
|
97 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_-y1Cj8KPEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.deletefeaturetree" label="%handledmenuitem.label.6" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/delete.gif" command="_3mqzkCFdEeiVXriJfxPIuA"/> |
|
98 |
</menus> |
|
99 |
</elements> |
|
100 |
<elements xsi:type="basic:PartDescriptor" xmi:id="_J-3UEEqgEeeN-dEYnw7m3g" elementId="eu.etaxonomy.taxeditor.featuretree.e4.CharacterTreeEditor" label="%partdescriptor.label.4" tooltip="%partdescriptor.label.4" allowMultiple="true" closeable="true" dirtyable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.CharacterTreeEditor"> |
|
101 |
<tags>nonRestore</tags> |
|
102 |
<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"/> |
|
103 |
<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"/> |
|
104 |
<handlers xmi:id="_VSc2UGcqEee0qLTtA2ZpVQ" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.FeatureTreeExportWordHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.FeatureTreeExportWordHandler" command="_I_yx4GcqEee0qLTtA2ZpVQ"/> |
|
105 |
<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"/> |
|
106 |
<handlers xmi:id="_DcmpgPhnEei8uPv-H2wqnw" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.FeatureTreeExportOntologyHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.FeatureTreeExportOntologyHandler" command="_xyZ4oPhmEei8uPv-H2wqnw"/> |
|
107 |
<handlers xmi:id="_LL9nkI51Eem9zru2SAuoRA" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.CreateStructureTreeHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.CreateStructureTreeHandler" command="_BjUSUI51Eem9zru2SAuoRA"/> |
|
108 |
<handlers xmi:id="_u5RGoI53Eem9zru2SAuoRA" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.CreatePropertyTreeHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.CreatePropertyTreeHandler" command="_sKucwI53Eem9zru2SAuoRA"/> |
|
109 |
<menus xsi:type="menu:PopupMenu" xmi:id="__Jwh4GceEee0qLTtA2ZpVQ" elementId="eu.etaxonomy.taxeditor.store.popupmenu.featureTreeEditor"> |
|
110 |
<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"/> |
|
111 |
<children xsi:type="menu:Menu" xmi:id="_AJdcEI54Eem9zru2SAuoRA" elementId="eu.etaxonomy.taxeditor.store.menu.new" label="%menu.label.5" iconURI="platform:/plugin/org.eclipse.ui/icons/full/etool16/new_wiz.png"> |
|
112 |
<visibleWhen xsi:type="ui:CoreExpression" xmi:id="_DuXtQI54Eem9zru2SAuoRA" coreExpressionId="isShowExperimentalFeatures"/> |
|
113 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_4jFA4I50Eem9zru2SAuoRA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.newStructureTree" label="%handledmenuitem.label.20" iconURI="platform:/plugin/org.eclipse.ui/icons/full/etool16/new_wiz.png" command="_BjUSUI51Eem9zru2SAuoRA"> |
|
114 |
<visibleWhen xsi:type="ui:CoreExpression" xmi:id="_FJyiYI54Eem9zru2SAuoRA" coreExpressionId="isShowExperimentalFeatures"/> |
|
115 |
</children> |
|
116 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_7yI2gI53Eem9zru2SAuoRA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.newPropertyTree" label="%handledmenuitem.label.21" iconURI="platform:/plugin/org.eclipse.ui/icons/full/etool16/new_wiz.png" command="_sKucwI53Eem9zru2SAuoRA"> |
|
117 |
<visibleWhen xsi:type="ui:CoreExpression" xmi:id="_FdhWsI54Eem9zru2SAuoRA" coreExpressionId="isShowExperimentalFeatures"/> |
|
118 |
</children> |
|
119 |
</children> |
|
120 |
<children xsi:type="menu:MenuSeparator" xmi:id="_eIB1kCHXEeiP8eNo0PEm1g" elementId="eu.etaxonomy.taxeditor.store.menuseparator.5"/> |
|
121 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_jr4E0Be0EeiXusClKZjycQ" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.addchildfeature" label="%handledmenuitem.label.2" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/add.gif" command="_aPYxsBezEeiXusClKZjycQ"/> |
|
122 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_eWBz0GcjEee0qLTtA2ZpVQ" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.addFeature" label="%handledmenuitem.label.3" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/add.gif" command="_oftL0GceEee0qLTtA2ZpVQ"/> |
|
123 |
<children xsi:type="menu:MenuSeparator" xmi:id="_XtPjcNjyEeidDMMI9xTsbQ" elementId="eu.etaxonomy.taxeditor.store.menuseparator.8"/> |
|
124 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_G_IOENj3EeidDMMI9xTsbQ" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.paste" label="%handledmenuitem.label.12" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/paste_edit.png" command="_xDk5kNjyEeidDMMI9xTsbQ"/> |
|
125 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_QXkWYNjyEeidDMMI9xTsbQ" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.copy" label="%handledmenuitem.label.13" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/copy_edit.png" command="_cMyQ4NjyEeidDMMI9xTsbQ"/> |
|
126 |
<children xsi:type="menu:MenuSeparator" xmi:id="_So5f0NjyEeidDMMI9xTsbQ" elementId="eu.etaxonomy.taxeditor.store.menuseparator.7"/> |
|
127 |
<children xsi:type="menu:Menu" xmi:id="_jPawUPhmEei8uPv-H2wqnw" elementId="eu.etaxonomy.taxeditor.store.menu.export" label="%menu.label.4" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/export.gif"> |
|
128 |
<visibleWhen xsi:type="ui:CoreExpression" xmi:id="_QGF5kCRZEemBIp_HwXtqoA" coreExpressionId="isFeatureTree"/> |
|
129 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_7vaEcGcqEee0qLTtA2ZpVQ" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.exportFeatureTreeOwl" label="%handledmenuitem.label.14" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/export.gif" command="_xyZ4oPhmEei8uPv-H2wqnw"> |
|
130 |
<visibleWhen xsi:type="ui:CoreExpression" xmi:id="_-91IQGcqEee0qLTtA2ZpVQ" coreExpressionId="isShowExperimentalFeatures"/> |
|
131 |
</children> |
|
132 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_qcmvwPhmEei8uPv-H2wqnw" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.exportFeatureTree" label="%handledmenuitem.label.4" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/export.gif" command="_I_yx4GcqEee0qLTtA2ZpVQ"> |
|
133 |
<visibleWhen xsi:type="ui:CoreExpression" xmi:id="_qcmvwfhmEei8uPv-H2wqnw" coreExpressionId="isShowExperimentalFeatures"/> |
|
134 |
</children> |
|
135 |
</children> |
|
136 |
<children xsi:type="menu:MenuSeparator" xmi:id="_TFRL0CFgEeiVXriJfxPIuA" elementId="eu.etaxonomy.taxeditor.store.menuseparator.0"/> |
|
137 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_Beb6QGcfEee0qLTtA2ZpVQ" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.removeFeature" label="%handledmenuitem.label.5" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/delete.gif" command="_fNBtQGcjEee0qLTtA2ZpVQ"/> |
|
138 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_pw1FICFdEeiVXriJfxPIuA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.deletefeaturetree" label="%handledmenuitem.label.6" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/delete.gif" command="_3mqzkCFdEeiVXriJfxPIuA"/> |
|
139 |
</menus> |
|
140 |
</elements> |
|
141 |
<elements xsi:type="basic:PartDescriptor" xmi:id="_D2OD0MKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.featuretree.e4.StructureTreeEditor" label="%partdescriptor.label.5" tooltip="%partdescriptor.label.5" allowMultiple="true" closeable="true" dirtyable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.StructureTreeEditor"> |
|
142 |
<tags>nonRestore</tags> |
|
143 |
<handlers xmi:id="_D2OD0cKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.CreateFeatureTreeHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.CreateFeatureTreeHandler" command="_AJtnsCHXEeiP8eNo0PEm1g"/> |
|
144 |
<handlers xmi:id="_D2OD0sKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.RemoveFeatureTreeHandlers" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.RemoveFeatureTreeHandler" command="_3mqzkCFdEeiVXriJfxPIuA"/> |
|
145 |
<handlers xmi:id="_D2OD08KQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.FeatureTreeExportWordHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.FeatureTreeExportWordHandler" command="_I_yx4GcqEee0qLTtA2ZpVQ"/> |
|
146 |
<handlers xmi:id="_D2OD1MKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.AddFeatureHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.AddFeatureHandler" command="_oftL0GceEee0qLTtA2ZpVQ"/> |
|
147 |
<handlers xmi:id="_D2OD1cKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.FeatureTreeExportOntologyHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.FeatureTreeExportOntologyHandler" command="_xyZ4oPhmEei8uPv-H2wqnw"/> |
|
148 |
<handlers xmi:id="_D2OD1sKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.CreateStructureTreeHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.CreateStructureTreeHandler" command="_BjUSUI51Eem9zru2SAuoRA"/> |
|
149 |
<handlers xmi:id="_D2OD18KQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.CreatePropertyTreeHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.CreatePropertyTreeHandler" command="_sKucwI53Eem9zru2SAuoRA"/> |
|
150 |
<menus xsi:type="menu:PopupMenu" xmi:id="_D2OD2MKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.popupmenu.featureTreeEditor"> |
|
151 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_D2OD2cKQEem1vZq1LletZg" 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"/> |
|
152 |
<children xsi:type="menu:Menu" xmi:id="_D2OD2sKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.menu.new" label="%menu.label.5" iconURI="platform:/plugin/org.eclipse.ui/icons/full/etool16/new_wiz.png"> |
|
153 |
<visibleWhen xsi:type="ui:CoreExpression" xmi:id="_D2OD28KQEem1vZq1LletZg" coreExpressionId="isShowExperimentalFeatures"/> |
|
154 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_D2OD3MKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.newStructureTree" label="%handledmenuitem.label.20" iconURI="platform:/plugin/org.eclipse.ui/icons/full/etool16/new_wiz.png" command="_BjUSUI51Eem9zru2SAuoRA"> |
|
155 |
<visibleWhen xsi:type="ui:CoreExpression" xmi:id="_D2OD3cKQEem1vZq1LletZg" coreExpressionId="isShowExperimentalFeatures"/> |
|
156 |
</children> |
|
157 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_D2OD3sKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.newPropertyTree" label="%handledmenuitem.label.21" iconURI="platform:/plugin/org.eclipse.ui/icons/full/etool16/new_wiz.png" command="_sKucwI53Eem9zru2SAuoRA"> |
|
158 |
<visibleWhen xsi:type="ui:CoreExpression" xmi:id="_D2OD38KQEem1vZq1LletZg" coreExpressionId="isShowExperimentalFeatures"/> |
|
159 |
</children> |
|
160 |
</children> |
|
161 |
<children xsi:type="menu:MenuSeparator" xmi:id="_D2OD4MKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.menuseparator.5"/> |
|
162 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_D2OD4cKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.addchildfeature" label="%handledmenuitem.label.2" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/add.gif" command="_aPYxsBezEeiXusClKZjycQ"/> |
|
163 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_D2OD4sKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.addFeature" label="%handledmenuitem.label.3" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/add.gif" command="_oftL0GceEee0qLTtA2ZpVQ"/> |
|
164 |
<children xsi:type="menu:MenuSeparator" xmi:id="_D2OD48KQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.menuseparator.8"/> |
|
165 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_D2OD5MKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.paste" label="%handledmenuitem.label.12" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/paste_edit.png" command="_xDk5kNjyEeidDMMI9xTsbQ"/> |
|
166 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_D2OD5cKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.copy" label="%handledmenuitem.label.13" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/copy_edit.png" command="_cMyQ4NjyEeidDMMI9xTsbQ"/> |
|
167 |
<children xsi:type="menu:MenuSeparator" xmi:id="_D2OD5sKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.menuseparator.7"/> |
|
168 |
<children xsi:type="menu:Menu" xmi:id="_D2OD58KQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.menu.export" label="%menu.label.4" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/export.gif"> |
|
169 |
<visibleWhen xsi:type="ui:CoreExpression" xmi:id="_D2OD6MKQEem1vZq1LletZg" coreExpressionId="isFeatureTree"/> |
|
170 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_D2OD6cKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.exportFeatureTreeOwl" label="%handledmenuitem.label.14" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/export.gif" command="_xyZ4oPhmEei8uPv-H2wqnw"> |
|
171 |
<visibleWhen xsi:type="ui:CoreExpression" xmi:id="_D2OD6sKQEem1vZq1LletZg" coreExpressionId="isShowExperimentalFeatures"/> |
|
172 |
</children> |
|
173 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_D2OD68KQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.exportFeatureTree" label="%handledmenuitem.label.4" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/export.gif" command="_I_yx4GcqEee0qLTtA2ZpVQ"> |
|
174 |
<visibleWhen xsi:type="ui:CoreExpression" xmi:id="_D2OD7MKQEem1vZq1LletZg" coreExpressionId="isShowExperimentalFeatures"/> |
|
175 |
</children> |
|
176 |
</children> |
|
177 |
<children xsi:type="menu:MenuSeparator" xmi:id="_D2OD7cKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.menuseparator.0"/> |
|
178 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_D2OD7sKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.removeFeature" label="%handledmenuitem.label.5" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/delete.gif" command="_fNBtQGcjEee0qLTtA2ZpVQ"/> |
|
179 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_D2OD78KQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.deletefeaturetree" label="%handledmenuitem.label.6" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/delete.gif" command="_3mqzkCFdEeiVXriJfxPIuA"/> |
|
180 |
</menus> |
|
181 |
</elements> |
|
182 |
<elements xsi:type="basic:PartDescriptor" xmi:id="_HJt04MKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.featuretree.e4.PropertyTreeEditor" label="%partdescriptor.label.6" tooltip="%partdescriptor.label.6" allowMultiple="true" closeable="true" dirtyable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.PropertyTreeEditor"> |
|
183 |
<tags>nonRestore</tags> |
|
184 |
<handlers xmi:id="_HJt04cKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.CreateFeatureTreeHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.CreateFeatureTreeHandler" command="_AJtnsCHXEeiP8eNo0PEm1g"/> |
|
185 |
<handlers xmi:id="_HJt04sKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.RemoveFeatureTreeHandlers" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.RemoveFeatureTreeHandler" command="_3mqzkCFdEeiVXriJfxPIuA"/> |
|
186 |
<handlers xmi:id="_HJt048KQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.FeatureTreeExportWordHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.FeatureTreeExportWordHandler" command="_I_yx4GcqEee0qLTtA2ZpVQ"/> |
|
187 |
<handlers xmi:id="_HJt05MKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.AddFeatureHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.AddFeatureHandler" command="_oftL0GceEee0qLTtA2ZpVQ"/> |
|
188 |
<handlers xmi:id="_HJt05cKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.FeatureTreeExportOntologyHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.FeatureTreeExportOntologyHandler" command="_xyZ4oPhmEei8uPv-H2wqnw"/> |
|
189 |
<handlers xmi:id="_HJt05sKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.CreateStructureTreeHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.CreateStructureTreeHandler" command="_BjUSUI51Eem9zru2SAuoRA"/> |
|
190 |
<handlers xmi:id="_HJt058KQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.CreatePropertyTreeHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.CreatePropertyTreeHandler" command="_sKucwI53Eem9zru2SAuoRA"/> |
|
191 |
<menus xsi:type="menu:PopupMenu" xmi:id="_HJt06MKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.popupmenu.featureTreeEditor"> |
|
192 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_HJt06cKQEem1vZq1LletZg" 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"/> |
|
193 |
<children xsi:type="menu:Menu" xmi:id="_HJt06sKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.menu.new" label="%menu.label.5" iconURI="platform:/plugin/org.eclipse.ui/icons/full/etool16/new_wiz.png"> |
|
194 |
<visibleWhen xsi:type="ui:CoreExpression" xmi:id="_HJt068KQEem1vZq1LletZg" coreExpressionId="isShowExperimentalFeatures"/> |
|
195 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_HJt07MKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.newStructureTree" label="%handledmenuitem.label.20" iconURI="platform:/plugin/org.eclipse.ui/icons/full/etool16/new_wiz.png" command="_BjUSUI51Eem9zru2SAuoRA"> |
|
196 |
<visibleWhen xsi:type="ui:CoreExpression" xmi:id="_HJt07cKQEem1vZq1LletZg" coreExpressionId="isShowExperimentalFeatures"/> |
|
197 |
</children> |
|
198 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_HJt07sKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.newPropertyTree" label="%handledmenuitem.label.21" iconURI="platform:/plugin/org.eclipse.ui/icons/full/etool16/new_wiz.png" command="_sKucwI53Eem9zru2SAuoRA"> |
|
199 |
<visibleWhen xsi:type="ui:CoreExpression" xmi:id="_HJt078KQEem1vZq1LletZg" coreExpressionId="isShowExperimentalFeatures"/> |
|
200 |
</children> |
|
201 |
</children> |
|
202 |
<children xsi:type="menu:MenuSeparator" xmi:id="_HJt08MKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.menuseparator.5"/> |
|
203 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_HJt08cKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.addchildfeature" label="%handledmenuitem.label.2" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/add.gif" command="_aPYxsBezEeiXusClKZjycQ"/> |
|
204 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_HJt08sKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.addFeature" label="%handledmenuitem.label.3" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/add.gif" command="_oftL0GceEee0qLTtA2ZpVQ"/> |
|
205 |
<children xsi:type="menu:MenuSeparator" xmi:id="_HJt088KQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.menuseparator.8"/> |
|
206 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_HJt09MKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.paste" label="%handledmenuitem.label.12" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/paste_edit.png" command="_xDk5kNjyEeidDMMI9xTsbQ"/> |
|
207 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_HJt09cKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.copy" label="%handledmenuitem.label.13" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/copy_edit.png" command="_cMyQ4NjyEeidDMMI9xTsbQ"/> |
|
208 |
<children xsi:type="menu:MenuSeparator" xmi:id="_HJt09sKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.menuseparator.7"/> |
|
209 |
<children xsi:type="menu:Menu" xmi:id="_HJt098KQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.menu.export" label="%menu.label.4" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/export.gif"> |
|
210 |
<visibleWhen xsi:type="ui:CoreExpression" xmi:id="_HJt0-MKQEem1vZq1LletZg" coreExpressionId="isFeatureTree"/> |
|
211 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_HJt0-cKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.exportFeatureTreeOwl" label="%handledmenuitem.label.14" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/export.gif" command="_xyZ4oPhmEei8uPv-H2wqnw"> |
|
212 |
<visibleWhen xsi:type="ui:CoreExpression" xmi:id="_HJt0-sKQEem1vZq1LletZg" coreExpressionId="isShowExperimentalFeatures"/> |
|
213 |
</children> |
|
214 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_HJt0-8KQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.exportFeatureTree" label="%handledmenuitem.label.4" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/export.gif" command="_I_yx4GcqEee0qLTtA2ZpVQ"> |
|
215 |
<visibleWhen xsi:type="ui:CoreExpression" xmi:id="_HJt0_MKQEem1vZq1LletZg" coreExpressionId="isShowExperimentalFeatures"/> |
|
216 |
</children> |
|
217 |
</children> |
|
218 |
<children xsi:type="menu:MenuSeparator" xmi:id="_HJt0_cKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.menuseparator.0"/> |
|
219 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_HJt0_sKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.removeFeature" label="%handledmenuitem.label.5" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/delete.gif" command="_fNBtQGcjEee0qLTtA2ZpVQ"/> |
|
220 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_HJt0_8KQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.deletefeaturetree" label="%handledmenuitem.label.6" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/delete.gif" command="_3mqzkCFdEeiVXriJfxPIuA"/> |
|
221 |
</menus> |
|
222 |
</elements> |
|
100 | 223 |
</fragments> |
101 | 224 |
<fragments xsi:type="fragment:StringModelFragment" xmi:id="_3rW8wCXaEeex9MwMOgUeWw" featurename="children" parentElementId="eu.etaxonomy.taxeditor.menu.showView" positionInList="after:eu.etaxonomy.taxeditor.workbench.menuseparator.afterConcept"> |
102 | 225 |
<elements xsi:type="menu:HandledMenuItem" xmi:id="_TlufMCaGEeeTEd_pKXBflg" elementId="eu.etaxonomy.taxeditor.store.showViewMenu.supplemental" label="%command.label.1" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/applications-office.png" tooltip="%command.label.1" command="_bnVKsCZxEeeQLpuomSmVoQ"> |
... | ... | |
220 | 343 |
<elements xsi:type="menu:Menu" xmi:id="_LT3P8IfcEeecZ4F2Y9Z0Og" elementId="eu.etaxonomy.taxeditor.store.menu.termeditor" label="%menu.label.1"> |
221 | 344 |
<children xsi:type="menu:DynamicMenuContribution" xmi:id="_HIptYIfUEeecZ4F2Y9Z0Og" elementId="eu.etaxonomy.taxeditor.store.dynamicmenucontribution.0" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.editor.definedterm.e4.DefinedTermMenuE4"/> |
222 | 345 |
<children xsi:type="menu:MenuSeparator" xmi:id="_yRINcIfqEeecZ4F2Y9Z0Og" elementId="eu.etaxonomy.taxeditor.store.menuseparator.3"/> |
223 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_rwfDkIftEeecZ4F2Y9Z0Og" elementId="eu.etaxonomy.taxeditor.store.termEditorMenu.featureTreeEditor" label="%handledmenuitem.label.8" tooltip="%handledmenuitem.tooltip.1" command="_bnVKsCZxEeeQLpuomSmVoQ"> |
|
224 |
<parameters xmi:id="_3acJQIftEeecZ4F2Y9Z0Og" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.featureTreeEditor" name="eu.etaxonomy.taxeditor.workbench.commandparameter.partName" value="eu.etaxonomy.taxeditor.featuretree.e4.FeatureTreeEditor"/> |
|
346 |
<children xsi:type="menu:Menu" xmi:id="_5wQLUMKNEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.menu.term_tree_editor" label="%handledmenuitem.label.8" tooltip="%handledmenuitem.tooltip.1"> |
|
347 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_rwfDkIftEeecZ4F2Y9Z0Og" elementId="eu.etaxonomy.taxeditor.store.termEditorMenu.featureTreeEditor" label="%handledmenuitem.label.24" tooltip="%handledmenuitem.label.24" command="_bnVKsCZxEeeQLpuomSmVoQ"> |
|
348 |
<parameters xmi:id="_3acJQIftEeecZ4F2Y9Z0Og" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.featureTreeEditor" name="eu.etaxonomy.taxeditor.workbench.commandparameter.partName" value="eu.etaxonomy.taxeditor.featuretree.e4.FeatureTreeEditor"/> |
|
349 |
</children> |
|
350 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_CLrfgMKOEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.termEditorMenu.characterTreeEditor" label="%handledmenuitem.label.25" tooltip="%handledmenuitem.label.25" command="_bnVKsCZxEeeQLpuomSmVoQ"> |
|
351 |
<parameters xmi:id="_CLrfgcKOEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.characterTreeEditor" name="eu.etaxonomy.taxeditor.workbench.commandparameter.partName" value="eu.etaxonomy.taxeditor.featuretree.e4.CharacterTreeEditor"/> |
|
352 |
</children> |
|
353 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_CUh5gMKOEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.termEditorMenu.structureTreeEditor" label="%handledmenuitem.label.26" tooltip="%handledmenuitem.label.26" command="_bnVKsCZxEeeQLpuomSmVoQ"> |
|
354 |
<parameters xmi:id="_CUh5gcKOEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.structureTreeEditor" name="eu.etaxonomy.taxeditor.workbench.commandparameter.partName" value="eu.etaxonomy.taxeditor.featuretree.e4.StructureTreeEditor"/> |
|
355 |
</children> |
|
356 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_DosQEMKOEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.termEditorMenu.propertyTreeEditor" label="%handledmenuitem.label.27" tooltip="%handledmenuitem.label.27" command="_bnVKsCZxEeeQLpuomSmVoQ"> |
|
357 |
<parameters xmi:id="_DosQEcKOEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.propertyTreeEditor" name="eu.etaxonomy.taxeditor.workbench.commandparameter.partName" value="eu.etaxonomy.taxeditor.featuretree.e4.PropertyTreeEditor"/> |
|
358 |
</children> |
|
225 | 359 |
</children> |
226 | 360 |
<children xsi:type="menu:MenuSeparator" xmi:id="_XKnM8E3IEeiplYSgvvNXRQ" elementId="eu.etaxonomy.taxeditor.store.menuseparator.6"/> |
227 | 361 |
<children xsi:type="menu:HandledMenuItem" xmi:id="_eU0zcEbOEeiER_VRS0L7wA" elementId="eu.etaxonomy.taxeditor.store.termEditorMenu.gfbioTermImport" label="%handledmenuitem.label.9" tooltip="%handledmenuitem.tooltip.2" command="_bnVKsCZxEeeQLpuomSmVoQ"> |
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/e4/DefinedTermTreeMenu.java | ||
---|---|---|
1 |
/** |
|
2 |
* Copyright (C) 2009 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 |
|
|
10 |
package eu.etaxonomy.taxeditor.editor.definedterm.e4; |
|
11 |
|
|
12 |
import java.util.ArrayList; |
|
13 |
import java.util.Collections; |
|
14 |
import java.util.Comparator; |
|
15 |
import java.util.EnumSet; |
|
16 |
import java.util.List; |
|
17 |
import java.util.Set; |
|
18 |
|
|
19 |
import org.eclipse.e4.ui.di.AboutToShow; |
|
20 |
import org.eclipse.e4.ui.model.application.commands.MCommand; |
|
21 |
import org.eclipse.e4.ui.model.application.commands.MCommandsFactory; |
|
22 |
import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem; |
|
23 |
import org.eclipse.e4.ui.model.application.ui.menu.MMenu; |
|
24 |
import org.eclipse.e4.ui.model.application.ui.menu.MMenuElement; |
|
25 |
import org.eclipse.e4.ui.model.application.ui.menu.MMenuFactory; |
|
26 |
|
|
27 |
import eu.etaxonomy.cdm.model.term.TermType; |
|
28 |
import eu.etaxonomy.taxeditor.l10n.Messages; |
|
29 |
import eu.etaxonomy.taxeditor.preference.PreferencesUtil; |
|
30 |
import eu.etaxonomy.taxeditor.store.CdmStore; |
|
31 |
|
|
32 |
/** |
|
33 |
* |
|
34 |
* Menu to dynamically generate menu (sub-menu) contribution items |
|
35 |
* for term types which when clicked open the defined term editor for the chosen term type |
|
36 |
* |
|
37 |
* @author pplitzner |
|
38 |
* @since Aug 23, 2017 |
|
39 |
* |
|
40 |
*/ |
|
41 |
public class DefinedTermTreeMenu { |
|
42 |
|
|
43 |
private static final String COMMAND_ID = "eu.etaxonomy.taxeditor.store.openDefinedTermEditor"; |
|
44 |
|
|
45 |
/** {@inheritDoc} */ |
|
46 |
@AboutToShow |
|
47 |
public void aboutToShow(List<MMenuElement> items) { |
|
48 |
|
|
49 |
if(CdmStore.isActive()){ |
|
50 |
|
|
51 |
//add Feature and NamedArea to top level |
|
52 |
addChildTermsToMenuManager(items, TermType.Feature, true); |
|
53 |
addChildTermsToMenuManager(items, TermType.NamedArea); |
|
54 |
|
|
55 |
MMenu otherMenu = MMenuFactory.INSTANCE.createMenu(); |
|
56 |
otherMenu.setLabel(Messages.DefinedTermMenu_OTHERS); |
|
57 |
items.add(otherMenu); |
|
58 |
|
|
59 |
items.add(MMenuFactory.INSTANCE.createMenuSeparator()); |
|
60 |
|
|
61 |
List<TermType> ttList = new ArrayList<TermType>(EnumSet.allOf(TermType.class)); |
|
62 |
Collections.sort(ttList,new SortByTermTypeMessage()); |
|
63 |
for (TermType tt : ttList) |
|
64 |
{ |
|
65 |
//skip Feature and NamedArea as they have already been added to top level |
|
66 |
if(tt.equals(TermType.Feature) || tt.equals(TermType.NamedArea)){ |
|
67 |
continue; |
|
68 |
} |
|
69 |
// if term type has a parent, do not add it |
|
70 |
// it will be added in the recursive call |
|
71 |
if(tt.getKindOf() == null) { |
|
72 |
addChildTermsToMenuManager(otherMenu.getChildren(), tt); |
|
73 |
} |
|
74 |
} |
|
75 |
} |
|
76 |
} |
|
77 |
|
|
78 |
private void addChildTermsToMenuManager(List<MMenuElement> items, TermType termType) { |
|
79 |
addChildTermsToMenuManager(items, termType, false); |
|
80 |
} |
|
81 |
|
|
82 |
private void addChildTermsToMenuManager(List<MMenuElement> items, TermType termType, boolean skipChildren) { |
|
83 |
|
|
84 |
//FIXME : need a better way to find out if a term type can be editable (ticket 3853) |
|
85 |
if(termType.getEmptyDefinedTermBase() != null) { |
|
86 |
Set<TermType> children = termType.getGeneralizationOf(); |
|
87 |
// term type has no children, so create menu item |
|
88 |
if(skipChildren || children.isEmpty()) { |
|
89 |
items.add(createMenuItem(termType)); |
|
90 |
} |
|
91 |
else{ |
|
92 |
MMenu subMenu = MMenuFactory.INSTANCE.createMenu(); |
|
93 |
subMenu.setLabel(termType.getMessage(PreferencesUtil.getGlobalLanguage())); |
|
94 |
items.add(subMenu); |
|
95 |
// term type has children, so create sub menu |
|
96 |
subMenu.getChildren().add(createDefaultMenuItem(termType)); |
|
97 |
|
|
98 |
subMenu.getChildren().add(MMenuFactory.INSTANCE.createMenuSeparator()); |
|
99 |
|
|
100 |
// add child items to the sub menu |
|
101 |
for(TermType tt : children) { |
|
102 |
addChildTermsToMenuManager(subMenu.getChildren(), tt); |
|
103 |
} |
|
104 |
} |
|
105 |
} |
|
106 |
|
|
107 |
} |
|
108 |
|
|
109 |
private MHandledMenuItem createMenuItem(TermType termType) { |
|
110 |
|
|
111 |
MHandledMenuItem menuItem = MMenuFactory.INSTANCE.createHandledMenuItem(); |
|
112 |
menuItem.setLabel(termType.getMessage()); |
|
113 |
MCommand mCommand = MCommandsFactory.INSTANCE.createCommand(); |
|
114 |
mCommand.setElementId(COMMAND_ID); |
|
115 |
|
|
116 |
//set params |
|
117 |
menuItem.getTransientData().put(COMMAND_ID+".termTypeUuid", termType.getUuid()); |
|
118 |
|
|
119 |
menuItem.setCommand(mCommand); |
|
120 |
return menuItem; |
|
121 |
} |
|
122 |
|
|
123 |
private MHandledMenuItem createDefaultMenuItem(TermType termType) { |
|
124 |
|
|
125 |
MHandledMenuItem menuItem = MMenuFactory.INSTANCE.createHandledMenuItem(); |
|
126 |
menuItem.setLabel(String.format(Messages.DefinedTermMenu_OTHER_S, termType.getMessage())); |
|
127 |
MCommand mCommand = MCommandsFactory.INSTANCE.createCommand(); |
|
128 |
mCommand.setElementId(COMMAND_ID); |
|
129 |
|
|
130 |
//set params |
|
131 |
menuItem.getTransientData().put(COMMAND_ID+".termTypeUuid", termType.getUuid()); |
|
132 |
|
|
133 |
menuItem.setCommand(mCommand); |
|
134 |
|
|
135 |
return menuItem; |
|
136 |
} |
|
137 |
|
|
138 |
private class SortByTermTypeMessage implements Comparator<TermType> { |
|
139 |
@Override |
|
140 |
public int compare(TermType t1, TermType t2) { |
|
141 |
if (t1.equals(t2)){ |
|
142 |
return 0; |
|
143 |
} |
|
144 |
int result = t1.getMessage().compareTo(t2.getMessage()); |
|
145 |
if (result == 0){ |
|
146 |
return t1.compareTo(t2); |
|
147 |
} |
|
148 |
return result; |
|
149 |
} |
|
150 |
} |
|
151 |
|
|
152 |
|
|
153 |
} |
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/AbstractTermTreeEditor.java | ||
---|---|---|
1 |
/** |
|
2 |
* Copyright (C) 2007 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 |
|
|
10 |
package eu.etaxonomy.taxeditor.featuretree.e4; |
|
11 |
|
|
12 |
import java.util.Arrays; |
|
13 |
import java.util.HashMap; |
|
14 |
import java.util.List; |
|
15 |
import java.util.Map; |
|
16 |
|
|
17 |
import javax.annotation.PostConstruct; |
|
18 |
import javax.annotation.PreDestroy; |
|
19 |
import javax.inject.Inject; |
|
20 |
|
|
21 |
import org.eclipse.core.runtime.IProgressMonitor; |
|
22 |
import org.eclipse.e4.ui.di.Focus; |
|
23 |
import org.eclipse.e4.ui.di.Persist; |
|
24 |
import org.eclipse.e4.ui.di.UISynchronize; |
|
25 |
import org.eclipse.e4.ui.model.application.ui.MDirtyable; |
|
26 |
import org.eclipse.e4.ui.model.application.ui.basic.MPart; |
|
27 |
import org.eclipse.e4.ui.services.EMenuService; |
|
28 |
import org.eclipse.e4.ui.workbench.modeling.EPartService; |
|
29 |
import org.eclipse.e4.ui.workbench.modeling.ESelectionService; |
|
30 |
import org.eclipse.jface.util.LocalSelectionTransfer; |
|
31 |
import org.eclipse.jface.viewers.ISelection; |
|
32 |
import org.eclipse.jface.viewers.ISelectionChangedListener; |
|
33 |
import org.eclipse.jface.viewers.IStructuredSelection; |
|
34 |
import org.eclipse.jface.viewers.SelectionChangedEvent; |
|
35 |
import org.eclipse.jface.viewers.StructuredSelection; |
|
36 |
import org.eclipse.jface.viewers.TreeViewer; |
|
37 |
import org.eclipse.swt.SWT; |
|
38 |
import org.eclipse.swt.dnd.DND; |
|
39 |
import org.eclipse.swt.dnd.Transfer; |
|
40 |
import org.eclipse.swt.events.KeyAdapter; |
|
41 |
import org.eclipse.swt.events.KeyEvent; |
|
42 |
import org.eclipse.swt.layout.FillLayout; |
|
43 |
import org.eclipse.swt.widgets.Composite; |
|
44 |
import org.eclipse.ui.IMemento; |
|
45 |
|
|
46 |
import eu.etaxonomy.cdm.api.conversation.ConversationHolder; |
|
47 |
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled; |
|
48 |
import eu.etaxonomy.cdm.api.service.ITermService; |
|
49 |
import eu.etaxonomy.cdm.api.service.ITermTreeService; |
|
50 |
import eu.etaxonomy.cdm.model.description.Character; |
|
51 |
import eu.etaxonomy.cdm.model.term.TermNode; |
|
52 |
import eu.etaxonomy.cdm.model.term.TermTree; |
|
53 |
import eu.etaxonomy.cdm.model.term.TermType; |
|
54 |
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap; |
|
55 |
import eu.etaxonomy.taxeditor.editor.definedterm.FeatureTreeViewerComparator; |
|
56 |
import eu.etaxonomy.taxeditor.editor.definedterm.TermTransfer; |
|
57 |
import eu.etaxonomy.taxeditor.featuretree.FeatureNodeTransfer; |
|
58 |
import eu.etaxonomy.taxeditor.featuretree.FeatureTreeContentProvider; |
|
59 |
import eu.etaxonomy.taxeditor.featuretree.FeatureTreeLabelProvider; |
|
60 |
import eu.etaxonomy.taxeditor.featuretree.e4.operation.AddFeatureOperation; |
|
61 |
import eu.etaxonomy.taxeditor.model.AbstractUtility; |
|
62 |
import eu.etaxonomy.taxeditor.model.IContextListener; |
|
63 |
import eu.etaxonomy.taxeditor.model.IDirtyMarkable; |
|
64 |
import eu.etaxonomy.taxeditor.model.IPartContentHasDetails; |
|
65 |
import eu.etaxonomy.taxeditor.model.IPartContentHasSupplementalData; |
|
66 |
import eu.etaxonomy.taxeditor.session.ICdmEntitySession; |
|
67 |
import eu.etaxonomy.taxeditor.store.AppModelId; |
|
68 |
import eu.etaxonomy.taxeditor.store.CdmStore; |
|
69 |
import eu.etaxonomy.taxeditor.store.StoreUtil; |
|
70 |
import eu.etaxonomy.taxeditor.workbench.part.IE4ViewerPart; |
|
71 |
|
|
72 |
/** |
|
73 |
* |
|
74 |
* @author pplitzner |
|
75 |
* @date 06.06.2017 |
|
76 |
* |
|
77 |
*/ |
|
78 |
public abstract class AbstractTermTreeEditor implements IFeatureTreeEditor, ISelectionChangedListener, |
|
79 |
IE4ViewerPart, IPartContentHasDetails, IPartContentHasSupplementalData, |
|
80 |
IContextListener, IConversationEnabled, IDirtyMarkable { |
|
81 |
|
|
82 |
protected static final List<String> TREE_PROPERTY_PATH = Arrays.asList(new String[] { |
|
83 |
"root", //$NON-NLS-1$ |
|
84 |
"root.children", //$NON-NLS-1$ |
|
85 |
"root.children.inapplicableIf", //$NON-NLS-1$ |
|
86 |
"root.children.inapplicableIf.feature", //$NON-NLS-1$ |
|
87 |
"root.children.inapplicableIf.state", //$NON-NLS-1$ |
|
88 |
"root.children.onlyApplicableIf", //$NON-NLS-1$ |
|
89 |
"root.children.onlyApplicableIf.feature", //$NON-NLS-1$ |
|
90 |
"root.children.onlyApplicableIf.state", //$NON-NLS-1$ |
|
91 |
}); |
|
92 |
|
|
93 |
private ConversationHolder conversation; |
|
94 |
|
|
95 |
private ICdmEntitySession cdmEntitySession; |
|
96 |
|
|
97 |
@Inject |
|
98 |
private ESelectionService selService; |
|
99 |
|
|
100 |
@Inject |
|
101 |
private MDirtyable dirty; |
|
102 |
|
|
103 |
@Inject |
|
104 |
private UISynchronize sync; |
|
105 |
|
|
106 |
@Inject |
|
107 |
private MPart thisPart; |
|
108 |
|
|
109 |
private TreeViewer viewer; |
|
110 |
|
|
111 |
@Inject |
|
112 |
public AbstractTermTreeEditor() { |
|
113 |
CdmStore.getContextManager().addContextListener(this); |
|
114 |
} |
|
115 |
|
|
116 |
@PostConstruct |
|
117 |
public void createControl(Composite parent, EMenuService menuService){ |
|
118 |
if (CdmStore.isActive()){ |
|
119 |
initSession(); |
|
120 |
} |
|
121 |
else{ |
|
122 |
return; |
|
123 |
} |
|
124 |
parent.setLayout(new FillLayout()); |
|
125 |
viewer = new TreeViewer(parent); |
|
126 |
viewer.setContentProvider(new FeatureTreeContentProvider()); |
|
127 |
viewer.setLabelProvider(new FeatureTreeLabelProvider()); |
|
128 |
|
|
129 |
int ops = DND.DROP_COPY | DND.DROP_MOVE; |
|
130 |
Transfer[] transfers = new Transfer[] { |
|
131 |
FeatureNodeTransfer.getInstance(), |
|
132 |
TermTransfer.getInstance(), |
|
133 |
LocalSelectionTransfer.getTransfer()}; |
|
134 |
viewer.addDragSupport(ops, transfers, new FeatureNodeDragListener(viewer)); |
|
135 |
viewer.addDropSupport(ops, transfers, new FeatureTreeDropAdapter(this, viewer, sync)); |
|
136 |
viewer.addSelectionChangedListener(this); |
|
137 |
viewer.getTree().addKeyListener(new KeyAdapter() { |
|
138 |
@Override |
|
139 |
public void keyPressed(KeyEvent e) { |
|
140 |
if(e.stateMask == SWT.MOD1 && e.keyCode == 'c'){ |
|
141 |
copy(viewer.getStructuredSelection()); |
|
142 |
} |
|
143 |
else if(e.stateMask == SWT.MOD1 && e.keyCode == 'v'){ |
|
144 |
paste(viewer.getStructuredSelection()); |
|
145 |
} |
|
146 |
} |
|
147 |
}); |
|
148 |
|
|
149 |
List<TermTree> trees = getTrees(); |
|
150 |
viewer.setComparator(new FeatureTreeViewerComparator()); |
|
151 |
viewer.setInput(trees); |
|
152 |
|
|
153 |
//create context menu |
|
154 |
menuService.registerContextMenu(viewer.getControl(), AppModelId.POPUPMENU_EU_ETAXONOMY_TAXEDITOR_STORE_POPUPMENU_FEATURETREEEDITOR); |
|
155 |
} |
|
156 |
|
|
157 |
protected abstract List<TermTree> getTrees(); |
|
158 |
|
|
159 |
public void paste(IStructuredSelection selection) { |
|
160 |
if (StoreUtil.promptCheckIsDirty(this)) { |
|
161 |
return; |
|
162 |
} |
|
163 |
|
|
164 |
ISelection clipBoardSelection = LocalSelectionTransfer.getTransfer().getSelection(); |
|
165 |
Object firstElement = selection.getFirstElement(); |
|
166 |
TermNode parentNode = null; |
|
167 |
if(firstElement instanceof TermNode){ |
|
168 |
parentNode = (TermNode) firstElement; |
|
169 |
} |
|
170 |
else if(firstElement instanceof TermTree){ |
|
171 |
parentNode = ((TermTree)firstElement).getRoot(); |
|
172 |
} |
|
173 |
if(parentNode!=null){ |
|
174 |
TermNode copiedNode = (TermNode) ((IStructuredSelection)clipBoardSelection).getFirstElement(); |
|
175 |
|
|
176 |
AddFeatureOperation operation = new AddFeatureOperation(copiedNode.getTerm().getUuid(), parentNode, this, this); |
|
177 |
AbstractUtility.executeOperation(operation, sync); |
|
178 |
} |
|
179 |
|
|
180 |
} |
|
181 |
|
|
182 |
public void copy(IStructuredSelection selection) { |
|
183 |
LocalSelectionTransfer.getTransfer().setSelection(selection); |
|
184 |
} |
|
185 |
|
|
186 |
private void initSession(){ |
|
187 |
if(conversation == null){ |
|
188 |
conversation = CdmStore.createConversation(); |
|
189 |
} |
|
190 |
if(cdmEntitySession==null){ |
|
191 |
cdmEntitySession = CdmStore.getCurrentSessionManager().newSession(this, true); |
|
192 |
} |
|
193 |
} |
|
194 |
|
|
195 |
private void clearSession() { |
|
196 |
if(conversation!=null){ |
|
197 |
conversation.close(); |
|
198 |
conversation = null; |
|
199 |
} |
|
200 |
if(cdmEntitySession != null) { |
|
201 |
cdmEntitySession.dispose(); |
|
202 |
cdmEntitySession = null; |
|
203 |
} |
|
204 |
dirty.setDirty(false); |
|
205 |
} |
|
206 |
|
|
207 |
public void setDirty(boolean isDirty){ |
|
208 |
this.dirty.setDirty(isDirty); |
|
209 |
} |
|
210 |
|
|
211 |
@Override |
|
212 |
public boolean isDirty(){ |
|
213 |
return dirty.isDirty(); |
|
214 |
} |
|
215 |
|
|
216 |
@Override |
|
217 |
public void selectionChanged(SelectionChangedEvent event) { |
|
218 |
//propagate selection |
|
219 |
selService.setSelection(event.getSelection()); |
|
220 |
} |
|
221 |
|
|
222 |
@Focus |
|
223 |
public void focus(){ |
|
224 |
if(viewer!=null){ |
|
225 |
viewer.getControl().setFocus(); |
|
226 |
} |
|
227 |
if(conversation!=null && !conversation.isBound()){ |
|
228 |
conversation.bind(); |
|
229 |
} |
|
230 |
if(cdmEntitySession != null) { |
|
231 |
cdmEntitySession.bind(); |
|
232 |
} |
|
233 |
} |
|
234 |
|
|
235 |
@Override |
|
236 |
public void refresh(){ |
|
237 |
viewer.refresh(); |
|
238 |
} |
|
239 |
|
|
240 |
public TreeViewer getViewer(){ |
|
241 |
return viewer; |
|
242 |
} |
|
243 |
|
|
244 |
@Override |
|
245 |
public IStructuredSelection getSelection() { |
|
246 |
return (IStructuredSelection) viewer.getSelection(); |
|
247 |
} |
|
248 |
|
|
249 |
@Override |
|
250 |
public ConversationHolder getConversationHolder() { |
|
251 |
return conversation; |
|
252 |
} |
|
253 |
|
|
254 |
@Override |
|
255 |
@Persist |
|
256 |
public void save(IProgressMonitor monitor){ |
|
257 |
if (!conversation.isBound()) { |
|
258 |
conversation.bind(); |
|
259 |
} |
|
260 |
|
|
261 |
// commit the conversation and start a new transaction immediately |
|
262 |
conversation.commit(true); |
|
263 |
|
|
264 |
CdmStore.getService(ITermTreeService.class).saveOrUpdate(getRootEntities()); |
|
265 |
|
|
266 |
List<TermTree> rootEntities = getRootEntities(); |
|
267 |
for (TermTree featureTree : rootEntities) { |
|
268 |
if(featureTree.getTermType().equals(TermType.Character)){ |
|
269 |
TermTree<Character> characterTree = featureTree; |
|
270 |
//save characters because they can be modified in this editor |
|
271 |
characterTree.getDistinctTerms().forEach(character->CdmStore.getService(ITermService.class).merge(character,true)); |
|
272 |
} |
|
273 |
} |
|
274 |
|
|
275 |
initializeTrees(); |
|
276 |
|
|
277 |
this.setDirty(false); |
|
278 |
} |
|
279 |
|
|
280 |
private void initializeTrees() { |
|
281 |
Object[] expandedElements = viewer.getExpandedElements(); |
|
282 |
viewer.getTree().removeAll(); |
|
283 |
List<TermTree> trees = CdmStore.getService(ITermTreeService.class).list(TermTree.class, null, null, null, null); |
|
284 |
viewer.setInput(trees); |
|
285 |
viewer.setExpandedElements(expandedElements); |
|
286 |
} |
|
287 |
|
|
288 |
@PreDestroy |
|
289 |
public void dispose(){ |
|
290 |
selService.setSelection(null); |
|
291 |
clearSession(); |
|
292 |
} |
|
293 |
|
|
294 |
@Override |
|
295 |
public ICdmEntitySession getCdmEntitySession() { |
|
296 |
return cdmEntitySession; |
|
297 |
} |
|
298 |
|
|
299 |
@Override |
|
300 |
public Map<Object, List<String>> getPropertyPathsMap() { |
|
301 |
List<String> propertyPaths = Arrays.asList(new String[] { |
|
302 |
"children", //$NON-NLS-1$ |
|
303 |
"feature", //$NON-NLS-1$ |
|
304 |
"featureTree", //$NON-NLS-1$ |
|
305 |
}); |
|
306 |
Map<Object, List<String>> propertyPathMap = |
|
307 |
new HashMap<Object, List<String>>(); |
|
308 |
propertyPathMap.put(TermNode.class,propertyPaths); |
|
309 |
return propertyPathMap; |
|
310 |
} |
|
311 |
|
|
312 |
@Override |
|
313 |
public List<TermTree> getRootEntities() { |
|
314 |
return (List<TermTree>) viewer.getInput(); |
|
315 |
} |
|
316 |
|
|
317 |
@Override |
|
318 |
public void contextAboutToStop(IMemento memento, IProgressMonitor monitor) { |
|
319 |
} |
|
320 |
|
|
321 |
@Override |
|
322 |
public void contextStop(IMemento memento, IProgressMonitor monitor) { |
|
323 |
//close view when workbench closes |
|
324 |
try{ |
|
325 |
thisPart.getContext().get(EPartService.class).hidePart(thisPart); |
|
326 |
} |
|
327 |
catch(Exception e){ |
|
328 |
//nothing |
|
329 |
} |
|
330 |
} |
|
331 |
|
|
332 |
@Override |
|
333 |
public void contextStart(IMemento memento, IProgressMonitor monitor) { |
|
334 |
} |
|
335 |
|
|
336 |
@Override |
|
337 |
public void contextRefresh(IProgressMonitor monitor) { |
|
338 |
} |
|
339 |
|
|
340 |
@Override |
|
341 |
public void workbenchShutdown(IMemento memento, IProgressMonitor monitor) { |
|
342 |
} |
|
343 |
|
|
344 |
@Override |
|
345 |
public void update(CdmDataChangeMap arg0) { |
|
346 |
} |
|
347 |
|
|
348 |
@Override |
|
349 |
public void changed(Object element) { |
|
350 |
dirty.setDirty(true); |
|
351 |
viewer.refresh(); |
|
352 |
} |
|
353 |
|
|
354 |
@Override |
|
355 |
public void forceDirty() { |
|
356 |
dirty.setDirty(true); |
|
357 |
} |
|
358 |
|
|
359 |
@Override |
|
360 |
public boolean postOperation(Object objectAffectedByOperation) { |
|
361 |
initializeTrees(); |
|
362 |
viewer.refresh(); |
|
363 |
if(objectAffectedByOperation instanceof TermNode){ |
|
364 |
TermNode node = (TermNode)objectAffectedByOperation; |
|
365 |
viewer.expandToLevel(node.getGraph(), 1); |
|
366 |
} |
|
367 |
if(objectAffectedByOperation!=null){ |
|
368 |
StructuredSelection selection = new StructuredSelection(objectAffectedByOperation); |
|
369 |
viewer.setSelection(selection); |
|
370 |
} |
|
371 |
return true; |
|
372 |
} |
|
373 |
|
|
374 |
@Override |
|
375 |
public boolean onComplete() { |
|
376 |
return false; |
|
377 |
} |
|
378 |
|
|
379 |
} |
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/CharacterTreeEditor.java | ||
---|---|---|
1 |
/** |
|
2 |
* Copyright (C) 2019 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.featuretree.e4; |
|
10 |
|
|
11 |
import java.util.List; |
|
12 |
|
|
13 |
import eu.etaxonomy.cdm.api.service.ITermTreeService; |
|
14 |
import eu.etaxonomy.cdm.model.term.TermTree; |
|
15 |
import eu.etaxonomy.cdm.model.term.TermType; |
|
16 |
import eu.etaxonomy.taxeditor.store.CdmStore; |
|
17 |
|
|
18 |
/** |
|
19 |
* @author pplitzner |
|
20 |
* @since Aug 19, 2019 |
|
21 |
* |
|
22 |
*/ |
|
23 |
public class CharacterTreeEditor extends AbstractTermTreeEditor { |
|
24 |
|
|
25 |
@Override |
|
26 |
protected List<TermTree> getTrees(){ |
|
27 |
return CdmStore.getService(ITermTreeService.class).list(TermType.Character, null, null, null, TREE_PROPERTY_PATH); |
|
28 |
} |
|
29 |
|
|
30 |
} |
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/FeatureTreeEditor.java | ||
---|---|---|
1 | 1 |
/** |
2 |
* Copyright (C) 2007 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 |
|
|
2 |
* Copyright (C) 2019 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 |
*/ |
|
10 | 9 |
package eu.etaxonomy.taxeditor.featuretree.e4; |
11 | 10 |
|
12 |
import java.util.Arrays; |
|
13 |
import java.util.HashMap; |
|
14 | 11 |
import java.util.List; |
15 |
import java.util.Map;
|
|
12 |
import java.util.stream.Collectors;
|
|
16 | 13 |
|
17 |
import javax.annotation.PostConstruct; |
|
18 |
import javax.annotation.PreDestroy; |
|
19 |
import javax.inject.Inject; |
|
20 |
|
|
21 |
import org.eclipse.core.runtime.IProgressMonitor; |
|
22 |
import org.eclipse.e4.ui.di.Focus; |
|
23 |
import org.eclipse.e4.ui.di.Persist; |
|
24 |
import org.eclipse.e4.ui.di.UISynchronize; |
|
25 |
import org.eclipse.e4.ui.model.application.ui.MDirtyable; |
|
26 |
import org.eclipse.e4.ui.model.application.ui.basic.MPart; |
|
27 |
import org.eclipse.e4.ui.services.EMenuService; |
|
28 |
import org.eclipse.e4.ui.workbench.modeling.EPartService; |
|
29 |
import org.eclipse.e4.ui.workbench.modeling.ESelectionService; |
|
30 |
import org.eclipse.jface.util.LocalSelectionTransfer; |
|
31 |
import org.eclipse.jface.viewers.ISelection; |
|
32 |
import org.eclipse.jface.viewers.ISelectionChangedListener; |
|
33 |
import org.eclipse.jface.viewers.IStructuredSelection; |
|
34 |
import org.eclipse.jface.viewers.SelectionChangedEvent; |
|
35 |
import org.eclipse.jface.viewers.StructuredSelection; |
|
36 |
import org.eclipse.jface.viewers.TreeViewer; |
|
37 |
import org.eclipse.swt.SWT; |
|
38 |
import org.eclipse.swt.dnd.DND; |
|
39 |
import org.eclipse.swt.dnd.Transfer; |
|
40 |
import org.eclipse.swt.events.KeyAdapter; |
|
41 |
import org.eclipse.swt.events.KeyEvent; |
|
42 |
import org.eclipse.swt.layout.FillLayout; |
|
43 |
import org.eclipse.swt.widgets.Composite; |
|
44 |
import org.eclipse.ui.IMemento; |
|
45 |
|
|
46 |
import eu.etaxonomy.cdm.api.conversation.ConversationHolder; |
|
47 |
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled; |
|
48 |
import eu.etaxonomy.cdm.api.service.ITermService; |
|
49 | 14 |
import eu.etaxonomy.cdm.api.service.ITermTreeService; |
50 |
import eu.etaxonomy.cdm.model.description.Character; |
|
51 |
import eu.etaxonomy.cdm.model.term.TermNode; |
|
52 | 15 |
import eu.etaxonomy.cdm.model.term.TermTree; |
53 | 16 |
import eu.etaxonomy.cdm.model.term.TermType; |
54 |
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap; |
|
55 |
import eu.etaxonomy.taxeditor.editor.definedterm.FeatureTreeViewerComparator; |
|
56 |
import eu.etaxonomy.taxeditor.editor.definedterm.TermTransfer; |
|
57 |
import eu.etaxonomy.taxeditor.featuretree.FeatureNodeTransfer; |
|
58 |
import eu.etaxonomy.taxeditor.featuretree.FeatureTreeContentProvider; |
|
59 |
import eu.etaxonomy.taxeditor.featuretree.FeatureTreeLabelProvider; |
|
60 |
import eu.etaxonomy.taxeditor.featuretree.e4.operation.AddFeatureOperation; |
|
61 |
import eu.etaxonomy.taxeditor.model.AbstractUtility; |
|
62 |
import eu.etaxonomy.taxeditor.model.IContextListener; |
|
63 |
import eu.etaxonomy.taxeditor.model.IDirtyMarkable; |
|
64 |
import eu.etaxonomy.taxeditor.model.IPartContentHasDetails; |
|
65 |
import eu.etaxonomy.taxeditor.model.IPartContentHasSupplementalData; |
|
66 |
import eu.etaxonomy.taxeditor.session.ICdmEntitySession; |
|
67 |
import eu.etaxonomy.taxeditor.store.AppModelId; |
|
68 | 17 |
import eu.etaxonomy.taxeditor.store.CdmStore; |
69 |
import eu.etaxonomy.taxeditor.store.StoreUtil; |
|
70 |
import eu.etaxonomy.taxeditor.workbench.part.IE4ViewerPart; |
|
71 | 18 |
|
72 | 19 |
/** |
73 |
* |
|
74 | 20 |
* @author pplitzner |
75 |
* @date 06.06.2017
|
|
21 |
* @since Aug 19, 2019
|
|
76 | 22 |
* |
77 | 23 |
*/ |
78 |
public class FeatureTreeEditor implements IFeatureTreeEditor, ISelectionChangedListener, |
|
79 |
IE4ViewerPart, IPartContentHasDetails, IPartContentHasSupplementalData, |
|
80 |
IContextListener, IConversationEnabled, IDirtyMarkable { |
|
81 |
|
|
82 |
private static final List<String> TREE_PROPERTY_PATH = Arrays.asList(new String[] { |
|
83 |
"root", //$NON-NLS-1$ |
|
84 |
"root.children", //$NON-NLS-1$ |
|
85 |
"root.children.inapplicableIf", //$NON-NLS-1$ |
|
86 |
"root.children.inapplicableIf.feature", //$NON-NLS-1$ |
|
87 |
"root.children.inapplicableIf.state", //$NON-NLS-1$ |
|
88 |
"root.children.onlyApplicableIf", //$NON-NLS-1$ |
|
89 |
"root.children.onlyApplicableIf.feature", //$NON-NLS-1$ |
|
90 |
"root.children.onlyApplicableIf.state", //$NON-NLS-1$ |
|
91 |
}); |
|
92 |
|
|
93 |
private ConversationHolder conversation; |
|
94 |
|
|
95 |
private ICdmEntitySession cdmEntitySession; |
|
96 |
|
|
97 |
@Inject |
|
98 |
private ESelectionService selService; |
|
99 |
|
|
100 |
@Inject |
|
101 |
private MDirtyable dirty; |
|
102 |
|
|
103 |
@Inject |
|
104 |
private UISynchronize sync; |
|
105 |
|
|
106 |
@Inject |
|
107 |
private MPart thisPart; |
|
108 |
|
|
109 |
private TreeViewer viewer; |
|
110 |
|
|
111 |
@Inject |
|
112 |
public FeatureTreeEditor() { |
|
113 |
CdmStore.getContextManager().addContextListener(this); |
|
114 |
} |
|
115 |
|
|
116 |
@PostConstruct |
|
117 |
public void createControl(Composite parent, EMenuService menuService){ |
|
118 |
if (CdmStore.isActive()){ |
|
119 |
initSession(); |
|
120 |
} |
|
121 |
else{ |
|
122 |
return; |
|
123 |
} |
|
124 |
parent.setLayout(new FillLayout()); |
|
125 |
viewer = new TreeViewer(parent); |
|
126 |
viewer.setContentProvider(new FeatureTreeContentProvider()); |
|
127 |
viewer.setLabelProvider(new FeatureTreeLabelProvider()); |
|
128 |
|
|
129 |
int ops = DND.DROP_COPY | DND.DROP_MOVE; |
|
130 |
Transfer[] transfers = new Transfer[] { |
|
131 |
FeatureNodeTransfer.getInstance(), |
|
132 |
TermTransfer.getInstance(), |
|
133 |
LocalSelectionTransfer.getTransfer()}; |
|
134 |
viewer.addDragSupport(ops, transfers, new FeatureNodeDragListener(viewer)); |
|
135 |
viewer.addDropSupport(ops, transfers, new FeatureTreeDropAdapter(this, viewer, sync)); |
|
136 |
viewer.addSelectionChangedListener(this); |
|
137 |
viewer.getTree().addKeyListener(new KeyAdapter() { |
|
138 |
@Override |
|
139 |
public void keyPressed(KeyEvent e) { |
|
140 |
if(e.stateMask == SWT.MOD1 && e.keyCode == 'c'){ |
|
141 |
copy(viewer.getStructuredSelection()); |
|
142 |
} |
|
143 |
else if(e.stateMask == SWT.MOD1 && e.keyCode == 'v'){ |
|
144 |
paste(viewer.getStructuredSelection()); |
|
145 |
} |
|
146 |
} |
|
147 |
}); |
|
148 |
|
|
149 |
List<TermTree> trees = CdmStore.getService(ITermTreeService.class).list(TermTree.class, null, null, null, TREE_PROPERTY_PATH); |
|
150 |
viewer.setComparator(new FeatureTreeViewerComparator()); |
|
151 |
viewer.setInput(trees); |
|
152 |
|
|
153 |
//create context menu |
|
154 |
menuService.registerContextMenu(viewer.getControl(), AppModelId.POPUPMENU_EU_ETAXONOMY_TAXEDITOR_STORE_POPUPMENU_FEATURETREEEDITOR); |
|
155 |
} |
|
156 |
|
|
157 |
public void paste(IStructuredSelection selection) { |
|
158 |
if (StoreUtil.promptCheckIsDirty(this)) { |
|
159 |
return; |
|
160 |
} |
|
161 |
|
|
162 |
ISelection clipBoardSelection = LocalSelectionTransfer.getTransfer().getSelection(); |
|
163 |
Object firstElement = selection.getFirstElement(); |
|
164 |
TermNode parentNode = null; |
|
165 |
if(firstElement instanceof TermNode){ |
|
166 |
parentNode = (TermNode) firstElement; |
|
167 |
} |
|
168 |
else if(firstElement instanceof TermTree){ |
|
169 |
parentNode = ((TermTree)firstElement).getRoot(); |
|
170 |
} |
|
171 |
if(parentNode!=null){ |
|
172 |
TermNode copiedNode = (TermNode) ((IStructuredSelection)clipBoardSelection).getFirstElement(); |
|
173 |
|
|
174 |
AddFeatureOperation operation = new AddFeatureOperation(copiedNode.getTerm().getUuid(), parentNode, this, this); |
|
175 |
AbstractUtility.executeOperation(operation, sync); |
|
176 |
} |
|
177 |
|
|
178 |
} |
|
179 |
|
|
180 |
public void copy(IStructuredSelection selection) { |
|
181 |
LocalSelectionTransfer.getTransfer().setSelection(selection); |
|
182 |
} |
|
183 |
|
|
184 |
private void initSession(){ |
|
185 |
if(conversation == null){ |
|
186 |
conversation = CdmStore.createConversation(); |
|
187 |
} |
|
188 |
if(cdmEntitySession==null){ |
|
189 |
cdmEntitySession = CdmStore.getCurrentSessionManager().newSession(this, true); |
|
190 |
} |
|
191 |
} |
|
192 |
|
|
193 |
private void clearSession() { |
|
194 |
if(conversation!=null){ |
|
195 |
conversation.close(); |
|
196 |
conversation = null; |
|
197 |
} |
|
198 |
if(cdmEntitySession != null) { |
|
199 |
cdmEntitySession.dispose(); |
|
200 |
cdmEntitySession = null; |
|
201 |
} |
|
202 |
dirty.setDirty(false); |
|
203 |
} |
|
204 |
|
|
205 |
public void setDirty(boolean isDirty){ |
|
206 |
this.dirty.setDirty(isDirty); |
|
207 |
} |
|
208 |
|
|
209 |
@Override |
|
210 |
public boolean isDirty(){ |
|
211 |
return dirty.isDirty(); |
|
212 |
} |
|
213 |
|
|
214 |
@Override |
|
215 |
public void selectionChanged(SelectionChangedEvent event) { |
|
216 |
//propagate selection |
|
217 |
selService.setSelection(event.getSelection()); |
|
218 |
} |
|
219 |
|
|
220 |
@Focus |
|
221 |
public void focus(){ |
|
222 |
if(viewer!=null){ |
|
223 |
viewer.getControl().setFocus(); |
|
224 |
} |
|
225 |
if(conversation!=null && !conversation.isBound()){ |
|
226 |
conversation.bind(); |
|
227 |
} |
|
228 |
if(cdmEntitySession != null) { |
|
229 |
cdmEntitySession.bind(); |
|
230 |
} |
|
231 |
} |
|
232 |
|
|
233 |
@Override |
|
234 |
public void refresh(){ |
|
235 |
viewer.refresh(); |
|
236 |
} |
|
237 |
|
|
238 |
public TreeViewer getViewer(){ |
|
239 |
return viewer; |
|
240 |
} |
|
241 |
|
|
242 |
@Override |
|
243 |
public IStructuredSelection getSelection() { |
|
244 |
return (IStructuredSelection) viewer.getSelection(); |
|
245 |
} |
|
246 |
|
|
247 |
@Override |
|
248 |
public ConversationHolder getConversationHolder() { |
|
249 |
return conversation; |
|
250 |
} |
|
251 |
|
|
252 |
@Override |
|
253 |
@Persist |
|
254 |
public void save(IProgressMonitor monitor){ |
|
255 |
if (!conversation.isBound()) { |
|
256 |
conversation.bind(); |
|
257 |
} |
|
258 |
|
|
259 |
// commit the conversation and start a new transaction immediately |
|
260 |
conversation.commit(true); |
|
261 |
|
|
262 |
CdmStore.getService(ITermTreeService.class).saveOrUpdate(getRootEntities()); |
|
263 |
|
|
264 |
List<TermTree> rootEntities = getRootEntities(); |
|
265 |
for (TermTree featureTree : rootEntities) { |
|
266 |
if(featureTree.getTermType().equals(TermType.Character)){ |
|
267 |
TermTree<Character> characterTree = featureTree; |
|
268 |
//save characters because they can be modified in this editor |
|
269 |
characterTree.getDistinctTerms().forEach(character->CdmStore.getService(ITermService.class).merge(character,true)); |
|
270 |
} |
|
271 |
} |
|
272 |
|
|
273 |
initializeTrees(); |
|
274 |
|
|
275 |
this.setDirty(false); |
|
276 |
} |
|
277 |
|
|
278 |
private void initializeTrees() { |
|
279 |
Object[] expandedElements = viewer.getExpandedElements(); |
|
280 |
viewer.getTree().removeAll(); |
|
281 |
List<TermTree> trees = CdmStore.getService(ITermTreeService.class).list(TermTree.class, null, null, null, null); |
|
282 |
viewer.setInput(trees); |
|
283 |
viewer.setExpandedElements(expandedElements); |
|
284 |
} |
|
285 |
|
|
286 |
@PreDestroy |
|
287 |
public void dispose(){ |
|
288 |
selService.setSelection(null); |
|
289 |
clearSession(); |
|
290 |
} |
|
291 |
|
|
292 |
@Override |
|
293 |
public ICdmEntitySession getCdmEntitySession() { |
|
294 |
return cdmEntitySession; |
|
295 |
} |
|
296 |
|
|
297 |
@Override |
|
298 |
public Map<Object, List<String>> getPropertyPathsMap() { |
|
299 |
List<String> propertyPaths = Arrays.asList(new String[] { |
|
300 |
"children", //$NON-NLS-1$ |
|
301 |
"feature", //$NON-NLS-1$ |
|
302 |
"featureTree", //$NON-NLS-1$ |
|
303 |
}); |
|
304 |
Map<Object, List<String>> propertyPathMap = |
|
305 |
new HashMap<Object, List<String>>(); |
|
306 |
propertyPathMap.put(TermNode.class,propertyPaths); |
|
307 |
return propertyPathMap; |
|
308 |
} |
|
309 |
|
|
310 |
@Override |
|
311 |
public List<TermTree> getRootEntities() { |
|
312 |
return (List<TermTree>) viewer.getInput(); |
|
313 |
} |
|
314 |
|
|
315 |
@Override |
|
316 |
public void contextAboutToStop(IMemento memento, IProgressMonitor monitor) { |
|
317 |
} |
|
318 |
|
|
319 |
@Override |
|
320 |
public void contextStop(IMemento memento, IProgressMonitor monitor) { |
|
321 |
//close view when workbench closes |
|
322 |
try{ |
|
323 |
thisPart.getContext().get(EPartService.class).hidePart(thisPart); |
|
324 |
} |
|
325 |
catch(Exception e){ |
|
326 |
//nothing |
|
327 |
} |
|
328 |
} |
|
329 |
|
|
330 |
@Override |
|
331 |
public void contextStart(IMemento memento, IProgressMonitor monitor) { |
|
332 |
} |
|
333 |
|
|
334 |
@Override |
|
335 |
public void contextRefresh(IProgressMonitor monitor) { |
|
336 |
} |
|
337 |
|
|
338 |
@Override |
|
339 |
public void workbenchShutdown(IMemento memento, IProgressMonitor monitor) { |
|
340 |
} |
|
341 |
|
|
342 |
@Override |
|
343 |
public void update(CdmDataChangeMap arg0) { |
|
344 |
} |
|
345 |
|
|
346 |
@Override |
|
347 |
public void changed(Object element) { |
|
348 |
dirty.setDirty(true); |
|
349 |
viewer.refresh(); |
|
350 |
} |
|
351 |
|
|
352 |
@Override |
|
353 |
public void forceDirty() { |
|
354 |
dirty.setDirty(true); |
|
355 |
} |
|
356 |
|
|
357 |
@Override |
|
358 |
public boolean postOperation(Object objectAffectedByOperation) { |
|
359 |
initializeTrees(); |
|
360 |
viewer.refresh(); |
|
361 |
if(objectAffectedByOperation instanceof TermNode){ |
|
362 |
TermNode node = (TermNode)objectAffectedByOperation; |
|
363 |
viewer.expandToLevel(node.getGraph(), 1); |
|
364 |
} |
|
365 |
if(objectAffectedByOperation!=null){ |
|
366 |
StructuredSelection selection = new StructuredSelection(objectAffectedByOperation); |
|
367 |
viewer.setSelection(selection); |
|
368 |
} |
|
369 |
return true; |
|
370 |
} |
|
24 |
public class FeatureTreeEditor extends AbstractTermTreeEditor { |
|
371 | 25 |
|
372 | 26 |
@Override |
373 |
public boolean onComplete() { |
|
374 |
return false; |
|
27 |
protected List<TermTree> getTrees(){ |
|
28 |
List<TermTree> list = CdmStore.getService(ITermTreeService.class).list(TermType.Feature, null, null, null, TREE_PROPERTY_PATH); |
|
29 |
return list.stream().filter(tree->tree.getTermType().equals(TermType.Feature)).collect(Collectors.toList()); |
|
375 | 30 |
} |
376 | 31 |
|
377 | 32 |
} |
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/PropertyTreeEditor.java | ||
---|---|---|
1 |
/** |
|
2 |
* Copyright (C) 2019 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.featuretree.e4; |
|
10 |
|
|
11 |
import java.util.List; |
|
12 |
|
|
13 |
import eu.etaxonomy.cdm.api.service.ITermTreeService; |
|
14 |
import eu.etaxonomy.cdm.model.term.TermTree; |
|
15 |
import eu.etaxonomy.cdm.model.term.TermType; |
|
16 |
import eu.etaxonomy.taxeditor.store.CdmStore; |
|
17 |
|
|
18 |
/** |
|
19 |
* @author pplitzner |
|
20 |
* @since Aug 19, 2019 |
|
21 |
* |
|
22 |
*/ |
|
23 |
public class PropertyTreeEditor extends AbstractTermTreeEditor { |
|
24 |
|
|
25 |
@Override |
|
26 |
protected List<TermTree> getTrees(){ |
|
27 |
return CdmStore.getService(ITermTreeService.class).list(TermType.Property, null, null, null, TREE_PROPERTY_PATH); |
|
28 |
} |
|
29 |
|
|
30 |
} |
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/StructureTreeEditor.java | ||
---|---|---|
1 |
/** |
|
2 |
* Copyright (C) 2019 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.featuretree.e4; |
|
10 |
|
|
11 |
import java.util.List; |
|
12 |
|
|
13 |
import eu.etaxonomy.cdm.api.service.ITermTreeService; |
|
14 |
import eu.etaxonomy.cdm.model.term.TermTree; |
|
15 |
import eu.etaxonomy.cdm.model.term.TermType; |
|
16 |
import eu.etaxonomy.taxeditor.store.CdmStore; |
|
17 |
|
|
18 |
/** |
|
19 |
* @author pplitzner |
|
20 |
* @since Aug 19, 2019 |
|
21 |
* |
|
22 |
*/ |
|
23 |
public class StructureTreeEditor extends AbstractTermTreeEditor { |
|
24 |
|
|
25 |
@Override |
|
26 |
protected List<TermTree> getTrees(){ |
|
27 |
return CdmStore.getService(ITermTreeService.class).list(TermType.Structure, null, null, null, TREE_PROPERTY_PATH); |
|
28 |
} |
|
29 |
|
|
30 |
} |
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/handler/CopyFeatureHandler.java | ||
---|---|---|
12 | 12 |
import org.eclipse.jface.viewers.IStructuredSelection; |
13 | 13 |
|
14 | 14 |
import eu.etaxonomy.cdm.model.term.TermNode; |
15 |
import eu.etaxonomy.taxeditor.featuretree.e4.FeatureTreeEditor;
|
|
15 |
import eu.etaxonomy.taxeditor.featuretree.e4.AbstractTermTreeEditor;
|
|
16 | 16 |
|
17 | 17 |
public class CopyFeatureHandler { |
18 | 18 |
|
19 | 19 |
@Execute |
20 | 20 |
public void execute(@Named(IServiceConstants.ACTIVE_PART) MPart part, |
21 | 21 |
@Named(IServiceConstants.ACTIVE_SELECTION) IStructuredSelection selection){ |
22 |
((FeatureTreeEditor) part.getObject()).copy(selection);
|
|
22 |
((AbstractTermTreeEditor) part.getObject()).copy(selection);
|
|
23 | 23 |
} |
24 | 24 |
|
25 | 25 |
@CanExecute |
... | ... | |
27 | 27 |
@Named(IServiceConstants.ACTIVE_PART) MPart part, |
28 | 28 |
MHandledMenuItem menuItem){ |
29 | 29 |
boolean canExecute = false; |
30 |
canExecute =part.getObject() instanceof FeatureTreeEditor
|
|
30 |
canExecute =part.getObject() instanceof AbstractTermTreeEditor
|
|
31 | 31 |
&& selection!=null |
32 | 32 |
&& selection.size()==1 |
33 | 33 |
&& selection.getFirstElement() instanceof TermNode; |
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/handler/PasteFeatureHandler.java | ||
---|---|---|
14 | 14 |
import org.eclipse.jface.viewers.IStructuredSelection; |
15 | 15 |
|
16 | 16 |
import eu.etaxonomy.cdm.model.term.TermNode; |
17 |
import eu.etaxonomy.taxeditor.featuretree.e4.FeatureTreeEditor;
|
|
17 |
import eu.etaxonomy.taxeditor.featuretree.e4.AbstractTermTreeEditor;
|
|
18 | 18 |
|
19 | 19 |
public class PasteFeatureHandler { |
20 | 20 |
|
21 | 21 |
@Execute |
22 | 22 |
public void execute(@Named(IServiceConstants.ACTIVE_PART) MPart part, |
23 | 23 |
@Named(IServiceConstants.ACTIVE_SELECTION) IStructuredSelection selection){ |
24 |
FeatureTreeEditor editor = (FeatureTreeEditor)part.getObject();
|
|
24 |
AbstractTermTreeEditor editor = (AbstractTermTreeEditor)part.getObject();
|
|
25 | 25 |
editor.paste(selection); |
26 | 26 |
} |
27 | 27 |
|
... | ... | |
31 | 31 |
MHandledMenuItem menuItem){ |
32 | 32 |
boolean canExecute = false; |
33 | 33 |
ISelection transferSelection = LocalSelectionTransfer.getTransfer().getSelection(); |
34 |
canExecute = part.getObject() instanceof FeatureTreeEditor
|
|
34 |
canExecute = part.getObject() instanceof AbstractTermTreeEditor
|
|
35 | 35 |
&& selection!=null |
36 | 36 |
&& selection.size()==1 |
37 | 37 |
&& transferSelection instanceof IStructuredSelection |
Also available in: Unified diff
fix #8235 Create separate menu for term tree editors for each type