From 5e1dc0994237eb6a458fa413061a61be80be00a9 Mon Sep 17 00:00:00 2001 From: Katja Luther Date: Mon, 29 Apr 2019 12:34:40 +0200 Subject: [PATCH] ref #7920: add area specific status preference in distribution editor --- .../view/checklist/e4/DistributionEditor.java | 35 +++++++++++-------- .../e4/StatusComboBoxDataProvider.java | 27 +++++++++++--- .../OSGI-INF/l10n/bundle.properties | 15 +++++++- .../OSGI-INF/l10n/bundle_de.properties | 9 ++++- eu.etaxonomy.taxeditor.store/fragment.e4xmi | 24 +++++++------ 5 files changed, 79 insertions(+), 31 deletions(-) diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/e4/DistributionEditor.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/e4/DistributionEditor.java index 935c1bafd..e2869577d 100755 --- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/e4/DistributionEditor.java +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/e4/DistributionEditor.java @@ -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 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 uuidList = new HashSet(); 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 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); diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/e4/StatusComboBoxDataProvider.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/e4/StatusComboBoxDataProvider.java index b3cf7ce3d..4fbd1c8b4 100755 --- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/e4/StatusComboBoxDataProvider.java +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/e4/StatusComboBoxDataProvider.java @@ -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 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 inputList; if (!StringUtils.isBlank(statusString)){ diff --git a/eu.etaxonomy.taxeditor.store/OSGI-INF/l10n/bundle.properties b/eu.etaxonomy.taxeditor.store/OSGI-INF/l10n/bundle.properties index e985358e6..1ba3faf89 100644 --- a/eu.etaxonomy.taxeditor.store/OSGI-INF/l10n/bundle.properties +++ b/eu.etaxonomy.taxeditor.store/OSGI-INF/l10n/bundle.properties @@ -252,4 +252,17 @@ page.name.54 = External Services page.name.55 = Supplemental Data page.name.56 = Search page.name.57 = Taxon Search -page.name.58 = Common Names \ No newline at end of file +page.name.58 = Common Names +handledmenuitem.label.15 = Move term +partdescriptor.label.2 = Term Search +partdescriptor.label.3 = Occurrence Search +command.commandname.15 = Open Cache Updater +command.commandname.16 = Open Sort Index Updater +command.commandname.17 = Move Term +command.commandname.18 = Open Distribution Status Per Area Wizard +handledmenuitem.label.16 = Term Search +handledmenuitem.label.17 = Occurrence Search +handledmenuitem.label.18 = Update Caches +handledmenuitem.label.19 = Update Sortindices + +command.commandname.19 = Open Area Wizard diff --git a/eu.etaxonomy.taxeditor.store/OSGI-INF/l10n/bundle_de.properties b/eu.etaxonomy.taxeditor.store/OSGI-INF/l10n/bundle_de.properties index ecc3ea6d8..0c2da843b 100644 --- a/eu.etaxonomy.taxeditor.store/OSGI-INF/l10n/bundle_de.properties +++ b/eu.etaxonomy.taxeditor.store/OSGI-INF/l10n/bundle_de.properties @@ -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 diff --git a/eu.etaxonomy.taxeditor.store/fragment.e4xmi b/eu.etaxonomy.taxeditor.store/fragment.e4xmi index 51d473630..5ada21242 100644 --- a/eu.etaxonomy.taxeditor.store/fragment.e4xmi +++ b/eu.etaxonomy.taxeditor.store/fragment.e4xmi @@ -73,7 +73,7 @@ - + @@ -84,8 +84,8 @@ - - + + @@ -152,10 +152,12 @@ - - - + + + + + @@ -196,6 +198,8 @@ + + @@ -209,11 +213,11 @@ - + - + @@ -275,10 +279,10 @@ - + - + -- 2.34.1