wizard.name.23 = Excel Distribution Data Update\r
wizard.name.24 = RIS Reference\r
command.label.25 = Import Preferences
-partdescriptor.label.featureTreeEditor = Term Tree Editor\r
+partdescriptor.label.featureTreeEditor = Feature Tree Editor\r
command.name.OPEN_REFERENCING_OBJECTS_VIEW = Open Referencing Objects View\r
extension.name.1 = Store Workbench Model\r
page.name.21 = Distribution Editor\r
page.name.104 = Distribution Data\r
page.name.105 = Vocabularies and Status
\r
-page.name.sources = Sources
\ No newline at end of file
+page.name.sources = Sources
+partdescriptor.label.4 = Character Tree Editor
+partdescriptor.label.5 = Structure Tree Editor
+partdescriptor.label.6 = Property Tree Editor
+handledmenuitem.label.24 = Feature
+handledmenuitem.label.25 = Character
+handledmenuitem.label.26 = Structure
+handledmenuitem.label.27 = Property
wizard.name.23 = Excel Verbreitungsdaten Update
wizard.name.24 = RIS Referenzen
command.label.25 = Import Präferenzen
-partdescriptor.label.featureTreeEditor = Termbaum-Editor
+partdescriptor.label.featureTreeEditor = Merkmalsbaum-Editor
command.name.OPEN_REFERENCING_OBJECTS_VIEW = Öffne Referenzierende Objekte
extension.name.1 = Store Workbench Model
page.name.21 = Verbreitungs-Editor
page.name.104 = Verbreitungsdaten
page.name.105 = Vokabulare und Status
-page.name.sources = Quellen
\ No newline at end of file
+page.name.sources = Quellen
+partdescriptor.label.4 = Character-Baum-Editor
+partdescriptor.label.5 = Struktur-Baum-Editor
+partdescriptor.label.6 = Property-Baum-Editor
+handledmenuitem.label.24 = Merkmal
+handledmenuitem.label.25 = Character
+handledmenuitem.label.26 = Struktur
+handledmenuitem.label.27 = Property
\ No newline at end of file
<tags>nonRestore</tags>
<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"/>
</elements>
- <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">
- <tags>nonRestore</tags>
- <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"/>
- <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"/>
- <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"/>
- <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"/>
- <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"/>
- <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"/>
- <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"/>
- <menus xsi:type="menu:PopupMenu" xmi:id="__Jwh4GceEee0qLTtA2ZpVQ" elementId="eu.etaxonomy.taxeditor.store.popupmenu.featureTreeEditor">
- <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"/>
- <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">
- <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_DuXtQI54Eem9zru2SAuoRA" coreExpressionId="isShowExperimentalFeatures"/>
- <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">
- <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_FJyiYI54Eem9zru2SAuoRA" coreExpressionId="isShowExperimentalFeatures"/>
- </children>
- <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">
- <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_FdhWsI54Eem9zru2SAuoRA" coreExpressionId="isShowExperimentalFeatures"/>
- </children>
- </children>
- <children xsi:type="menu:MenuSeparator" xmi:id="_eIB1kCHXEeiP8eNo0PEm1g" elementId="eu.etaxonomy.taxeditor.store.menuseparator.5"/>
- <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"/>
- <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"/>
- <children xsi:type="menu:MenuSeparator" xmi:id="_XtPjcNjyEeidDMMI9xTsbQ" elementId="eu.etaxonomy.taxeditor.store.menuseparator.8"/>
- <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"/>
- <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"/>
- <children xsi:type="menu:MenuSeparator" xmi:id="_So5f0NjyEeidDMMI9xTsbQ" elementId="eu.etaxonomy.taxeditor.store.menuseparator.7"/>
- <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">
- <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_QGF5kCRZEemBIp_HwXtqoA" coreExpressionId="isFeatureTree"/>
- <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">
- <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_-91IQGcqEee0qLTtA2ZpVQ" coreExpressionId="isShowExperimentalFeatures"/>
- </children>
- <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">
- <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_qcmvwfhmEei8uPv-H2wqnw" coreExpressionId="isShowExperimentalFeatures"/>
- </children>
- </children>
- <children xsi:type="menu:MenuSeparator" xmi:id="_TFRL0CFgEeiVXriJfxPIuA" elementId="eu.etaxonomy.taxeditor.store.menuseparator.0"/>
- <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"/>
- <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"/>
- </menus>
- </elements>
<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"/>
<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"/>
<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">
<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"/>
<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"/>
<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"/>
+ <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">
+ <tags>nonRestore</tags>
+ <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"/>
+ <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"/>
+ <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"/>
+ <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"/>
+ <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"/>
+ <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"/>
+ <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"/>
+ <menus xsi:type="menu:PopupMenu" xmi:id="_-y1CeMKPEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.popupmenu.featureTreeEditor">
+ <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"/>
+ <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">
+ <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_-y1Ce8KPEem1vZq1LletZg" coreExpressionId="isShowExperimentalFeatures"/>
+ <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">
+ <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_-y1CfcKPEem1vZq1LletZg" coreExpressionId="isShowExperimentalFeatures"/>
+ </children>
+ <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">
+ <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_-y1Cf8KPEem1vZq1LletZg" coreExpressionId="isShowExperimentalFeatures"/>
+ </children>
+ </children>
+ <children xsi:type="menu:MenuSeparator" xmi:id="_-y1CgMKPEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.menuseparator.5"/>
+ <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"/>
+ <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"/>
+ <children xsi:type="menu:MenuSeparator" xmi:id="_-y1Cg8KPEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.menuseparator.8"/>
+ <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"/>
+ <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"/>
+ <children xsi:type="menu:MenuSeparator" xmi:id="_-y1ChsKPEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.menuseparator.7"/>
+ <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">
+ <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_-y1CiMKPEem1vZq1LletZg" coreExpressionId="isFeatureTree"/>
+ <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">
+ <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_-y1CisKPEem1vZq1LletZg" coreExpressionId="isShowExperimentalFeatures"/>
+ </children>
+ <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">
+ <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_-y1CjMKPEem1vZq1LletZg" coreExpressionId="isShowExperimentalFeatures"/>
+ </children>
+ </children>
+ <children xsi:type="menu:MenuSeparator" xmi:id="_-y1CjcKPEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.menuseparator.0"/>
+ <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"/>
+ <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"/>
+ </menus>
+ </elements>
+ <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">
+ <tags>nonRestore</tags>
+ <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"/>
+ <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"/>
+ <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"/>
+ <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"/>
+ <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"/>
+ <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"/>
+ <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"/>
+ <menus xsi:type="menu:PopupMenu" xmi:id="__Jwh4GceEee0qLTtA2ZpVQ" elementId="eu.etaxonomy.taxeditor.store.popupmenu.featureTreeEditor">
+ <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"/>
+ <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">
+ <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_DuXtQI54Eem9zru2SAuoRA" coreExpressionId="isShowExperimentalFeatures"/>
+ <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">
+ <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_FJyiYI54Eem9zru2SAuoRA" coreExpressionId="isShowExperimentalFeatures"/>
+ </children>
+ <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">
+ <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_FdhWsI54Eem9zru2SAuoRA" coreExpressionId="isShowExperimentalFeatures"/>
+ </children>
+ </children>
+ <children xsi:type="menu:MenuSeparator" xmi:id="_eIB1kCHXEeiP8eNo0PEm1g" elementId="eu.etaxonomy.taxeditor.store.menuseparator.5"/>
+ <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"/>
+ <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"/>
+ <children xsi:type="menu:MenuSeparator" xmi:id="_XtPjcNjyEeidDMMI9xTsbQ" elementId="eu.etaxonomy.taxeditor.store.menuseparator.8"/>
+ <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"/>
+ <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"/>
+ <children xsi:type="menu:MenuSeparator" xmi:id="_So5f0NjyEeidDMMI9xTsbQ" elementId="eu.etaxonomy.taxeditor.store.menuseparator.7"/>
+ <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">
+ <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_QGF5kCRZEemBIp_HwXtqoA" coreExpressionId="isFeatureTree"/>
+ <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">
+ <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_-91IQGcqEee0qLTtA2ZpVQ" coreExpressionId="isShowExperimentalFeatures"/>
+ </children>
+ <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">
+ <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_qcmvwfhmEei8uPv-H2wqnw" coreExpressionId="isShowExperimentalFeatures"/>
+ </children>
+ </children>
+ <children xsi:type="menu:MenuSeparator" xmi:id="_TFRL0CFgEeiVXriJfxPIuA" elementId="eu.etaxonomy.taxeditor.store.menuseparator.0"/>
+ <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"/>
+ <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"/>
+ </menus>
+ </elements>
+ <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">
+ <tags>nonRestore</tags>
+ <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"/>
+ <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"/>
+ <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"/>
+ <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"/>
+ <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"/>
+ <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"/>
+ <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"/>
+ <menus xsi:type="menu:PopupMenu" xmi:id="_D2OD2MKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.popupmenu.featureTreeEditor">
+ <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"/>
+ <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">
+ <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_D2OD28KQEem1vZq1LletZg" coreExpressionId="isShowExperimentalFeatures"/>
+ <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">
+ <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_D2OD3cKQEem1vZq1LletZg" coreExpressionId="isShowExperimentalFeatures"/>
+ </children>
+ <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">
+ <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_D2OD38KQEem1vZq1LletZg" coreExpressionId="isShowExperimentalFeatures"/>
+ </children>
+ </children>
+ <children xsi:type="menu:MenuSeparator" xmi:id="_D2OD4MKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.menuseparator.5"/>
+ <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"/>
+ <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"/>
+ <children xsi:type="menu:MenuSeparator" xmi:id="_D2OD48KQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.menuseparator.8"/>
+ <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"/>
+ <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"/>
+ <children xsi:type="menu:MenuSeparator" xmi:id="_D2OD5sKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.menuseparator.7"/>
+ <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">
+ <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_D2OD6MKQEem1vZq1LletZg" coreExpressionId="isFeatureTree"/>
+ <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">
+ <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_D2OD6sKQEem1vZq1LletZg" coreExpressionId="isShowExperimentalFeatures"/>
+ </children>
+ <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">
+ <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_D2OD7MKQEem1vZq1LletZg" coreExpressionId="isShowExperimentalFeatures"/>
+ </children>
+ </children>
+ <children xsi:type="menu:MenuSeparator" xmi:id="_D2OD7cKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.menuseparator.0"/>
+ <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"/>
+ <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"/>
+ </menus>
+ </elements>
+ <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">
+ <tags>nonRestore</tags>
+ <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"/>
+ <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"/>
+ <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"/>
+ <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"/>
+ <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"/>
+ <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"/>
+ <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"/>
+ <menus xsi:type="menu:PopupMenu" xmi:id="_HJt06MKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.popupmenu.featureTreeEditor">
+ <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"/>
+ <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">
+ <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_HJt068KQEem1vZq1LletZg" coreExpressionId="isShowExperimentalFeatures"/>
+ <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">
+ <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_HJt07cKQEem1vZq1LletZg" coreExpressionId="isShowExperimentalFeatures"/>
+ </children>
+ <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">
+ <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_HJt078KQEem1vZq1LletZg" coreExpressionId="isShowExperimentalFeatures"/>
+ </children>
+ </children>
+ <children xsi:type="menu:MenuSeparator" xmi:id="_HJt08MKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.menuseparator.5"/>
+ <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"/>
+ <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"/>
+ <children xsi:type="menu:MenuSeparator" xmi:id="_HJt088KQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.menuseparator.8"/>
+ <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"/>
+ <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"/>
+ <children xsi:type="menu:MenuSeparator" xmi:id="_HJt09sKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.menuseparator.7"/>
+ <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">
+ <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_HJt0-MKQEem1vZq1LletZg" coreExpressionId="isFeatureTree"/>
+ <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">
+ <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_HJt0-sKQEem1vZq1LletZg" coreExpressionId="isShowExperimentalFeatures"/>
+ </children>
+ <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">
+ <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_HJt0_MKQEem1vZq1LletZg" coreExpressionId="isShowExperimentalFeatures"/>
+ </children>
+ </children>
+ <children xsi:type="menu:MenuSeparator" xmi:id="_HJt0_cKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.menuseparator.0"/>
+ <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"/>
+ <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"/>
+ </menus>
+ </elements>
</fragments>
<fragments xsi:type="fragment:StringModelFragment" xmi:id="_3rW8wCXaEeex9MwMOgUeWw" featurename="children" parentElementId="eu.etaxonomy.taxeditor.menu.showView" positionInList="after:eu.etaxonomy.taxeditor.workbench.menuseparator.afterConcept">
<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">
<elements xsi:type="menu:Menu" xmi:id="_LT3P8IfcEeecZ4F2Y9Z0Og" elementId="eu.etaxonomy.taxeditor.store.menu.termeditor" label="%menu.label.1">
<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"/>
<children xsi:type="menu:MenuSeparator" xmi:id="_yRINcIfqEeecZ4F2Y9Z0Og" elementId="eu.etaxonomy.taxeditor.store.menuseparator.3"/>
- <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">
- <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"/>
+ <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">
+ <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">
+ <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"/>
+ </children>
+ <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">
+ <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"/>
+ </children>
+ <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">
+ <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"/>
+ </children>
+ <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">
+ <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"/>
+ </children>
</children>
<children xsi:type="menu:MenuSeparator" xmi:id="_XKnM8E3IEeiplYSgvvNXRQ" elementId="eu.etaxonomy.taxeditor.store.menuseparator.6"/>
<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">
--- /dev/null
+/**
+* Copyright (C) 2009 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.editor.definedterm.e4;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.EnumSet;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.e4.ui.di.AboutToShow;
+import org.eclipse.e4.ui.model.application.commands.MCommand;
+import org.eclipse.e4.ui.model.application.commands.MCommandsFactory;
+import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
+import org.eclipse.e4.ui.model.application.ui.menu.MMenu;
+import org.eclipse.e4.ui.model.application.ui.menu.MMenuElement;
+import org.eclipse.e4.ui.model.application.ui.menu.MMenuFactory;
+
+import eu.etaxonomy.cdm.model.term.TermType;
+import eu.etaxonomy.taxeditor.l10n.Messages;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ *
+ * Menu to dynamically generate menu (sub-menu) contribution items
+ * for term types which when clicked open the defined term editor for the chosen term type
+ *
+ * @author pplitzner
+ * @since Aug 23, 2017
+ *
+ */
+public class DefinedTermTreeMenu {
+
+ private static final String COMMAND_ID = "eu.etaxonomy.taxeditor.store.openDefinedTermEditor";
+
+ /** {@inheritDoc} */
+ @AboutToShow
+ public void aboutToShow(List<MMenuElement> items) {
+
+ if(CdmStore.isActive()){
+
+ //add Feature and NamedArea to top level
+ addChildTermsToMenuManager(items, TermType.Feature, true);
+ addChildTermsToMenuManager(items, TermType.NamedArea);
+
+ MMenu otherMenu = MMenuFactory.INSTANCE.createMenu();
+ otherMenu.setLabel(Messages.DefinedTermMenu_OTHERS);
+ items.add(otherMenu);
+
+ items.add(MMenuFactory.INSTANCE.createMenuSeparator());
+
+ List<TermType> ttList = new ArrayList<TermType>(EnumSet.allOf(TermType.class));
+ Collections.sort(ttList,new SortByTermTypeMessage());
+ for (TermType tt : ttList)
+ {
+ //skip Feature and NamedArea as they have already been added to top level
+ if(tt.equals(TermType.Feature) || tt.equals(TermType.NamedArea)){
+ continue;
+ }
+ // if term type has a parent, do not add it
+ // it will be added in the recursive call
+ if(tt.getKindOf() == null) {
+ addChildTermsToMenuManager(otherMenu.getChildren(), tt);
+ }
+ }
+ }
+ }
+
+ private void addChildTermsToMenuManager(List<MMenuElement> items, TermType termType) {
+ addChildTermsToMenuManager(items, termType, false);
+ }
+
+ private void addChildTermsToMenuManager(List<MMenuElement> items, TermType termType, boolean skipChildren) {
+
+ //FIXME : need a better way to find out if a term type can be editable (ticket 3853)
+ if(termType.getEmptyDefinedTermBase() != null) {
+ Set<TermType> children = termType.getGeneralizationOf();
+ // term type has no children, so create menu item
+ if(skipChildren || children.isEmpty()) {
+ items.add(createMenuItem(termType));
+ }
+ else{
+ MMenu subMenu = MMenuFactory.INSTANCE.createMenu();
+ subMenu.setLabel(termType.getMessage(PreferencesUtil.getGlobalLanguage()));
+ items.add(subMenu);
+ // term type has children, so create sub menu
+ subMenu.getChildren().add(createDefaultMenuItem(termType));
+
+ subMenu.getChildren().add(MMenuFactory.INSTANCE.createMenuSeparator());
+
+ // add child items to the sub menu
+ for(TermType tt : children) {
+ addChildTermsToMenuManager(subMenu.getChildren(), tt);
+ }
+ }
+ }
+
+ }
+
+ private MHandledMenuItem createMenuItem(TermType termType) {
+
+ MHandledMenuItem menuItem = MMenuFactory.INSTANCE.createHandledMenuItem();
+ menuItem.setLabel(termType.getMessage());
+ MCommand mCommand = MCommandsFactory.INSTANCE.createCommand();
+ mCommand.setElementId(COMMAND_ID);
+
+ //set params
+ menuItem.getTransientData().put(COMMAND_ID+".termTypeUuid", termType.getUuid());
+
+ menuItem.setCommand(mCommand);
+ return menuItem;
+ }
+
+ private MHandledMenuItem createDefaultMenuItem(TermType termType) {
+
+ MHandledMenuItem menuItem = MMenuFactory.INSTANCE.createHandledMenuItem();
+ menuItem.setLabel(String.format(Messages.DefinedTermMenu_OTHER_S, termType.getMessage()));
+ MCommand mCommand = MCommandsFactory.INSTANCE.createCommand();
+ mCommand.setElementId(COMMAND_ID);
+
+ //set params
+ menuItem.getTransientData().put(COMMAND_ID+".termTypeUuid", termType.getUuid());
+
+ menuItem.setCommand(mCommand);
+
+ return menuItem;
+ }
+
+ private class SortByTermTypeMessage implements Comparator<TermType> {
+ @Override
+ public int compare(TermType t1, TermType t2) {
+ if (t1.equals(t2)){
+ return 0;
+ }
+ int result = t1.getMessage().compareTo(t2.getMessage());
+ if (result == 0){
+ return t1.compareTo(t2);
+ }
+ return result;
+ }
+ }
+
+
+}
--- /dev/null
+/**
+ * Copyright (C) 2007 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
+
+package eu.etaxonomy.taxeditor.featuretree.e4;
+
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
+import javax.inject.Inject;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.e4.ui.di.Focus;
+import org.eclipse.e4.ui.di.Persist;
+import org.eclipse.e4.ui.di.UISynchronize;
+import org.eclipse.e4.ui.model.application.ui.MDirtyable;
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
+import org.eclipse.e4.ui.services.EMenuService;
+import org.eclipse.e4.ui.workbench.modeling.EPartService;
+import org.eclipse.e4.ui.workbench.modeling.ESelectionService;
+import org.eclipse.jface.util.LocalSelectionTransfer;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.dnd.DND;
+import org.eclipse.swt.dnd.Transfer;
+import org.eclipse.swt.events.KeyAdapter;
+import org.eclipse.swt.events.KeyEvent;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.IMemento;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
+import eu.etaxonomy.cdm.api.service.ITermService;
+import eu.etaxonomy.cdm.api.service.ITermTreeService;
+import eu.etaxonomy.cdm.model.description.Character;
+import eu.etaxonomy.cdm.model.term.TermNode;
+import eu.etaxonomy.cdm.model.term.TermTree;
+import eu.etaxonomy.cdm.model.term.TermType;
+import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
+import eu.etaxonomy.taxeditor.editor.definedterm.FeatureTreeViewerComparator;
+import eu.etaxonomy.taxeditor.editor.definedterm.TermTransfer;
+import eu.etaxonomy.taxeditor.featuretree.FeatureNodeTransfer;
+import eu.etaxonomy.taxeditor.featuretree.FeatureTreeContentProvider;
+import eu.etaxonomy.taxeditor.featuretree.FeatureTreeLabelProvider;
+import eu.etaxonomy.taxeditor.featuretree.e4.operation.AddFeatureOperation;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.taxeditor.model.IContextListener;
+import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
+import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
+import eu.etaxonomy.taxeditor.model.IPartContentHasSupplementalData;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
+import eu.etaxonomy.taxeditor.store.AppModelId;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.workbench.part.IE4ViewerPart;
+
+/**
+ *
+ * @author pplitzner
+ * @date 06.06.2017
+ *
+ */
+public abstract class AbstractTermTreeEditor implements IFeatureTreeEditor, ISelectionChangedListener,
+ IE4ViewerPart, IPartContentHasDetails, IPartContentHasSupplementalData,
+ IContextListener, IConversationEnabled, IDirtyMarkable {
+
+ protected static final List<String> TREE_PROPERTY_PATH = Arrays.asList(new String[] {
+ "root", //$NON-NLS-1$
+ "root.children", //$NON-NLS-1$
+ "root.children.inapplicableIf", //$NON-NLS-1$
+ "root.children.inapplicableIf.feature", //$NON-NLS-1$
+ "root.children.inapplicableIf.state", //$NON-NLS-1$
+ "root.children.onlyApplicableIf", //$NON-NLS-1$
+ "root.children.onlyApplicableIf.feature", //$NON-NLS-1$
+ "root.children.onlyApplicableIf.state", //$NON-NLS-1$
+ });
+
+ private ConversationHolder conversation;
+
+ private ICdmEntitySession cdmEntitySession;
+
+ @Inject
+ private ESelectionService selService;
+
+ @Inject
+ private MDirtyable dirty;
+
+ @Inject
+ private UISynchronize sync;
+
+ @Inject
+ private MPart thisPart;
+
+ private TreeViewer viewer;
+
+ @Inject
+ public AbstractTermTreeEditor() {
+ CdmStore.getContextManager().addContextListener(this);
+ }
+
+ @PostConstruct
+ public void createControl(Composite parent, EMenuService menuService){
+ if (CdmStore.isActive()){
+ initSession();
+ }
+ else{
+ return;
+ }
+ parent.setLayout(new FillLayout());
+ viewer = new TreeViewer(parent);
+ viewer.setContentProvider(new FeatureTreeContentProvider());
+ viewer.setLabelProvider(new FeatureTreeLabelProvider());
+
+ int ops = DND.DROP_COPY | DND.DROP_MOVE;
+ Transfer[] transfers = new Transfer[] {
+ FeatureNodeTransfer.getInstance(),
+ TermTransfer.getInstance(),
+ LocalSelectionTransfer.getTransfer()};
+ viewer.addDragSupport(ops, transfers, new FeatureNodeDragListener(viewer));
+ viewer.addDropSupport(ops, transfers, new FeatureTreeDropAdapter(this, viewer, sync));
+ viewer.addSelectionChangedListener(this);
+ viewer.getTree().addKeyListener(new KeyAdapter() {
+ @Override
+ public void keyPressed(KeyEvent e) {
+ if(e.stateMask == SWT.MOD1 && e.keyCode == 'c'){
+ copy(viewer.getStructuredSelection());
+ }
+ else if(e.stateMask == SWT.MOD1 && e.keyCode == 'v'){
+ paste(viewer.getStructuredSelection());
+ }
+ }
+ });
+
+ List<TermTree> trees = getTrees();
+ viewer.setComparator(new FeatureTreeViewerComparator());
+ viewer.setInput(trees);
+
+ //create context menu
+ menuService.registerContextMenu(viewer.getControl(), AppModelId.POPUPMENU_EU_ETAXONOMY_TAXEDITOR_STORE_POPUPMENU_FEATURETREEEDITOR);
+ }
+
+ protected abstract List<TermTree> getTrees();
+
+ public void paste(IStructuredSelection selection) {
+ if (StoreUtil.promptCheckIsDirty(this)) {
+ return;
+ }
+
+ ISelection clipBoardSelection = LocalSelectionTransfer.getTransfer().getSelection();
+ Object firstElement = selection.getFirstElement();
+ TermNode parentNode = null;
+ if(firstElement instanceof TermNode){
+ parentNode = (TermNode) firstElement;
+ }
+ else if(firstElement instanceof TermTree){
+ parentNode = ((TermTree)firstElement).getRoot();
+ }
+ if(parentNode!=null){
+ TermNode copiedNode = (TermNode) ((IStructuredSelection)clipBoardSelection).getFirstElement();
+
+ AddFeatureOperation operation = new AddFeatureOperation(copiedNode.getTerm().getUuid(), parentNode, this, this);
+ AbstractUtility.executeOperation(operation, sync);
+ }
+
+ }
+
+ public void copy(IStructuredSelection selection) {
+ LocalSelectionTransfer.getTransfer().setSelection(selection);
+ }
+
+ private void initSession(){
+ if(conversation == null){
+ conversation = CdmStore.createConversation();
+ }
+ if(cdmEntitySession==null){
+ cdmEntitySession = CdmStore.getCurrentSessionManager().newSession(this, true);
+ }
+ }
+
+ private void clearSession() {
+ if(conversation!=null){
+ conversation.close();
+ conversation = null;
+ }
+ if(cdmEntitySession != null) {
+ cdmEntitySession.dispose();
+ cdmEntitySession = null;
+ }
+ dirty.setDirty(false);
+ }
+
+ public void setDirty(boolean isDirty){
+ this.dirty.setDirty(isDirty);
+ }
+
+ @Override
+ public boolean isDirty(){
+ return dirty.isDirty();
+ }
+
+ @Override
+ public void selectionChanged(SelectionChangedEvent event) {
+ //propagate selection
+ selService.setSelection(event.getSelection());
+ }
+
+ @Focus
+ public void focus(){
+ if(viewer!=null){
+ viewer.getControl().setFocus();
+ }
+ if(conversation!=null && !conversation.isBound()){
+ conversation.bind();
+ }
+ if(cdmEntitySession != null) {
+ cdmEntitySession.bind();
+ }
+ }
+
+ @Override
+ public void refresh(){
+ viewer.refresh();
+ }
+
+ public TreeViewer getViewer(){
+ return viewer;
+ }
+
+ @Override
+ public IStructuredSelection getSelection() {
+ return (IStructuredSelection) viewer.getSelection();
+ }
+
+ @Override
+ public ConversationHolder getConversationHolder() {
+ return conversation;
+ }
+
+ @Override
+ @Persist
+ public void save(IProgressMonitor monitor){
+ if (!conversation.isBound()) {
+ conversation.bind();
+ }
+
+ // commit the conversation and start a new transaction immediately
+ conversation.commit(true);
+
+ CdmStore.getService(ITermTreeService.class).saveOrUpdate(getRootEntities());
+
+ List<TermTree> rootEntities = getRootEntities();
+ for (TermTree featureTree : rootEntities) {
+ if(featureTree.getTermType().equals(TermType.Character)){
+ TermTree<Character> characterTree = featureTree;
+ //save characters because they can be modified in this editor
+ characterTree.getDistinctTerms().forEach(character->CdmStore.getService(ITermService.class).merge(character,true));
+ }
+ }
+
+ initializeTrees();
+
+ this.setDirty(false);
+ }
+
+ private void initializeTrees() {
+ Object[] expandedElements = viewer.getExpandedElements();
+ viewer.getTree().removeAll();
+ List<TermTree> trees = CdmStore.getService(ITermTreeService.class).list(TermTree.class, null, null, null, null);
+ viewer.setInput(trees);
+ viewer.setExpandedElements(expandedElements);
+ }
+
+ @PreDestroy
+ public void dispose(){
+ selService.setSelection(null);
+ clearSession();
+ }
+
+ @Override
+ public ICdmEntitySession getCdmEntitySession() {
+ return cdmEntitySession;
+ }
+
+ @Override
+ public Map<Object, List<String>> getPropertyPathsMap() {
+ List<String> propertyPaths = Arrays.asList(new String[] {
+ "children", //$NON-NLS-1$
+ "feature", //$NON-NLS-1$
+ "featureTree", //$NON-NLS-1$
+ });
+ Map<Object, List<String>> propertyPathMap =
+ new HashMap<Object, List<String>>();
+ propertyPathMap.put(TermNode.class,propertyPaths);
+ return propertyPathMap;
+ }
+
+ @Override
+ public List<TermTree> getRootEntities() {
+ return (List<TermTree>) viewer.getInput();
+ }
+
+ @Override
+ public void contextAboutToStop(IMemento memento, IProgressMonitor monitor) {
+ }
+
+ @Override
+ public void contextStop(IMemento memento, IProgressMonitor monitor) {
+ //close view when workbench closes
+ try{
+ thisPart.getContext().get(EPartService.class).hidePart(thisPart);
+ }
+ catch(Exception e){
+ //nothing
+ }
+ }
+
+ @Override
+ public void contextStart(IMemento memento, IProgressMonitor monitor) {
+ }
+
+ @Override
+ public void contextRefresh(IProgressMonitor monitor) {
+ }
+
+ @Override
+ public void workbenchShutdown(IMemento memento, IProgressMonitor monitor) {
+ }
+
+ @Override
+ public void update(CdmDataChangeMap arg0) {
+ }
+
+ @Override
+ public void changed(Object element) {
+ dirty.setDirty(true);
+ viewer.refresh();
+ }
+
+ @Override
+ public void forceDirty() {
+ dirty.setDirty(true);
+ }
+
+ @Override
+ public boolean postOperation(Object objectAffectedByOperation) {
+ initializeTrees();
+ viewer.refresh();
+ if(objectAffectedByOperation instanceof TermNode){
+ TermNode node = (TermNode)objectAffectedByOperation;
+ viewer.expandToLevel(node.getGraph(), 1);
+ }
+ if(objectAffectedByOperation!=null){
+ StructuredSelection selection = new StructuredSelection(objectAffectedByOperation);
+ viewer.setSelection(selection);
+ }
+ return true;
+ }
+
+ @Override
+ public boolean onComplete() {
+ return false;
+ }
+
+}
--- /dev/null
+/**
+* Copyright (C) 2019 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.featuretree.e4;
+
+import java.util.List;
+
+import eu.etaxonomy.cdm.api.service.ITermTreeService;
+import eu.etaxonomy.cdm.model.term.TermTree;
+import eu.etaxonomy.cdm.model.term.TermType;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * @author pplitzner
+ * @since Aug 19, 2019
+ *
+ */
+public class CharacterTreeEditor extends AbstractTermTreeEditor {
+
+ @Override
+ protected List<TermTree> getTrees(){
+ return CdmStore.getService(ITermTreeService.class).list(TermType.Character, null, null, null, TREE_PROPERTY_PATH);
+ }
+
+}
/**
- * Copyright (C) 2007 EDIT
- * European Distributed Institute of Taxonomy
- * http://www.e-taxonomy.eu
- *
- * The contents of this file are subject to the Mozilla Public License Version 1.1
- * See LICENSE.TXT at the top of this package for the full license terms.
- */
-
+* Copyright (C) 2019 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
package eu.etaxonomy.taxeditor.featuretree.e4;
-import java.util.Arrays;
-import java.util.HashMap;
import java.util.List;
-import java.util.Map;
+import java.util.stream.Collectors;
-import javax.annotation.PostConstruct;
-import javax.annotation.PreDestroy;
-import javax.inject.Inject;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.e4.ui.di.Focus;
-import org.eclipse.e4.ui.di.Persist;
-import org.eclipse.e4.ui.di.UISynchronize;
-import org.eclipse.e4.ui.model.application.ui.MDirtyable;
-import org.eclipse.e4.ui.model.application.ui.basic.MPart;
-import org.eclipse.e4.ui.services.EMenuService;
-import org.eclipse.e4.ui.workbench.modeling.EPartService;
-import org.eclipse.e4.ui.workbench.modeling.ESelectionService;
-import org.eclipse.jface.util.LocalSelectionTransfer;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.events.KeyAdapter;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IMemento;
-
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
-import eu.etaxonomy.cdm.api.service.ITermService;
import eu.etaxonomy.cdm.api.service.ITermTreeService;
-import eu.etaxonomy.cdm.model.description.Character;
-import eu.etaxonomy.cdm.model.term.TermNode;
import eu.etaxonomy.cdm.model.term.TermTree;
import eu.etaxonomy.cdm.model.term.TermType;
-import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
-import eu.etaxonomy.taxeditor.editor.definedterm.FeatureTreeViewerComparator;
-import eu.etaxonomy.taxeditor.editor.definedterm.TermTransfer;
-import eu.etaxonomy.taxeditor.featuretree.FeatureNodeTransfer;
-import eu.etaxonomy.taxeditor.featuretree.FeatureTreeContentProvider;
-import eu.etaxonomy.taxeditor.featuretree.FeatureTreeLabelProvider;
-import eu.etaxonomy.taxeditor.featuretree.e4.operation.AddFeatureOperation;
-import eu.etaxonomy.taxeditor.model.AbstractUtility;
-import eu.etaxonomy.taxeditor.model.IContextListener;
-import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
-import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
-import eu.etaxonomy.taxeditor.model.IPartContentHasSupplementalData;
-import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
-import eu.etaxonomy.taxeditor.store.AppModelId;
import eu.etaxonomy.taxeditor.store.CdmStore;
-import eu.etaxonomy.taxeditor.store.StoreUtil;
-import eu.etaxonomy.taxeditor.workbench.part.IE4ViewerPart;
/**
- *
* @author pplitzner
- * @date 06.06.2017
+ * @since Aug 19, 2019
*
*/
-public class FeatureTreeEditor implements IFeatureTreeEditor, ISelectionChangedListener,
- IE4ViewerPart, IPartContentHasDetails, IPartContentHasSupplementalData,
- IContextListener, IConversationEnabled, IDirtyMarkable {
-
- private static final List<String> TREE_PROPERTY_PATH = Arrays.asList(new String[] {
- "root", //$NON-NLS-1$
- "root.children", //$NON-NLS-1$
- "root.children.inapplicableIf", //$NON-NLS-1$
- "root.children.inapplicableIf.feature", //$NON-NLS-1$
- "root.children.inapplicableIf.state", //$NON-NLS-1$
- "root.children.onlyApplicableIf", //$NON-NLS-1$
- "root.children.onlyApplicableIf.feature", //$NON-NLS-1$
- "root.children.onlyApplicableIf.state", //$NON-NLS-1$
- });
-
- private ConversationHolder conversation;
-
- private ICdmEntitySession cdmEntitySession;
-
- @Inject
- private ESelectionService selService;
-
- @Inject
- private MDirtyable dirty;
-
- @Inject
- private UISynchronize sync;
-
- @Inject
- private MPart thisPart;
-
- private TreeViewer viewer;
-
- @Inject
- public FeatureTreeEditor() {
- CdmStore.getContextManager().addContextListener(this);
- }
-
- @PostConstruct
- public void createControl(Composite parent, EMenuService menuService){
- if (CdmStore.isActive()){
- initSession();
- }
- else{
- return;
- }
- parent.setLayout(new FillLayout());
- viewer = new TreeViewer(parent);
- viewer.setContentProvider(new FeatureTreeContentProvider());
- viewer.setLabelProvider(new FeatureTreeLabelProvider());
-
- int ops = DND.DROP_COPY | DND.DROP_MOVE;
- Transfer[] transfers = new Transfer[] {
- FeatureNodeTransfer.getInstance(),
- TermTransfer.getInstance(),
- LocalSelectionTransfer.getTransfer()};
- viewer.addDragSupport(ops, transfers, new FeatureNodeDragListener(viewer));
- viewer.addDropSupport(ops, transfers, new FeatureTreeDropAdapter(this, viewer, sync));
- viewer.addSelectionChangedListener(this);
- viewer.getTree().addKeyListener(new KeyAdapter() {
- @Override
- public void keyPressed(KeyEvent e) {
- if(e.stateMask == SWT.MOD1 && e.keyCode == 'c'){
- copy(viewer.getStructuredSelection());
- }
- else if(e.stateMask == SWT.MOD1 && e.keyCode == 'v'){
- paste(viewer.getStructuredSelection());
- }
- }
- });
-
- List<TermTree> trees = CdmStore.getService(ITermTreeService.class).list(TermTree.class, null, null, null, TREE_PROPERTY_PATH);
- viewer.setComparator(new FeatureTreeViewerComparator());
- viewer.setInput(trees);
-
- //create context menu
- menuService.registerContextMenu(viewer.getControl(), AppModelId.POPUPMENU_EU_ETAXONOMY_TAXEDITOR_STORE_POPUPMENU_FEATURETREEEDITOR);
- }
-
- public void paste(IStructuredSelection selection) {
- if (StoreUtil.promptCheckIsDirty(this)) {
- return;
- }
-
- ISelection clipBoardSelection = LocalSelectionTransfer.getTransfer().getSelection();
- Object firstElement = selection.getFirstElement();
- TermNode parentNode = null;
- if(firstElement instanceof TermNode){
- parentNode = (TermNode) firstElement;
- }
- else if(firstElement instanceof TermTree){
- parentNode = ((TermTree)firstElement).getRoot();
- }
- if(parentNode!=null){
- TermNode copiedNode = (TermNode) ((IStructuredSelection)clipBoardSelection).getFirstElement();
-
- AddFeatureOperation operation = new AddFeatureOperation(copiedNode.getTerm().getUuid(), parentNode, this, this);
- AbstractUtility.executeOperation(operation, sync);
- }
-
- }
-
- public void copy(IStructuredSelection selection) {
- LocalSelectionTransfer.getTransfer().setSelection(selection);
- }
-
- private void initSession(){
- if(conversation == null){
- conversation = CdmStore.createConversation();
- }
- if(cdmEntitySession==null){
- cdmEntitySession = CdmStore.getCurrentSessionManager().newSession(this, true);
- }
- }
-
- private void clearSession() {
- if(conversation!=null){
- conversation.close();
- conversation = null;
- }
- if(cdmEntitySession != null) {
- cdmEntitySession.dispose();
- cdmEntitySession = null;
- }
- dirty.setDirty(false);
- }
-
- public void setDirty(boolean isDirty){
- this.dirty.setDirty(isDirty);
- }
-
- @Override
- public boolean isDirty(){
- return dirty.isDirty();
- }
-
- @Override
- public void selectionChanged(SelectionChangedEvent event) {
- //propagate selection
- selService.setSelection(event.getSelection());
- }
-
- @Focus
- public void focus(){
- if(viewer!=null){
- viewer.getControl().setFocus();
- }
- if(conversation!=null && !conversation.isBound()){
- conversation.bind();
- }
- if(cdmEntitySession != null) {
- cdmEntitySession.bind();
- }
- }
-
- @Override
- public void refresh(){
- viewer.refresh();
- }
-
- public TreeViewer getViewer(){
- return viewer;
- }
-
- @Override
- public IStructuredSelection getSelection() {
- return (IStructuredSelection) viewer.getSelection();
- }
-
- @Override
- public ConversationHolder getConversationHolder() {
- return conversation;
- }
-
- @Override
- @Persist
- public void save(IProgressMonitor monitor){
- if (!conversation.isBound()) {
- conversation.bind();
- }
-
- // commit the conversation and start a new transaction immediately
- conversation.commit(true);
-
- CdmStore.getService(ITermTreeService.class).saveOrUpdate(getRootEntities());
-
- List<TermTree> rootEntities = getRootEntities();
- for (TermTree featureTree : rootEntities) {
- if(featureTree.getTermType().equals(TermType.Character)){
- TermTree<Character> characterTree = featureTree;
- //save characters because they can be modified in this editor
- characterTree.getDistinctTerms().forEach(character->CdmStore.getService(ITermService.class).merge(character,true));
- }
- }
-
- initializeTrees();
-
- this.setDirty(false);
- }
-
- private void initializeTrees() {
- Object[] expandedElements = viewer.getExpandedElements();
- viewer.getTree().removeAll();
- List<TermTree> trees = CdmStore.getService(ITermTreeService.class).list(TermTree.class, null, null, null, null);
- viewer.setInput(trees);
- viewer.setExpandedElements(expandedElements);
- }
-
- @PreDestroy
- public void dispose(){
- selService.setSelection(null);
- clearSession();
- }
-
- @Override
- public ICdmEntitySession getCdmEntitySession() {
- return cdmEntitySession;
- }
-
- @Override
- public Map<Object, List<String>> getPropertyPathsMap() {
- List<String> propertyPaths = Arrays.asList(new String[] {
- "children", //$NON-NLS-1$
- "feature", //$NON-NLS-1$
- "featureTree", //$NON-NLS-1$
- });
- Map<Object, List<String>> propertyPathMap =
- new HashMap<Object, List<String>>();
- propertyPathMap.put(TermNode.class,propertyPaths);
- return propertyPathMap;
- }
-
- @Override
- public List<TermTree> getRootEntities() {
- return (List<TermTree>) viewer.getInput();
- }
-
- @Override
- public void contextAboutToStop(IMemento memento, IProgressMonitor monitor) {
- }
-
- @Override
- public void contextStop(IMemento memento, IProgressMonitor monitor) {
- //close view when workbench closes
- try{
- thisPart.getContext().get(EPartService.class).hidePart(thisPart);
- }
- catch(Exception e){
- //nothing
- }
- }
-
- @Override
- public void contextStart(IMemento memento, IProgressMonitor monitor) {
- }
-
- @Override
- public void contextRefresh(IProgressMonitor monitor) {
- }
-
- @Override
- public void workbenchShutdown(IMemento memento, IProgressMonitor monitor) {
- }
-
- @Override
- public void update(CdmDataChangeMap arg0) {
- }
-
- @Override
- public void changed(Object element) {
- dirty.setDirty(true);
- viewer.refresh();
- }
-
- @Override
- public void forceDirty() {
- dirty.setDirty(true);
- }
-
- @Override
- public boolean postOperation(Object objectAffectedByOperation) {
- initializeTrees();
- viewer.refresh();
- if(objectAffectedByOperation instanceof TermNode){
- TermNode node = (TermNode)objectAffectedByOperation;
- viewer.expandToLevel(node.getGraph(), 1);
- }
- if(objectAffectedByOperation!=null){
- StructuredSelection selection = new StructuredSelection(objectAffectedByOperation);
- viewer.setSelection(selection);
- }
- return true;
- }
+public class FeatureTreeEditor extends AbstractTermTreeEditor {
@Override
- public boolean onComplete() {
- return false;
+ protected List<TermTree> getTrees(){
+ List<TermTree> list = CdmStore.getService(ITermTreeService.class).list(TermType.Feature, null, null, null, TREE_PROPERTY_PATH);
+ return list.stream().filter(tree->tree.getTermType().equals(TermType.Feature)).collect(Collectors.toList());
}
}
--- /dev/null
+/**
+* Copyright (C) 2019 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.featuretree.e4;
+
+import java.util.List;
+
+import eu.etaxonomy.cdm.api.service.ITermTreeService;
+import eu.etaxonomy.cdm.model.term.TermTree;
+import eu.etaxonomy.cdm.model.term.TermType;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * @author pplitzner
+ * @since Aug 19, 2019
+ *
+ */
+public class PropertyTreeEditor extends AbstractTermTreeEditor {
+
+ @Override
+ protected List<TermTree> getTrees(){
+ return CdmStore.getService(ITermTreeService.class).list(TermType.Property, null, null, null, TREE_PROPERTY_PATH);
+ }
+
+}
--- /dev/null
+/**
+* Copyright (C) 2019 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.featuretree.e4;
+
+import java.util.List;
+
+import eu.etaxonomy.cdm.api.service.ITermTreeService;
+import eu.etaxonomy.cdm.model.term.TermTree;
+import eu.etaxonomy.cdm.model.term.TermType;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * @author pplitzner
+ * @since Aug 19, 2019
+ *
+ */
+public class StructureTreeEditor extends AbstractTermTreeEditor {
+
+ @Override
+ protected List<TermTree> getTrees(){
+ return CdmStore.getService(ITermTreeService.class).list(TermType.Structure, null, null, null, TREE_PROPERTY_PATH);
+ }
+
+}
import org.eclipse.jface.viewers.IStructuredSelection;
import eu.etaxonomy.cdm.model.term.TermNode;
-import eu.etaxonomy.taxeditor.featuretree.e4.FeatureTreeEditor;
+import eu.etaxonomy.taxeditor.featuretree.e4.AbstractTermTreeEditor;
public class CopyFeatureHandler {
@Execute
public void execute(@Named(IServiceConstants.ACTIVE_PART) MPart part,
@Named(IServiceConstants.ACTIVE_SELECTION) IStructuredSelection selection){
- ((FeatureTreeEditor) part.getObject()).copy(selection);
+ ((AbstractTermTreeEditor) part.getObject()).copy(selection);
}
@CanExecute
@Named(IServiceConstants.ACTIVE_PART) MPart part,
MHandledMenuItem menuItem){
boolean canExecute = false;
- canExecute =part.getObject() instanceof FeatureTreeEditor
+ canExecute =part.getObject() instanceof AbstractTermTreeEditor
&& selection!=null
&& selection.size()==1
&& selection.getFirstElement() instanceof TermNode;
import org.eclipse.jface.viewers.IStructuredSelection;
import eu.etaxonomy.cdm.model.term.TermNode;
-import eu.etaxonomy.taxeditor.featuretree.e4.FeatureTreeEditor;
+import eu.etaxonomy.taxeditor.featuretree.e4.AbstractTermTreeEditor;
public class PasteFeatureHandler {
@Execute
public void execute(@Named(IServiceConstants.ACTIVE_PART) MPart part,
@Named(IServiceConstants.ACTIVE_SELECTION) IStructuredSelection selection){
- FeatureTreeEditor editor = (FeatureTreeEditor)part.getObject();
+ AbstractTermTreeEditor editor = (AbstractTermTreeEditor)part.getObject();
editor.paste(selection);
}
MHandledMenuItem menuItem){
boolean canExecute = false;
ISelection transferSelection = LocalSelectionTransfer.getTransfer().getSelection();
- canExecute = part.getObject() instanceof FeatureTreeEditor
+ canExecute = part.getObject() instanceof AbstractTermTreeEditor
&& selection!=null
&& selection.size()==1
&& transferSelection instanceof IStructuredSelection