From 5bb1eb990df6522d294a9deb6eb7a87199ac8f60 Mon Sep 17 00:00:00 2001 From: Patrick Plitzner Date: Wed, 22 May 2019 15:04:22 +0200 Subject: [PATCH] Fix expansion state preference for details and suppData view --- .../taxeditor/preference/PreferencesUtil.java | 11 ++++++++++- .../taxeditor/view/detail/CdmSectionPart.java | 5 ++++- .../taxeditor/view/e4/AbstractCdmDataViewerE4.java | 9 ++++++--- 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/PreferencesUtil.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/PreferencesUtil.java index 5a077c2e4..32eb38bb8 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/PreferencesUtil.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/PreferencesUtil.java @@ -107,7 +107,7 @@ public class PreferencesUtil implements IPreferenceKeys { return TaxeditorStorePlugin.getDefault().getPreferenceStore(); } - static String prefKey(String name) { + private static String prefKey(String name) { return name + "_"+ ((CdmRemoteSource)CdmStore.getActiveCdmSource()).toString(); } @@ -1986,4 +1986,13 @@ public static void setPreferencesToDB(List preferences) { + /** + * Returns whether the named preference is known. + * @param prefKey the key of the preference + * @return true if the preference is known, false otherwise + */ + public static boolean contains(String prefKey){ + return getPreferenceStore().contains(prefKey(prefKey)); + } + } diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/detail/CdmSectionPart.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/detail/CdmSectionPart.java index cc2acadbe..34aa55a0d 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/detail/CdmSectionPart.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/detail/CdmSectionPart.java @@ -55,6 +55,9 @@ import eu.etaxonomy.taxeditor.ui.section.taxon.TaxonDetailSection; public class CdmSectionPart extends SectionPart implements IPropertyChangeListener { + public static String EXPANDED = "expanded"; + public static String COLLAPSED = "collapsed"; + private final AbstractFormSection formSection; /** @@ -199,7 +202,7 @@ public class CdmSectionPart extends SectionPart implements @Override protected void expansionStateChanged(boolean expanded) { super.expansionStateChanged(expanded); - PreferencesUtil.setBooleanValue(StoreUtil.getPrefKey(formSection.getClass(), rootInput), expanded); + PreferencesUtil.setStringValue(StoreUtil.getPrefKey(formSection.getClass(), rootInput), expanded?EXPANDED:COLLAPSED); } } diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/e4/AbstractCdmDataViewerE4.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/e4/AbstractCdmDataViewerE4.java index d4abd6d4b..7cfea3317 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/e4/AbstractCdmDataViewerE4.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/e4/AbstractCdmDataViewerE4.java @@ -179,9 +179,12 @@ public abstract class AbstractCdmDataViewerE4 extends Viewer implements IConvers protected int getSectionStyle(Class clazz, boolean initiallyExpanded){ int style = ExpandableComposite.TWISTIE; - if(PreferencesUtil.getBooleanValue(StoreUtil.getPrefKey(clazz, getInput())) - || initiallyExpanded){ - style |= ExpandableComposite.EXPANDED; + String prefKey = StoreUtil.getPrefKey(clazz, getInput()); + if(PreferencesUtil.contains(prefKey)){ + style = PreferencesUtil.getStringValue(prefKey)==CdmSectionPart.EXPANDED?style |= ExpandableComposite.EXPANDED:style; + } + else{ + style = initiallyExpanded?style |= ExpandableComposite.EXPANDED:style; } return style; } -- 2.34.1