Fix expansion state preference for details and suppData view
authorPatrick Plitzner <p.plitzner@bgbm.org>
Wed, 22 May 2019 13:04:22 +0000 (15:04 +0200)
committerPatrick Plitzner <p.plitzner@bgbm.org>
Wed, 22 May 2019 13:04:22 +0000 (15:04 +0200)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/PreferencesUtil.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/detail/CdmSectionPart.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/e4/AbstractCdmDataViewerE4.java

index a2d4a0b4265cff2c2c2eee5f2a1d80058a70f771..f0ff5f75c24c6a3e76a13626a256a8ddacf0fc0d 100644 (file)
@@ -93,7 +93,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();
        }
 
@@ -1616,4 +1616,13 @@ public class PreferencesUtil implements IPreferenceKeys {
         }
     }
 
+    /**
+     * Returns whether the named preference is known.
+     * @param prefKey the key of the preference
+     * @return <code>true</code> if the preference is known, <code>false</code> otherwise
+     */
+    public static boolean contains(String prefKey){
+        return getPreferenceStore().contains(prefKey(prefKey));
+    }
+
 }
index cc2acadbe5d2dfcee1928517bb15e1323961a14b..34aa55a0d2fd9de35c8773c3b4ec0d0147bf8904 100644 (file)
@@ -55,6 +55,9 @@ import eu.etaxonomy.taxeditor.ui.section.taxon.TaxonDetailSection;
 public class CdmSectionPart<T> extends SectionPart implements
                IPropertyChangeListener {
 
+    public static String EXPANDED = "expanded";
+    public static String COLLAPSED = "collapsed";
+
        private final AbstractFormSection<T> formSection;
 
        /**
@@ -199,7 +202,7 @@ public class CdmSectionPart<T> 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);
        }
 
 }
index d4abd6d4b3537ae9990903dead0e6e0e368a7dd3..7cfea33174acbfba766e5aeedcc497af8fc526fa 100644 (file)
@@ -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;
     }