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