-// $Id$
/**
* Copyright (C) 2007 EDIT
* European Distributed Institute of Taxonomy
* 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 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;
+import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
+import eu.etaxonomy.taxeditor.ui.element.TimePeriodElement;
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.description.ModifierSection;
/**
* <p>Abstract AbstractDetailedDescriptionDetailElement class.</p>
*
* @author n.hoffmann
* @created Jun 10, 2010
- * @version 1.0
*/
public abstract class AbstractDetailedDescriptionDetailElement<T extends DescriptionElementBase> extends AbstractCdmDetailElement<T>{
+ private TimePeriodElement timePeriod;
+ private ModifierSection section_modifiers;
+ private TextWithLabelElement text_modifyingText;
+
/**
* <p>Constructor for AbstractDetailedDescriptionDetailElement.</p>
*
* @param style a int.
* @param <T> a T object.
*/
+ public AbstractDetailedDescriptionDetailElement(CdmFormFactory formFactory,
+ 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) {
+
+ 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);
+ }
+ }
+
+ 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);
+ }
+ }
+
+ @Override
+ public void handleEvent(Object eventSource) {
+ if(eventSource == timePeriod){
+ getEntity().setTimeperiod(timePeriod.getTimePeriod());
+ }
+ if (eventSource == text_modifyingText){
+ getEntity().putModifyingText(LanguageString.NewInstance(text_modifyingText.getText(), CdmStore.getDefaultLanguage()));
+ }
+
+ }
+
+ @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