From d22d668e5e8a32828c68ae939284dec0ffccb1ac Mon Sep 17 00:00:00 2001 From: Patric Plitzner Date: Tue, 28 Apr 2015 11:39:33 +0000 Subject: [PATCH] - added measurement unit section to Feature DetailView (#4448) - adapted QuantitativeData DetailsView to only show recommended MeasurementUnits --- .../taxeditor/ui/element/CdmFormFactory.java | 13 +++++++++++- .../detail/CategoricalDataDetailElement.java | 7 ------- .../detail/QuantitativeDataDetailElement.java | 15 ++++++------- .../vocabulary/FeatureDetailElement.java | 21 +++++++++++++++++-- 4 files changed, 39 insertions(+), 17 deletions(-) diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/CdmFormFactory.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/CdmFormFactory.java index 25c0777a6..651c98c7c 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/CdmFormFactory.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/CdmFormFactory.java @@ -74,6 +74,7 @@ import eu.etaxonomy.cdm.model.description.Distribution; import eu.etaxonomy.cdm.model.description.Feature; import eu.etaxonomy.cdm.model.description.IndividualsAssociation; import eu.etaxonomy.cdm.model.description.KeyStatement; +import eu.etaxonomy.cdm.model.description.MeasurementUnit; import eu.etaxonomy.cdm.model.description.QuantitativeData; import eu.etaxonomy.cdm.model.description.State; import eu.etaxonomy.cdm.model.description.StateData; @@ -307,6 +308,8 @@ import eu.etaxonomy.taxeditor.ui.section.userecords.UseRecordDetailSection; import eu.etaxonomy.taxeditor.ui.section.vocabulary.DefinedTermDetailElement; import eu.etaxonomy.taxeditor.ui.section.vocabulary.DefinedTermDetailSection; import eu.etaxonomy.taxeditor.ui.section.vocabulary.FeatureDetailElement; +import eu.etaxonomy.taxeditor.ui.section.vocabulary.MeasurementUnitCollectionElement; +import eu.etaxonomy.taxeditor.ui.section.vocabulary.MeasurementUnitCollectionSection; import eu.etaxonomy.taxeditor.ui.section.vocabulary.NamedAreaDetailSection; import eu.etaxonomy.taxeditor.ui.section.vocabulary.StateVocabularyCollectionElement; import eu.etaxonomy.taxeditor.ui.section.vocabulary.StateVocabularyCollectionSection; @@ -2305,12 +2308,18 @@ public class CdmFormFactory extends FormToolkit { return section; } - public StateVocabularyCollectionSection createSectionStateVocabularies(ConversationHolder conversation, ICdmFormElement parentElement, int style){ + public StateVocabularyCollectionSection createStateVocabulariesSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){ StateVocabularyCollectionSection section = new StateVocabularyCollectionSection(this, conversation, parentElement, style); addAndAdaptSection(parentElement, section); return section; } + public MeasurementUnitCollectionSection createMeasurementUnitCollectionSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){ + MeasurementUnitCollectionSection section = new MeasurementUnitCollectionSection(this, conversation, parentElement, style); + addAndAdaptSection(parentElement, section); + return section; + } + public CollectingAreasDetailSection createCollectingAreasDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){ CollectingAreasDetailSection section = new CollectingAreasDetailSection(this, conversation, parentElement, style); addAndAdaptSection(parentElement, section); @@ -2544,6 +2553,8 @@ public class CdmFormFactory extends FormToolkit { } } else if (entity instanceof TermVocabulary) { element = new StateVocabularyCollectionElement(this, parentElement, (TermVocabulary) entity, removeListener, backgroundColor, style); + } else if (entity instanceof MeasurementUnit) { + element = new MeasurementUnitCollectionElement(this, parentElement, (MeasurementUnit) entity, removeListener, backgroundColor, style); } if (element == null) { diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/detail/CategoricalDataDetailElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/detail/CategoricalDataDetailElement.java index 9f6ceb849..935db0984 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/detail/CategoricalDataDetailElement.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/detail/CategoricalDataDetailElement.java @@ -46,13 +46,6 @@ public class CategoricalDataDetailElement extends AbstractDetailedDescriptionDet section_stateData.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1)); } - /** {@inheritDoc} */ - @Override - public void setEntity(CategoricalData entity) { -// section_stateData.setEntity(entity); - super.setEntity(entity); - } - /* (non-Javadoc) * @see eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleEvent(java.lang.Object) */ diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/detail/QuantitativeDataDetailElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/detail/QuantitativeDataDetailElement.java index 111fed24d..0cd3452c5 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/detail/QuantitativeDataDetailElement.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/detail/QuantitativeDataDetailElement.java @@ -3,6 +3,8 @@ */ package eu.etaxonomy.taxeditor.ui.section.description.detail; +import java.util.ArrayList; + import org.eclipse.ui.forms.widgets.ExpandableComposite; import eu.etaxonomy.cdm.model.common.TermType; @@ -23,7 +25,7 @@ import eu.etaxonomy.taxeditor.ui.section.description.StatisticalMeasurementValue public class QuantitativeDataDetailElement extends AbstractDetailedDescriptionDetailElement { - private TermComboElement combo_mesaurementUnit; + private TermComboElement comboMeasurementUnit; private StatisticalMeasurementValueSection section_statisticalMeasurementValues; /** @@ -43,20 +45,19 @@ public class QuantitativeDataDetailElement extends @Override protected void createControls(ICdmFormElement formElement, QuantitativeData entity, int style) { - combo_mesaurementUnit = formFactory.createDefinedTermComboElement(TermType.MeasurementUnit, formElement, "Measurement Unit", entity.getUnit(), style); + comboMeasurementUnit = formFactory.createDefinedTermComboElement(TermType.MeasurementUnit, formElement, "Measurement Unit", null, style); + comboMeasurementUnit.setTerms(new ArrayList(entity.getFeature().getRecommendedMeasurementUnits())); + comboMeasurementUnit.setSelection(entity.getUnit()); section_statisticalMeasurementValues = formFactory.createStatisticalMeasurementValueSection(getConversationHolder(), formElement, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED); section_statisticalMeasurementValues.setEntity(entity); section_statisticalMeasurementValues.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1)); } - /* (non-Javadoc) - * @see eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleEvent(java.lang.Object) - */ /** {@inheritDoc} */ @Override public void handleEvent(Object eventSource) { - if(eventSource == combo_mesaurementUnit){ - getEntity().setUnit(combo_mesaurementUnit.getSelection()); + if(eventSource == comboMeasurementUnit){ + getEntity().setUnit(comboMeasurementUnit.getSelection()); }else if (eventSource == section_statisticalMeasurementValues){ // FIXME } diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/FeatureDetailElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/FeatureDetailElement.java index 7c79e1f3a..519336099 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/FeatureDetailElement.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/FeatureDetailElement.java @@ -42,6 +42,8 @@ public class FeatureDetailElement extends DefinedTermDetailElement { private StateVocabularyCollectionSection sectionStateVocabularies; + private MeasurementUnitCollectionSection sectionMeasurementUnits; + /** * @param formFactory * @param formElement @@ -67,10 +69,15 @@ public class FeatureDetailElement extends DefinedTermDetailElement { supportsCommonTaxonName = formFactory.createCheckbox(formElement, "Supports Common Taxon Name", entity.isSupportsCommonTaxonName(), style); if(supportsCategoricalData.getSelection()){ - sectionStateVocabularies = formFactory.createSectionStateVocabularies(getConversationHolder(), parentFormElement, ExpandableComposite.TWISTIE); + sectionStateVocabularies = formFactory.createStateVocabulariesSection(getConversationHolder(), parentFormElement, ExpandableComposite.TWISTIE); sectionStateVocabularies.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1)); sectionStateVocabularies.setEntity(getEntity()); } + if(supportsQuantitativeData.getSelection()){ + sectionMeasurementUnits = formFactory.createMeasurementUnitCollectionSection(getConversationHolder(), parentFormElement, ExpandableComposite.TWISTIE); + sectionMeasurementUnits.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1)); + sectionMeasurementUnits.setEntity(getEntity()); + } } /* (non-Javadoc) @@ -84,6 +91,16 @@ public class FeatureDetailElement extends DefinedTermDetailElement { } else if(eventSource == supportsQuantitativeData){ getEntity().setSupportsQuantitativeData(supportsQuantitativeData.getSelection()); + if(supportsQuantitativeData.getSelection()){ + sectionMeasurementUnits = formFactory.createMeasurementUnitCollectionSection(getConversationHolder(), parentFormElement, ExpandableComposite.TWISTIE); + sectionMeasurementUnits.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1)); + sectionMeasurementUnits.setEntity(getEntity()); + } + else{ + if(sectionMeasurementUnits!=null){ + removeElementsAndControls(sectionMeasurementUnits); + } + } } else if(eventSource == supportsDistribution){ getEntity().setSupportsDistribution(supportsDistribution.getSelection()); @@ -97,7 +114,7 @@ public class FeatureDetailElement extends DefinedTermDetailElement { else if(eventSource == supportsCategoricalData){ getEntity().setSupportsCategoricalData(supportsCategoricalData.getSelection()); if(supportsCategoricalData.getSelection()){ - sectionStateVocabularies = formFactory.createSectionStateVocabularies(getConversationHolder(), parentFormElement, ExpandableComposite.TWISTIE); + sectionStateVocabularies = formFactory.createStateVocabulariesSection(getConversationHolder(), parentFormElement, ExpandableComposite.TWISTIE); sectionStateVocabularies.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1)); sectionStateVocabularies.setEntity(getEntity()); } -- 2.34.1