Merge branch 'release/5.42.0'
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / section / description / detail / AbstractDetailedDescriptionDetailElement.java
index 7f18b09c77a593382ea76b27e572b4533b5dea4f..c99f7a01eefcfd0d75db09b4746b71101e383848 100644 (file)
@@ -6,15 +6,16 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.section.description.detail;
 
 import org.eclipse.swt.SWT;
-import org.eclipse.ui.forms.widgets.ExpandableComposite;
 
 import eu.etaxonomy.cdm.model.common.LanguageString;
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
+import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.store.StoreUtil;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
@@ -28,13 +29,12 @@ import eu.etaxonomy.taxeditor.ui.section.description.ModifierSection;
  *
  * @author n.hoffmann
  * @created Jun 10, 2010
- * @version 1.0
  */
 public abstract class AbstractDetailedDescriptionDetailElement<T extends DescriptionElementBase> extends AbstractCdmDetailElement<T>{
 
-    TimePeriodElement timePeriod;
-    ModifierSection section_modifiers;
-    TextWithLabelElement text_modifyingText;
+    private TimePeriodElement timePeriod;
+    private ModifierSection section_modifiers;
+    private TextWithLabelElement text_modifyingText;
 
        /**
         * <p>Constructor for AbstractDetailedDescriptionDetailElement.</p>
@@ -46,28 +46,50 @@ public abstract class AbstractDetailedDescriptionDetailElement<T extends Descrip
         * @param <T> a T object.
         */
        public AbstractDetailedDescriptionDetailElement(CdmFormFactory formFactory,
-                       ICdmFormElement formElement, T entity, int style) {
+                       ICdmFormElement formElement, T entity, boolean enabled, int style) {
                super(formFactory, formElement);
                setEntity(entity);
+               setEnabled(enabled);
        }
+       public AbstractDetailedDescriptionDetailElement(CdmFormFactory formFactory,
+                       ICdmFormElement formElement, T entity, int style) {
+               super(formFactory, formElement);
+               setEntity(entity);
 
+       }
 
     protected void createTimePeriod(ICdmFormElement formElement, DescriptionElementBase entity,
             int style) {
            timePeriod = formFactory.createTimePeriodElement(this, "Time scope", entity.getTimeperiod(), SWT.WRAP);
-
+           timePeriod.setEnabled(enabled);
     }
 
     protected void createModifier(ICdmFormElement formElement, DescriptionElementBase entity,
             int style) {
 
-        section_modifiers = formFactory.createModifierSection(getConversationHolder(), this, ExpandableComposite.TWISTIE|ExpandableComposite.EXPANDED);
-        section_modifiers.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
-        section_modifiers.setEntity(entity);
+        if (PreferencesUtil.getBooleanValue(PreferencePredicate.ShowModifier.getKey())){
+            section_modifiers = formFactory.createModifierSection(this, StoreUtil.getSectionStyle(ModifierSection.class, entity.getClass().getCanonicalName(), true));
+            section_modifiers.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+            section_modifiers.setEntity(entity);
+            section_modifiers.setEnabled(enabled);
+        }
+        if (PreferencesUtil.getBooleanValue(PreferencePredicate.ShowModifierFreeText.getKey())){
+            text_modifyingText = formFactory.createTextWithLabelElement(this, "Modifying Text", null, style);
+            if(getEntity().getModifyingText().get(CdmStore.getDefaultLanguage()) != null) {
+                text_modifyingText.setText(getEntity().getModifyingText().get(CdmStore.getDefaultLanguage()).getText());
+            }
+            text_modifyingText.setEnabled(enabled);
+        }
+    }
 
-        text_modifyingText = formFactory.createTextWithLabelElement(this, "Modifying Text", null, style);
-        if(getEntity().getModifyingText().get(CdmStore.getDefaultLanguage()) != null) {
-            text_modifyingText.setText(getEntity().getModifyingText().get(CdmStore.getDefaultLanguage()).getText());
+    protected void createFreetextModifier(ICdmFormElement formElement, DescriptionElementBase entity,
+            int style) {
+        if (PreferencesUtil.getBooleanValue(PreferencePredicate.ShowModifierFreeText.getKey())){
+            text_modifyingText = formFactory.createTextWithLabelElement(this, "Modifying Text", null, style);
+            if(getEntity().getModifyingText().get(CdmStore.getDefaultLanguage()) != null) {
+                text_modifyingText.setText(getEntity().getModifyingText().get(CdmStore.getDefaultLanguage()).getText());
+            }
+            text_modifyingText.setEnabled(enabled);
         }
     }
 
@@ -81,4 +103,20 @@ public abstract class AbstractDetailedDescriptionDetailElement<T extends Descrip
         }
 
     }
-}
+
+    @Override
+    public void fillFields() {
+       timePeriod.setEntity(getEntity().getTimeperiod());
+        if (section_modifiers != null) {
+               section_modifiers.setEntity(getEntity());
+        }
+        if (text_modifyingText!= null) {
+               if(getEntity().getModifyingText().get(CdmStore.getDefaultLanguage()) != null) {
+                text_modifyingText.setText(getEntity().getModifyingText().get(CdmStore.getDefaultLanguage()).getText());
+            }
+        }
+    }
+
+
+
+}
\ No newline at end of file