ref #7920: add area specific status preference in distribution editor
authorKatja Luther <k.luther@bgbm.org>
Mon, 29 Apr 2019 10:34:40 +0000 (12:34 +0200)
committerKatja Luther <k.luther@bgbm.org>
Mon, 29 Apr 2019 10:46:17 +0000 (12:46 +0200)
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/e4/DistributionEditor.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/e4/StatusComboBoxDataProvider.java
eu.etaxonomy.taxeditor.store/OSGI-INF/l10n/bundle.properties
eu.etaxonomy.taxeditor.store/OSGI-INF/l10n/bundle_de.properties
eu.etaxonomy.taxeditor.store/fragment.e4xmi

index 935c1ba..e286957 100755 (executable)
@@ -75,8 +75,14 @@ import ca.odell.glazedlists.EventList;
 import eu.etaxonomy.cdm.api.service.IVocabularyService;
 import eu.etaxonomy.cdm.api.service.dto.TaxonDescriptionDTO;
 import eu.etaxonomy.cdm.api.service.dto.TaxonDistributionDTO;
-import eu.etaxonomy.cdm.model.term.DefinedTermBase;
 import eu.etaxonomy.cdm.model.common.Language;
+import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
+import eu.etaxonomy.cdm.model.description.Distribution;
+import eu.etaxonomy.cdm.model.description.TaxonDescription;
+import eu.etaxonomy.cdm.model.location.NamedArea;
+import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.cdm.model.reference.Reference;
+import eu.etaxonomy.cdm.model.term.DefinedTermBase;
 import eu.etaxonomy.cdm.model.term.OrderedTermBase;
 import eu.etaxonomy.cdm.model.term.OrderedTermComparator;
 import eu.etaxonomy.cdm.model.term.Representation;
@@ -84,12 +90,6 @@ import eu.etaxonomy.cdm.model.term.TermIdInVocabularyComparator;
 import eu.etaxonomy.cdm.model.term.TermLanguageComparator;
 import eu.etaxonomy.cdm.model.term.TermType;
 import eu.etaxonomy.cdm.model.term.TermVocabulary;
