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 extends AbstractFormSection> 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