ref #7095 Fix initalization problems by deproxying
authorPatrick Plitzner <p.plitzner@bgbm.org>
Tue, 30 Jan 2018 10:26:38 +0000 (11:26 +0100)
committerPatrick Plitzner <p.plitzner@bgbm.org>
Tue, 30 Jan 2018 12:41:49 +0000 (13:41 +0100)
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/workingSet/matrix/AggregationConfiguration.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/workingSet/matrix/supplementalInfo/SupplementalInfoDisplayConverter.java

index 5bdef1b387a158b70ac98aea948430ae6956606a..e640af67199df7a2a602625d943da9c506b5a600 100644 (file)
@@ -21,6 +21,7 @@ import org.eclipse.nebula.widgets.nattable.summaryrow.SummaryRowConfigAttributes
 import org.eclipse.nebula.widgets.nattable.summaryrow.SummaryRowLayer;
 import org.eclipse.nebula.widgets.nattable.util.GUIHelper;
 
+import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.description.CategoricalData;
 import eu.etaxonomy.cdm.model.description.Feature;
 import eu.etaxonomy.cdm.model.description.QuantitativeData;
@@ -71,8 +72,8 @@ public class AggregationConfiguration extends DefaultSummaryRowConfiguration {
             for (int rowIndex = 0; rowIndex < rowCount; rowIndex++) {
                 Object dataValue = AggregationConfiguration.this.dataProvider.getDataValue(columnIndex,
                         rowIndex);
-                if(dataValue instanceof QuantitativeData){
-                    QuantitativeData quantitativeData = (QuantitativeData)dataValue;
+                if(HibernateProxyHelper.isInstanceOf(dataValue, QuantitativeData.class)){
+                    QuantitativeData quantitativeData = HibernateProxyHelper.deproxy(dataValue, QuantitativeData.class);
                     Float min = quantitativeData.getMin();
                     Float max = quantitativeData.getMax();
                     if(min!=null && (minTotal==null || min<minTotal)){
@@ -97,8 +98,8 @@ public class AggregationConfiguration extends DefaultSummaryRowConfiguration {
             for (int rowIndex = 0; rowIndex < rowCount; rowIndex++) {
                 Object dataValue = AggregationConfiguration.this.dataProvider.getDataValue(columnIndex,
                         rowIndex);
-                if(dataValue instanceof CategoricalData){
-                    CategoricalData categoricalData = (CategoricalData)dataValue;
+                if(HibernateProxyHelper.isInstanceOf(dataValue, CategoricalData.class)){
+                    CategoricalData categoricalData = HibernateProxyHelper.deproxy(dataValue, CategoricalData.class);
                     states.addAll(categoricalData.getStatesOnly());
                 }
             }
index 28d2ffb3c580d3e5afeb15e662761fdd5ab748de..fa3610829212c780b5fcf5870d8b7fbc4bf800fe 100644 (file)
@@ -12,6 +12,7 @@ import java.util.Collection;
 
 import org.eclipse.nebula.widgets.nattable.data.convert.DisplayConverter;
 
+import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.agent.AgentBase;
 import eu.etaxonomy.cdm.model.location.NamedArea;
 import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
@@ -36,12 +37,12 @@ public class SupplementalInfoDisplayConverter extends DisplayConverter{
             TaxonNode node = (TaxonNode)canonicalValue;
             displayValue = node.getTaxon().getName().getNameCache();
         }
-        else if(canonicalValue instanceof FieldUnit){
-            FieldUnit fieldUnit = (FieldUnit)canonicalValue;
+        else if(HibernateProxyHelper.isInstanceOf(canonicalValue, FieldUnit.class)){
+            FieldUnit fieldUnit = HibernateProxyHelper.deproxy(canonicalValue, FieldUnit.class);
             GatheringEvent gatheringEvent = fieldUnit.getGatheringEvent();
             if(gatheringEvent!=null){
                 AgentBase collector = gatheringEvent.getCollector();
-                if(collector!=null){
+                if(collector!=null && collector.getTitleCache()!=null){
                     displayValue += collector.getTitleCache()+" ";
                 }
                 String fieldNumber = fieldUnit.getFieldNumber();
@@ -50,8 +51,8 @@ public class SupplementalInfoDisplayConverter extends DisplayConverter{
                 }
             }
         }
-        else if(canonicalValue instanceof NamedArea){
-            displayValue = ((NamedArea) canonicalValue).getLabel();
+        else if(HibernateProxyHelper.isInstanceOf(canonicalValue, NamedArea.class)){
+            displayValue = HibernateProxyHelper.deproxy(canonicalValue, NamedArea.class).getLabel();
         }
         else if(canonicalValue instanceof Collection){
             String separator = ", ";