-import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
-import eu.etaxonomy.cdm.model.description.Distribution;
-import eu.etaxonomy.cdm.model.description.TaxonDescription;
-import eu.etaxonomy.cdm.model.location.NamedArea;
-import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
-import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.l10n.Messages;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
@@ -619,7 +619,7 @@ public class DistributionEditor extends Composite {
     private SortedSet<DefinedTermBase> loadNamedAreas() {
         //IPreferenceStore preferenceStore = PreferencesUtil.getPreferenceStore();
 
-        String valuesAreas = PreferencesUtil.getStringValue(PreferencePredicate.AvailableDistributionAreaTerms.getKey());
+        String valuesAreas = PreferencesUtil.getStringValue(PreferencePredicate.AvailableDistributionAreaTerms.getKey(), true);
         String values = PreferencesUtil.getStringValue(PreferencePredicate.AvailableDistributionAreaVocabularies.getKey());
         Set<UUID> uuidList = new HashSet<UUID>();
         String[] split;
@@ -646,18 +646,25 @@ public class DistributionEditor extends Composite {
         }else{
             vocs= service.find(uuidList);
         }
-        split = valuesAreas.split(";"); //$NON-NLS-1$
-        listValue = Arrays.asList(split);
         for (TermVocabulary voc: vocs){
             termlist.addAll(service.getTerms(voc, null, null, null, null).getRecords());
         }
         List<DefinedTermBase> filteredList = new ArrayList();
-        for (DefinedTermBase area: termlist){
-            if (listValue.contains(area.getUuid().toString())) {
-                filteredList.add(area);
-            }
+        if (valuesAreas != null && valuesAreas != "") {
+            split = valuesAreas.split(";"); //$NON-NLS-1$
+            listValue = Arrays.asList(split);
 
+            for (DefinedTermBase area: termlist){
+                if (listValue.contains(area.getUuid().toString())) {
+                    filteredList.add(area);
+                }
+
+            }
+        }else{
+            filteredList.addAll(termlist);
         }
+
+
         String sortOrder = PreferencesUtil.getSortNamedAreasInDistributionEditor();
         if (sortOrder.equals(TermOrder.Natural.getKey())){
             areas =  getTermsOrderedByVocabularyOrder(filteredList);
index b3cf7ce..4fbd1c8 100755 (executable)
@@ -17,11 +17,16 @@ import java.util.UUID;
 import org.apache.commons.lang.StringUtils;
 import org.eclipse.nebula.widgets.nattable.edit.editor.IComboBoxDataProvider;
 
+import eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm;
+import eu.etaxonomy.cdm.model.location.NamedArea;
+import eu.etaxonomy.cdm.model.metadata.CdmPreference;
+import eu.etaxonomy.cdm.model.metadata.CdmPreference.PrefKey;
+import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.cdm.model.metadata.PreferenceSubject;
 import eu.etaxonomy.cdm.model.term.DefinedTermBase;
 import eu.etaxonomy.cdm.model.term.OrderedTermComparator;
 import eu.etaxonomy.cdm.model.term.Representation;
-import eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm;
-import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.taxeditor.preference.CdmPreferenceCache;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
@@ -43,16 +48,28 @@ public class StatusComboBoxDataProvider implements IComboBoxDataProvider {
 
     @Override
     public List<?> getValues(int columnIndex, int rowIndex) {
-        return getValues();
+        NamedArea area = editor.getAreaToColumnIndexMap().get(columnIndex);
+        PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewInstance("/"+PreferenceSubject.DISTR_EDITOR+"/area/"+area.getUuid().toString()), PreferencePredicate.AvailableDistributionPerAreaStatus);
+        CdmPreference pref = CdmPreferenceCache.instance().findBestMatching(key);
+        if (pref == null) {
+            pref = CdmPreferenceCache.instance().get(PreferencePredicate.AvailableDistributionStatus.getKey());
+            if (pref == null){
+                pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.AvailableDistributionStatus, PreferencesUtil.getStringValue(PreferencePredicate.AvailableDistributionStatus.getKey()));
+            }
+        }
+        return getValues(pref);
+
     }
 
-    public static List<?> getValues(){
+
+    public static List<?> getValues(CdmPreference pref){
         List<DefinedTermBase> inputAll = new ArrayList<>();
         PresenceAbsenceTerm noneTerm = PresenceAbsenceTerm.NewInstance();
         noneTerm.setTitleCache(" - ", true);
         noneTerm.addRepresentation(Representation.NewInstance(" - ", " ", " ", CdmStore.getDefaultLanguage()));
         inputAll.add(noneTerm);
-        String statusString = PreferencesUtil.getStringValue(PreferencePredicate.AvailableDistributionStatus.getKey());
+        String statusString = pref.getValue();
+
         List<PresenceAbsenceTerm> inputList;
         if (!StringUtils.isBlank(statusString)){
 
index e985358..1ba3faf 100644 (file)
@@ -252,4 +252,17 @@ page.name.54 = External Services
 page.name.55 = Supplemental Data\r
 page.name.56 = Search\r
 page.name.57 = Taxon Search\r
-page.name.58 = Common Names
\ No newline at end of file
+page.name.58 = Common Names\r
+handledmenuitem.label.15 = Move term\r
+partdescriptor.label.2 = Term Search\r
+partdescriptor.label.3 = Occurrence Search\r
+command.commandname.15 = Open Cache Updater\r
+command.commandname.16 = Open Sort Index Updater\r
+command.commandname.17 = Move Term\r
+command.commandname.18 = Open Distribution Status Per Area Wizard\r
+handledmenuitem.label.16 = Term Search\r
+handledmenuitem.label.17 = Occurrence Search\r
+handledmenuitem.label.18 = Update Caches\r
+handledmenuitem.label.19 = Update Sortindices\r
+\r
+command.commandname.19 = Open Area Wizard\r
index ecc3ea6..0c2da84 100644 (file)
@@ -246,4 +246,11 @@ page.name.54 = Externe Services
 page.name.55 = Zusatzdaten
 page.name.56 = Suche
 page.name.57 = Taxonsuche
-page.name.58 = Trivialnamen
\ No newline at end of file
+page.name.58 = Trivialnamen
+handledmenuitem.label.15 = Verschiebe Term
+partdescriptor.label.2 = Term Suche
+partdescriptor.label.3 = Occurrence Suche
+handledmenuitem.label.16 = Term Suche
+handledmenuitem.label.17 = Occurrence Suche
+handledmenuitem.label.18 = Update Caches
+handledmenuitem.label.19 = Update Sortindices
\ No newline at end of file
index 51d4736..5ada212 100644 (file)
@@ -73,7 +73,7 @@
           </children>
         </children>
         <children xsi:type="menu:HandledMenuItem" xmi:id="_W94ssIdQEeecZ4F2Y9Z0Og" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.commandlabel14" label="%command.label.14" command="_Z_XgsIdQEeecZ4F2Y9Z0Og"/>
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_aHm7kEAVEembfJNLZI9wiA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.moveto" label="Move term" command="_d6YpoEAVEembfJNLZI9wiA"/>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_aHm7kEAVEembfJNLZI9wiA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.moveto" label="%handledmenuitem.label.15" command="_d6YpoEAVEembfJNLZI9wiA"/>
       </menus>
     </elements>
     <elements xsi:type="basic:PartDescriptor" xmi:id="_HBpj0KkNEeejedk4mZQIGw" elementId="eu.etaxonomy.taxeditor.view.dataimport.e4.SpecimenImportViewE4" label="%view.name.7" allowMultiple="true" closeable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.view.dataimport.e4.SpecimenImportViewE4">
@@ -84,8 +84,8 @@
     </elements>
     <elements xsi:type="basic:PartDescriptor" xmi:id="_aT37QM3UEeeznb_sS6rfAQ" elementId="eu.etaxonomy.taxeditor.store.partdescriptor.SearchDialog" label="%view.name.9" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.ui.dialog.selection.SearchDialog"/>
     <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="Term Search" 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="Occurrence Search" closeable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.view.search.facet.occurrence.OccurrenceSearch"/>
+    <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"/>
   </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="commands:Command" xmi:id="_xDk5kNjyEeidDMMI9xTsbQ" elementId="eu.etaxonomy.taxeditor.store.command.featureTree.pasteFeature" commandName="%command.commandname.12"/>
     <elements xsi:type="commands:Command" xmi:id="_Za5DYO5vEeizn7bmbAeBkw" elementId="eu.etaxonomy.taxeditor.store.open.OpenDistributionStatusWizardHandler" commandName="%command.commandname.13"/>
     <elements xsi:type="commands:Command" xmi:id="_xyZ4oPhmEei8uPv-H2wqnw" elementId="eu.etaxonomy.taxeditor.store.command.featureTree.exportTreeOntology" commandName="%command.commandname.14"/>
-    <elements xsi:type="commands:Command" xmi:id="_qYxw8D85EemTy7SLZkowuQ" elementId="eu.etaxonomy.taxeditor.store.command.OpenDatabaseRepairWizard" commandName="Open Cache Updater"/>
-    <elements xsi:type="commands:Command" xmi:id="_VUQY0D86EemTy7SLZkowuQ" elementId="eu.etaxonomy.taxeditor.store.command.openSortIndexUpdaterWizard" commandName="Open Sort Index Updater"/>
-    <elements xsi:type="commands:Command" xmi:id="_d6YpoEAVEembfJNLZI9wiA" elementId="eu.etaxonomy.taxeditor.editor.definedTerms.moveTerm" commandName="Move Term"/>
     <elements xsi:type="commands:Command" xmi:id="_Z7vHUGdoEemm7Ie9EDdklA" elementId="eu.etaxonomy.taxeditor.store.command.importOwl" commandName="OWL"/>
+    <elements xsi:type="commands:Command" xmi:id="_qYxw8D85EemTy7SLZkowuQ" elementId="eu.etaxonomy.taxeditor.store.command.OpenDatabaseRepairWizard" commandName="%command.commandname.15"/>
+    <elements xsi:type="commands:Command" xmi:id="_VUQY0D86EemTy7SLZkowuQ" elementId="eu.etaxonomy.taxeditor.store.command.openSortIndexUpdaterWizard" commandName="%command.commandname.16"/>
+    <elements xsi:type="commands:Command" xmi:id="_d6YpoEAVEembfJNLZI9wiA" elementId="eu.etaxonomy.taxeditor.editor.definedTerms.moveTerm" commandName="%command.commandname.17"/>
+    <elements xsi:type="commands:Command" xmi:id="_lJi2sGZvEemew5ARzf3JfA" elementId="eu.etaxonomy.taxeditor.store.open.OpenDistributionPerAreaStatusWizardHandler" commandName="%command.commandname.18"/>
+    <elements xsi:type="commands:Command" xmi:id="_QnWnMGZ-Eemew5ARzf3JfA" elementId="eu.etaxonomy.taxeditor.store.open.OpenDistributionAreaWizardHandler" commandName="%command.commandname.19"/>
   </fragments>
   <fragments xsi:type="fragment:StringModelFragment" xmi:id="_swGH0GhvEee3K4uKJljEYg" featurename="handlers" parentElementId="xpath:/">
     <elements xsi:type="commands:Handler" xmi:id="_rVEdIGcjEee0qLTtA2ZpVQ" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.RemoveFeatureHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.RemoveFeatureHandler" command="_fNBtQGcjEee0qLTtA2ZpVQ"/>
     <elements xsi:type="commands:Handler" xmi:id="_i4yZAD8zEemTy7SLZkowuQ" elementId="eu.etaxonomy.taxeditor.store.handler.0" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.handler.OpenDatabaseRepairWizardHandler" command="_qYxw8D85EemTy7SLZkowuQ"/>
     <elements xsi:type="commands:Handler" xmi:id="_PugRQD86EemTy7SLZkowuQ" elementId="eu.etaxonomy.taxeditor.store.handler.1" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.handler.OpenUpdateSortIndicesHandler" command="_VUQY0D86EemTy7SLZkowuQ"/>
     <elements xsi:type="commands:Handler" xmi:id="_iKdcQGdoEemm7Ie9EDdklA" elementId="eu.etaxonomy.taxeditor.io.e4.in.owl.OpenOwlImportWizard" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.io.e4.in.owl.OpenOwlImportWizard" command="_Z7vHUGdoEemm7Ie9EDdklA"/>
+    <elements xsi:type="commands:Handler" xmi:id="_e-sBgGZwEemew5ARzf3JfA" elementId="eu.etaxonomy.taxeditor.handler.e4.OpenDistributionStatusPerAreaWizardHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.handler.e4.OpenDistributionPerAreaStatusWizardHandler" command="_lJi2sGZvEemew5ARzf3JfA"/>
+    <elements xsi:type="commands:Handler" xmi:id="_XxpDoGZ-Eemew5ARzf3JfA" elementId="eu.etaxonomy.taxeditor.handler.e4.OpenDistributionAreaWizardHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.handler.e4.OpenDistributionAreaWizardHandler" command="_QnWnMGZ-Eemew5ARzf3JfA"/>
   </fragments>
   <fragments xsi:type="fragment:StringModelFragment" xmi:id="_qT4hgIfTEeecZ4F2Y9Z0Og" featurename="children" parentElementId="eu.etaxonomy.taxeditor.workbench.menu.window" positionInList="before:eu.etaxonomy.taxeditor.application.windowMenu.last">
     <elements xsi:type="menu:Menu" xmi:id="_LT3P8IfcEeecZ4F2Y9Z0Og" elementId="eu.etaxonomy.taxeditor.store.menu.termeditor" label="%menu.label.1">
         <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_h15bwEb1EeiER_VRS0L7wA" coreExpressionId="isCdmStoreConnectedAndShowExperimental"/>
         <parameters xmi:id="_eU0zcUbOEeiER_VRS0L7wA" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.gfbioTermImport" name="eu.etaxonomy.taxeditor.workbench.commandparameter.partName" value="eu.etaxonomy.taxeditor.view.webimport.termimport.GfBioTerminologyImportPart"/>
       </children>
-      <children xsi:type="menu:HandledMenuItem" xmi:id="_fbZtkB7xEemDKJyLc5CJfQ" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.termsearch" label="Term Search" command="_bnVKsCZxEeeQLpuomSmVoQ">
+      <children xsi:type="menu:HandledMenuItem" xmi:id="_fbZtkB7xEemDKJyLc5CJfQ" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.termsearch" label="%handledmenuitem.label.16" command="_bnVKsCZxEeeQLpuomSmVoQ">
         <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_fDkegDNMEemOn_75IU-Tvg" coreExpressionId="isShowExperimentalFeatures"/>
         <parameters xmi:id="_jnbCEB7xEemDKJyLc5CJfQ" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.termsearch" name="eu.etaxonomy.taxeditor.workbench.commandparameter.partName" value="eu.etaxonomy.taxeditor.store.partdescriptor.termsearch"/>
       </children>
-      <children xsi:type="menu:HandledMenuItem" xmi:id="_ab1eYDNMEemOn_75IU-Tvg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.occurrencesearch" label="Occurrence Search" command="_bnVKsCZxEeeQLpuomSmVoQ">
+      <children xsi:type="menu:HandledMenuItem" xmi:id="_ab1eYDNMEemOn_75IU-Tvg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.occurrencesearch" label="%handledmenuitem.label.17" command="_bnVKsCZxEeeQLpuomSmVoQ">
         <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_eiOE8DNMEemOn_75IU-Tvg" coreExpressionId="isShowExperimentalFeatures"/>
         <parameters xmi:id="_ab1eYTNMEemOn_75IU-Tvg" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.occurrencesearch" name="eu.etaxonomy.taxeditor.workbench.commandparameter.partName" value="eu.etaxonomy.taxeditor.store.partdescriptor.occurencesearch"/>
       </children>
     <elements xsi:type="menu:HandledMenuItem" xmi:id="_uHiLwBWNEeiazYUJirF0Pw" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.handledmenuitemlabel6" label="%handledmenuitem.label.11" command="_jSJrsBWPEeiazYUJirF0Pw"/>
   </fragments>
   <fragments xsi:type="fragment:StringModelFragment" xmi:id="_S2CIED8oEempU5gGjh-zOg" featurename="children" parentElementId="eu.etaxonomy.taxeditor.workbench.menu.databaseRepair">
-    <elements xsi:type="menu:HandledMenuItem" xmi:id="_67xR4D8oEempU5gGjh-zOg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.UpdateCaches" label="Update Caches" command="_qYxw8D85EemTy7SLZkowuQ">
+    <elements xsi:type="menu:HandledMenuItem" xmi:id="_67xR4D8oEempU5gGjh-zOg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.UpdateCaches" label="%handledmenuitem.label.18" command="_qYxw8D85EemTy7SLZkowuQ">
       <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_HcAdUD8_EemTy7SLZkowuQ" coreExpressionId="hasROLE_PROJECT_MANAGER_AND_isCdmStoreConnected"/>
     </elements>
-    <elements xsi:type="menu:HandledMenuItem" xmi:id="_CSXsAD8pEempU5gGjh-zOg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.UpdateSortindices" label="Update Sortindices" command="_VUQY0D86EemTy7SLZkowuQ">
+    <elements xsi:type="menu:HandledMenuItem" xmi:id="_CSXsAD8pEempU5gGjh-zOg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.UpdateSortindices" label="%handledmenuitem.label.19" command="_VUQY0D86EemTy7SLZkowuQ">
       <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_JRRV0D8_EemTy7SLZkowuQ" coreExpressionId="hasROLE_PROJECT_MANAGER_AND_isCdmStoreConnected"/>
     </elements>
   </fragments>