From a55772e7df5e2cf42860f54893c41b4c8b708462 Mon Sep 17 00:00:00 2001 From: Patric Plitzner Date: Tue, 28 Apr 2015 15:16:29 +0000 Subject: [PATCH] - implemented and added statistical measures section to Feature DetailView (#4448) --- .gitattributes | 2 + .../taxeditor/ui/element/CdmFormFactory.java | 11 +++ .../StatisticalMeasurementValueElement.java | 4 +- .../vocabulary/FeatureDetailElement.java | 11 +++ .../MeasurementUnitCollectionElement.java | 10 +-- .../StatisticalMeasureCollectionElement.java | 75 ++++++++++++++++ .../StatisticalMeasureCollectionSection.java | 87 +++++++++++++++++++ 7 files changed, 194 insertions(+), 6 deletions(-) create mode 100644 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/StatisticalMeasureCollectionElement.java create mode 100644 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/StatisticalMeasureCollectionSection.java diff --git a/.gitattributes b/.gitattributes index 5c28b56af..5e0485cf4 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1764,6 +1764,8 @@ eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/voc eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/NamedAreaLevelDetailSection.java -text eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/StateVocabularyCollectionElement.java -text eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/StateVocabularyCollectionSection.java -text +eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/StatisticalMeasureCollectionElement.java -text +eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/StatisticalMeasureCollectionSection.java -text eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/TermVocabularyDetailElement.java -text eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/TermVocabularyDetailSection.java -text eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/selection/EditFromSelectionWizard.java -text 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 0c16ae5dd..3e88fdacd 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 @@ -78,6 +78,7 @@ 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; +import eu.etaxonomy.cdm.model.description.StatisticalMeasure; import eu.etaxonomy.cdm.model.description.StatisticalMeasurementValue; import eu.etaxonomy.cdm.model.description.TaxonInteraction; import eu.etaxonomy.cdm.model.description.TextData; @@ -313,6 +314,8 @@ import eu.etaxonomy.taxeditor.ui.section.vocabulary.MeasurementUnitCollectionSec import eu.etaxonomy.taxeditor.ui.section.vocabulary.NamedAreaDetailSection; import eu.etaxonomy.taxeditor.ui.section.vocabulary.StateVocabularyCollectionElement; import eu.etaxonomy.taxeditor.ui.section.vocabulary.StateVocabularyCollectionSection; +import eu.etaxonomy.taxeditor.ui.section.vocabulary.StatisticalMeasureCollectionElement; +import eu.etaxonomy.taxeditor.ui.section.vocabulary.StatisticalMeasureCollectionSection; import eu.etaxonomy.taxeditor.ui.section.vocabulary.TermVocabularyDetailElement; import eu.etaxonomy.taxeditor.ui.section.vocabulary.TermVocabularyDetailSection; import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement; @@ -2319,6 +2322,12 @@ public class CdmFormFactory extends FormToolkit { addAndAdaptSection(parentElement, section); return section; } + + public StatisticalMeasureCollectionSection createStatisticalMeasureCollectionSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){ + StatisticalMeasureCollectionSection section = new StatisticalMeasureCollectionSection(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); @@ -2555,6 +2564,8 @@ public class CdmFormFactory extends FormToolkit { 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); + } else if (entity instanceof StatisticalMeasure) { + element = new StatisticalMeasureCollectionElement(this, parentElement, (StatisticalMeasure) entity, removeListener, backgroundColor, style); } if (element == null) { diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/StatisticalMeasurementValueElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/StatisticalMeasurementValueElement.java index f29eb5bce..ed8361ab8 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/StatisticalMeasurementValueElement.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/StatisticalMeasurementValueElement.java @@ -57,8 +57,10 @@ public class StatisticalMeasurementValueElement extends @Override public void setEntity(StatisticalMeasurementValue entity) { this.entity = entity; - number_value.setNumber(entity.getValue()); +// List statisiticalMeasures = getEntity().getQuantitativeData().getFeature().getRecommendedStatisticalMeasures(); +// combo_type.setTerms(statisiticalMeasures); combo_type.setSelection(entity.getType()); + number_value.setNumber(entity.getValue()); section_modifiers.setEntity(entity); } 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 519336099..a997eb256 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 @@ -44,6 +44,8 @@ public class FeatureDetailElement extends DefinedTermDetailElement { private MeasurementUnitCollectionSection sectionMeasurementUnits; + private StatisticalMeasureCollectionSection sectionStatisticalMeasures; + /** * @param formFactory * @param formElement @@ -77,6 +79,10 @@ public class FeatureDetailElement extends DefinedTermDetailElement { sectionMeasurementUnits = formFactory.createMeasurementUnitCollectionSection(getConversationHolder(), parentFormElement, ExpandableComposite.TWISTIE); sectionMeasurementUnits.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1)); sectionMeasurementUnits.setEntity(getEntity()); + + sectionStatisticalMeasures = formFactory.createStatisticalMeasureCollectionSection(getConversationHolder(), parentFormElement, ExpandableComposite.TWISTIE); + sectionStatisticalMeasures.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1)); + sectionStatisticalMeasures.setEntity(getEntity()); } } @@ -95,10 +101,15 @@ public class FeatureDetailElement extends DefinedTermDetailElement { sectionMeasurementUnits = formFactory.createMeasurementUnitCollectionSection(getConversationHolder(), parentFormElement, ExpandableComposite.TWISTIE); sectionMeasurementUnits.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1)); sectionMeasurementUnits.setEntity(getEntity()); + + sectionStatisticalMeasures = formFactory.createStatisticalMeasureCollectionSection(getConversationHolder(), parentFormElement, ExpandableComposite.TWISTIE); + sectionStatisticalMeasures.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1)); + sectionStatisticalMeasures.setEntity(getEntity()); } else{ if(sectionMeasurementUnits!=null){ removeElementsAndControls(sectionMeasurementUnits); + removeElementsAndControls(sectionStatisticalMeasures); } } } diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/MeasurementUnitCollectionElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/MeasurementUnitCollectionElement.java index 9b62d34d2..40f1fcc86 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/MeasurementUnitCollectionElement.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/MeasurementUnitCollectionElement.java @@ -29,7 +29,7 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement; public class MeasurementUnitCollectionElement extends AbstractEntityCollectionElement { - private TermComboElement comboStateVocabulary; + private TermComboElement comboMeasurementUnit; /** * @param formFactory @@ -48,24 +48,24 @@ public class MeasurementUnitCollectionElement extends AbstractEntityCollectionEl @Override public void createControls(ICdmFormElement element, int style) { - comboStateVocabulary = formFactory.createDefinedTermComboElement(TermType.MeasurementUnit, element, "Measurement unit", null, style); + comboMeasurementUnit = formFactory.createDefinedTermComboElement(TermType.MeasurementUnit, element, "Measurement unit", null, style); } @Override public void setEntity(MeasurementUnit entity) { this.entity = entity; if(entity.getId()!=0){ - comboStateVocabulary.setSelection(entity); + comboMeasurementUnit.setSelection(entity); } } @Override public void handleEvent(Object eventSource) { - if(eventSource==comboStateVocabulary && comboStateVocabulary.getSelection()!=null){ + if(eventSource==comboMeasurementUnit && comboMeasurementUnit.getSelection()!=null){ if(getParentElement() instanceof MeasurementUnitCollectionSection){ Feature feature = ((MeasurementUnitCollectionSection) getParentElement()).getEntity(); feature.removeRecommendedMeasurementUnit(entity); - MeasurementUnit measurementUnit = comboStateVocabulary.getSelection(); + MeasurementUnit measurementUnit = comboMeasurementUnit.getSelection(); feature.addRecommendedMeasurementUnit(measurementUnit); entity = measurementUnit; } diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/StatisticalMeasureCollectionElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/StatisticalMeasureCollectionElement.java new file mode 100644 index 000000000..237a5d369 --- /dev/null +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/StatisticalMeasureCollectionElement.java @@ -0,0 +1,75 @@ +// $Id$ +/** +* Copyright (C) 2015 EDIT +* European Distributed Institute of Taxonomy +* http://www.e-taxonomy.eu +* +* 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.vocabulary; + +import org.eclipse.swt.events.SelectionListener; +import org.eclipse.swt.graphics.Color; + +import eu.etaxonomy.cdm.model.common.TermType; +import eu.etaxonomy.cdm.model.description.Feature; +import eu.etaxonomy.cdm.model.description.StatisticalMeasure; +import eu.etaxonomy.taxeditor.ui.combo.TermComboElement; +import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection; +import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory; +import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement; +import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement; + +/** + * @author pplitzner + * @date Apr 27, 2015 + * + */ +public class StatisticalMeasureCollectionElement extends AbstractEntityCollectionElement { + + + private TermComboElement comboStatisticalMeasure; + + /** + * @param formFactory + * @param section + * @param entity + * @param removeListener + * @param isChoosableEntity + * @param backgroundColor + * @param style + */ + public StatisticalMeasureCollectionElement(CdmFormFactory formFactory, AbstractFormSection section, StatisticalMeasure entity, + SelectionListener removeListener, Color backgroundColor, int style) { + super(formFactory, section, entity, removeListener, false, backgroundColor, style); + + } + + @Override + public void createControls(ICdmFormElement element, int style) { + comboStatisticalMeasure = formFactory.createDefinedTermComboElement(TermType.StatisticalMeasure, element, "Statistical measure", null, style); + } + + @Override + public void setEntity(StatisticalMeasure entity) { + this.entity = entity; + if(entity.getId()!=0){ + comboStatisticalMeasure.setSelection(entity); + } + } + + @Override + public void handleEvent(Object eventSource) { + if(eventSource==comboStatisticalMeasure && comboStatisticalMeasure.getSelection()!=null){ + if(getParentElement() instanceof StatisticalMeasureCollectionSection){ + Feature feature = ((StatisticalMeasureCollectionSection) getParentElement()).getEntity(); + feature.removeRecommendedStatisticalMeasure(entity); + StatisticalMeasure statisticalMeasure = comboStatisticalMeasure.getSelection(); + feature.addRecommendedStatisticalMeasure(statisticalMeasure); + entity = statisticalMeasure; + } + } + } + +} diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/StatisticalMeasureCollectionSection.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/StatisticalMeasureCollectionSection.java new file mode 100644 index 000000000..db6f6a0d4 --- /dev/null +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/StatisticalMeasureCollectionSection.java @@ -0,0 +1,87 @@ +// $Id$ +/** +* Copyright (C) 2015 EDIT +* European Distributed Institute of Taxonomy +* http://www.e-taxonomy.eu +* +* 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.vocabulary; + +import java.util.Collection; + +import eu.etaxonomy.cdm.api.conversation.ConversationHolder; +import eu.etaxonomy.cdm.model.description.Feature; +import eu.etaxonomy.cdm.model.description.StatisticalMeasure; +import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory; +import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement; +import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AbstractUnboundEntityCollectionSection; + +/** + * @author pplitzner + * @date Apr 27, 2015 + * + */ +public class StatisticalMeasureCollectionSection extends AbstractUnboundEntityCollectionSection { + + public StatisticalMeasureCollectionSection(CdmFormFactory formFactory, + ConversationHolder conversation, ICdmFormElement parentElement, int style) { + super(formFactory, conversation, parentElement, "Statistical measures", style); + } + + /* (non-Javadoc) + * @see eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AbstractNullEntityCollectionSection#getEntityCollection(java.lang.Object) + */ + /** {@inheritDoc} */ + @Override + protected Collection getEntityCollection(Feature entity) { + return entity.getRecommendedStatisticalMeasures(); + } + + /* (non-Javadoc) + * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#createNewElement() + */ + /** {@inheritDoc} */ + @Override + public StatisticalMeasure createNewElement() { + return StatisticalMeasure.NewInstance(); + } + + /* (non-Javadoc) + * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#addElement(eu.etaxonomy.cdm.model.common.IVersionableEntity) + */ + /** {@inheritDoc} */ + @Override + public void addElement(StatisticalMeasure element) { + //never gets called + } + + /* (non-Javadoc) + * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#removeElement(eu.etaxonomy.cdm.model.common.IVersionableEntity) + */ + /** {@inheritDoc} */ + @Override + public void removeElement(StatisticalMeasure element) { + getEntity().removeRecommendedStatisticalMeasure(element); + } + + /* (non-Javadoc) + * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#getEmptyString() + */ + /** {@inheritDoc} */ + @Override + public String getEmptyString() { + return "No statistical measures yet."; + } + + /* (non-Javadoc) + * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#getTooltipString() + */ + /** {@inheritDoc} */ + @Override + protected String getTooltipString() { + return "Add a statistical measure"; + } + +} -- 2.34.1