Merge branch 'release/5.8.0'
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / element / CdmFormFactory.java
index f3b9e96ea514596cfb61355fa10a6f0fa6bf497a..146785d7e20b7f6e83562e6830133678fda1386c 100644 (file)
@@ -38,6 +38,8 @@ import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Event;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.ui.forms.IFormColors;
+import org.eclipse.ui.forms.events.ExpansionAdapter;
+import org.eclipse.ui.forms.events.ExpansionEvent;
 import org.eclipse.ui.forms.widgets.ExpandableComposite;
 import org.eclipse.ui.forms.widgets.FormToolkit;
 import org.eclipse.ui.forms.widgets.Section;
@@ -118,6 +120,8 @@ import eu.etaxonomy.cdm.model.term.TermType;
 import eu.etaxonomy.cdm.model.term.TermVocabulary;
 import eu.etaxonomy.cdm.strategy.parser.ParserProblem;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.store.StoreUtil;
 import eu.etaxonomy.taxeditor.ui.combo.EnumComboElement;
 import eu.etaxonomy.taxeditor.ui.combo.InverseTermWrapper;
 import eu.etaxonomy.taxeditor.ui.combo.MisappliedRelationshipComboElement;
@@ -362,6 +366,7 @@ import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElementWithAbbreviatedTitle;
 import eu.etaxonomy.taxeditor.ui.selection.NomenclaturalAuthorTeamSelectionElement;
 import eu.etaxonomy.taxeditor.ui.selection.TaxonNodeSelectionElement;
+import eu.etaxonomy.taxeditor.view.detail.CdmSectionPart;
 
 /**
  * <p>
@@ -1168,6 +1173,16 @@ public class CdmFormFactory extends FormToolkit {
         section.addFocusListener(selectionFocusHandler);
         section.setPropertyChangeListeners(propertyChangeListeners);
 
+        section.addExpansionListener(new ExpansionAdapter(){
+            @Override
+            public void expansionStateChanged(ExpansionEvent e) {
+                super.expansionStateChanged(e);
+                if(section.getEntity()!=null){
+                    PreferencesUtil.setStringValue(StoreUtil.getPrefKey(section.getClass(), section.getEntity().getClass().getCanonicalName()), e.getState()?CdmSectionPart.EXPANDED:CdmSectionPart.COLLAPSED);
+                }
+            }
+        });
+
         if (section.getToggle() != null) {
             section.getToggle().setHoverDecorationColor(getColors().getColor(IFormColors.TB_TOGGLE_HOVER));
             section.getToggle().setDecorationColor(getColors().getColor(IFormColors.TB_TOGGLE));
@@ -2783,6 +2798,10 @@ public class CdmFormFactory extends FormToolkit {
         } else if (entity instanceof NameTypeDesignation) {
             element = new NameTypeDesignationElement(this, parentElement, (NameTypeDesignation) entity, removeListener,
                     style);
+            // FIXME #8135 temporary disabled textual type designation
+//        } else if (entity instanceof TextualTypeDesignation) {
+//            element = new TextTypeDesignationElement(this, parentElement, (TextualTypeDesignation) entity, removeListener,
+//                    style);
         } else if (entity instanceof NameRelationship) {
             element = new NameRelationshipDetailElement(this, parentElement, (NameRelationship) entity, removeListener,
                     style);