This is an automated email from the git hooks/post-receive script. New commit to branch feature/7017 in repository observe. See http://git.codelutin.com/observe.git commit cc28455d329cec7d3074777404b6c7e57f2522c3 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Thu Apr 30 15:37:37 2015 +0200 savegarde des caractéristiques des équipements pour la palangre. fix npe --- .../GearUseFeaturesLonglineServiceImpl.java | 72 ++++++++++++++++++- .../seine/GearUseFeaturesSeineServiceImpl.java | 8 ++- .../longline/GearUseFeaturesLonglineUIHandler.java | 80 ++++++---------------- .../impl/seine/GearUseFeaturesSeineUIHandler.java | 61 ----------------- 4 files changed, 99 insertions(+), 122 deletions(-) diff --git a/observe-services/src/main/java/fr/ird/observe/services/data/longline/GearUseFeaturesLonglineServiceImpl.java b/observe-services/src/main/java/fr/ird/observe/services/data/longline/GearUseFeaturesLonglineServiceImpl.java index 979c585..efbe94b 100644 --- a/observe-services/src/main/java/fr/ird/observe/services/data/longline/GearUseFeaturesLonglineServiceImpl.java +++ b/observe-services/src/main/java/fr/ird/observe/services/data/longline/GearUseFeaturesLonglineServiceImpl.java @@ -1,5 +1,6 @@ package fr.ird.observe.services.data.longline; +import com.google.common.collect.Lists; import fr.ird.observe.BinderService; import fr.ird.observe.entities.longline.GearUseFeaturesLongline; import fr.ird.observe.entities.longline.GearUseFeaturesMeasurementLongline; @@ -102,7 +103,76 @@ public class GearUseFeaturesLonglineServiceImpl extends AbstractObserveService i TopiaEntityBinder<GearUseFeaturesLongline> childBinder = getBinder(GearUseFeaturesLongline.class, BinderService.EDIT); doSaveList(tripLongline, new SaveCollectionAction<TripLongline, GearUseFeaturesLongline>( - TripLongline.class, GearUseFeaturesLongline.class, getListUpdator(), parentBinder, childBinder)); + TripLongline.class, GearUseFeaturesLongline.class, getListUpdator(), parentBinder, childBinder) { + + @Override + public GearUseFeaturesLongline onCreateChild(GearUseFeaturesLongline childToCreate) { + GearUseFeaturesLongline childCreated = super.onCreateChild(childToCreate); + saveMeasurement(childToCreate, childCreated); + return childCreated; + + } + + @Override + public GearUseFeaturesLongline onUpdateChild(GearUseFeaturesLongline childToSave, GearUseFeaturesLongline childSaved) { + super.onUpdateChild(childToSave, childSaved); + saveMeasurement(childToSave, childSaved); + return childSaved; + } + + protected void saveMeasurement(GearUseFeaturesLongline childToSave, GearUseFeaturesLongline childSaved) { + + TopiaDAO<GearUseFeaturesMeasurementLongline> dao = getDao(GearUseFeaturesMeasurementLongline.class); + + TopiaEntityBinder<GearUseFeaturesMeasurementLongline> measurementBinder = getBinder(GearUseFeaturesMeasurementLongline.class, BinderService.EDIT); + + List<GearUseFeaturesMeasurementLongline> measurementsToDelete = Lists.newArrayList(); + + if (childSaved.getGearUseFeaturesMeasurement() != null) { + + measurementsToDelete.addAll(childSaved.getGearUseFeaturesMeasurement()); + + } + + List<GearUseFeaturesMeasurementLongline> measurementsNew = Lists.newArrayList(); + + for (GearUseFeaturesMeasurementLongline measurementToSave : childToSave.getGearUseFeaturesMeasurement()) { + + GearUseFeaturesMeasurementLongline measurementSaved; + + if (measurementToSave.getTopiaId() == null) { + + measurementSaved = dao.create(); + + measurementBinder.load(measurementToSave, measurementSaved, false); + + } else { + + measurementSaved = findByTopiaId(GearUseFeaturesMeasurementLongline.class, measurementToSave.getTopiaId()); + + measurementBinder.load(measurementToSave, measurementSaved, true); + + measurementsToDelete.remove(measurementSaved); + + } + + measurementsNew.add(measurementSaved); + + } + + childSaved.clearGearUseFeaturesMeasurement(); + + childSaved.addAllGearUseFeaturesMeasurement(measurementsNew); + + for (GearUseFeaturesMeasurementLongline toDelete : measurementsToDelete) { + + dao.delete(toDelete); + + } + } + + + }); } diff --git a/observe-services/src/main/java/fr/ird/observe/services/data/seine/GearUseFeaturesSeineServiceImpl.java b/observe-services/src/main/java/fr/ird/observe/services/data/seine/GearUseFeaturesSeineServiceImpl.java index db5f437..a76e778 100644 --- a/observe-services/src/main/java/fr/ird/observe/services/data/seine/GearUseFeaturesSeineServiceImpl.java +++ b/observe-services/src/main/java/fr/ird/observe/services/data/seine/GearUseFeaturesSeineServiceImpl.java @@ -127,7 +127,13 @@ public class GearUseFeaturesSeineServiceImpl extends AbstractObserveService impl TopiaEntityBinder<GearUseFeaturesMeasurementSeine> measurementBinder = getBinder(GearUseFeaturesMeasurementSeine.class, BinderService.EDIT); - List<GearUseFeaturesMeasurementSeine> measurementsToDelete = Lists.newArrayList(childSaved.getGearUseFeaturesMeasurement()); + List<GearUseFeaturesMeasurementSeine> measurementsToDelete = Lists.newArrayList(); + + if (childSaved.getGearUseFeaturesMeasurement() != null) { + + measurementsToDelete.addAll(childSaved.getGearUseFeaturesMeasurement()); + + } List<GearUseFeaturesMeasurementSeine> measurementsNew = Lists.newArrayList(); diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/GearUseFeaturesLonglineUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/GearUseFeaturesLonglineUIHandler.java index 12129ff..c36fd99 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/GearUseFeaturesLonglineUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/GearUseFeaturesLonglineUIHandler.java @@ -24,13 +24,11 @@ package fr.ird.observe.ui.content.table.impl.longline; import fr.ird.observe.BinderService; import fr.ird.observe.ObserveContext; -import fr.ird.observe.ObserveDAOHelper; import fr.ird.observe.db.DataContext; import fr.ird.observe.db.DataSourceException; import fr.ird.observe.db.constants.DataContextType; import fr.ird.observe.entities.longline.GearUseFeaturesLongline; import fr.ird.observe.entities.longline.GearUseFeaturesMeasurementLongline; -import fr.ird.observe.entities.longline.GearUseFeaturesMeasurementLonglineDAO; import fr.ird.observe.entities.longline.TripLongline; import fr.ird.observe.entities.referentiel.Gear; import fr.ird.observe.entities.referentiel.GearCaracteristic; @@ -50,9 +48,6 @@ import jaxx.runtime.validator.swing.SwingValidatorMessageTableModel; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.decorator.Decorator; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.persistence.util.TopiaEntityBinder; import org.nuiton.validator.NuitonValidatorScope; import javax.swing.JComponent; @@ -69,8 +64,6 @@ import java.awt.Insets; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.io.Serializable; -import java.util.ArrayList; -import java.util.Collection; import java.util.Collections; import java.util.HashSet; import java.util.List; @@ -142,6 +135,27 @@ public class GearUseFeaturesLonglineUIHandler extends ContentTableUIHandler<Trip @Override protected void doPersist(TripLongline editBean) { + List<GearUseFeaturesLongline> gearUseFeatures = editBean.getGearUseFeaturesLongline(); + + GearUseFeaturesLonglineUIModel model = getModel(); + + GearUseFeaturesMeasurementLonglinesTableModel measurementsTableModel = model.getMeasurementsTableModel(); + + Set<Integer> rowsChanged = measurementsTableModel.getCacheRowsChanged(); + + for (Integer row : rowsChanged) { + + GearUseFeaturesLongline gearUseFeaturesLongline = gearUseFeatures.get(row); + + List<GearUseFeaturesMeasurementLongline> measurements = measurementsTableModel.getCacheForRow(row); + + gearUseFeaturesLongline.clearGearUseFeaturesMeasurement(); + + gearUseFeaturesLongline.addAllGearUseFeaturesMeasurement(measurements); + + } + + GearUseFeaturesLonglineService service = getService(GearUseFeaturesLonglineService.class); service.save(editBean); @@ -396,58 +410,6 @@ public class GearUseFeaturesLonglineUIHandler extends ContentTableUIHandler<Trip } @Override - protected void onUpdateFinalize(TopiaContext tx, TripLongline bean, Collection<GearUseFeaturesLongline> oldChilds) throws TopiaException { - - List<GearUseFeaturesLongline> gearUseFeatures = bean.getGearUseFeaturesLongline(); - - GearUseFeaturesLonglineUIModel model = getModel(); - { - - // save measurments - - GearUseFeaturesMeasurementLonglineDAO measureDao = ObserveDAOHelper.getGearUseFeaturesMeasurementLonglineDAO(tx); - - GearUseFeaturesMeasurementLonglinesTableModel measurementsTableModel = model.getMeasurementsTableModel(); - Set<Integer> rowsChanged = measurementsTableModel.getCacheRowsChanged(); - - TopiaEntityBinder<GearUseFeaturesMeasurementLongline> loader = measurementsTableModel.getLoader(); - for (Integer row : rowsChanged) { - - GearUseFeaturesLongline gearUseFeaturesLongline = gearUseFeatures.get(row); - - List<GearUseFeaturesMeasurementLongline> measurements = measurementsTableModel.getCacheForRow(row); - List<GearUseFeaturesMeasurementLongline> measurementsToSave = new ArrayList<GearUseFeaturesMeasurementLongline>(measurements.size()); - - for (GearUseFeaturesMeasurementLongline measure : measurements) { - - if (measurementsTableModel.isRowNotEmpty(measure)) { - - GearUseFeaturesMeasurementLongline measureToSave; - - if (measure.getTopiaId() == null) { - measureToSave = measureDao.create(measure); - loader.load(measureToSave, measure, true); - } else { - measureToSave = gearUseFeaturesLongline.getGearUseFeaturesMeasurementByTopiaId(measure.getTopiaId()); - loader.load(measure, measureToSave, true); - } - - measurementsToSave.add(measureToSave); - - } - - } - - gearUseFeaturesLongline.clearGearUseFeaturesMeasurement(); - gearUseFeaturesLongline.addAllGearUseFeaturesMeasurement(measurementsToSave); - - } - - } - - } - - @Override protected void resetEditBean() { UIHelper.stopEditing(getUi().getMeasurementsTable()); diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/GearUseFeaturesSeineUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/GearUseFeaturesSeineUIHandler.java index d3fcf24..64c854b 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/GearUseFeaturesSeineUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/GearUseFeaturesSeineUIHandler.java @@ -25,7 +25,6 @@ package fr.ird.observe.ui.content.table.impl.seine; import fr.ird.observe.BinderService; import fr.ird.observe.DataService; import fr.ird.observe.ObserveContext; -import fr.ird.observe.ObserveDAOHelper; import fr.ird.observe.db.DataContext; import fr.ird.observe.db.DataSource; import fr.ird.observe.db.DataSourceException; @@ -33,7 +32,6 @@ import fr.ird.observe.db.constants.DataContextType; import fr.ird.observe.entities.referentiel.Gear; import fr.ird.observe.entities.referentiel.GearCaracteristic; import fr.ird.observe.entities.seine.GearUseFeaturesMeasurementSeine; -import fr.ird.observe.entities.seine.GearUseFeaturesMeasurementSeineDAO; import fr.ird.observe.entities.seine.GearUseFeaturesSeine; import fr.ird.observe.entities.seine.TripSeine; import fr.ird.observe.services.data.seine.GearUseFeaturesSeineService; @@ -50,9 +48,6 @@ import jaxx.runtime.validator.swing.SwingValidatorMessageTableModel; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.decorator.Decorator; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.persistence.util.TopiaEntityBinder; import org.nuiton.validator.NuitonValidatorScope; import javax.swing.JComponent; @@ -69,8 +64,6 @@ import java.awt.Insets; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.io.Serializable; -import java.util.ArrayList; -import java.util.Collection; import java.util.Collections; import java.util.HashSet; import java.util.List; @@ -424,60 +417,6 @@ public class GearUseFeaturesSeineUIHandler extends ContentTableUIHandler<TripSei } @Override - protected void onUpdateFinalize(TopiaContext tx, TripSeine bean, Collection<GearUseFeaturesSeine> oldChilds) throws TopiaException { - - List<GearUseFeaturesSeine> gearUseFeatures = bean.getGearUseFeaturesSeine(); - - GearUseFeaturesSeineUIModel model = getModel(); - { - - // save measurments - - GearUseFeaturesMeasurementSeineDAO measureDao = ObserveDAOHelper.getGearUseFeaturesMeasurementSeineDAO(tx); - - GearUseFeaturesMeasurementSeinesTableModel measurementsTableModel = model.getMeasurementsTableModel(); - Set<Integer> rowsChanged = measurementsTableModel.getCacheRowsChanged(); - - TopiaEntityBinder<GearUseFeaturesMeasurementSeine> loader = measurementsTableModel.getLoader(); - for (Integer row : rowsChanged) { - - GearUseFeaturesSeine gearUseFeaturesSeine = gearUseFeatures.get(row); - - List<GearUseFeaturesMeasurementSeine> measurements = measurementsTableModel.getCacheForRow(row); - List<GearUseFeaturesMeasurementSeine> measurementsToSave = new ArrayList<GearUseFeaturesMeasurementSeine>(measurements.size()); - - for (GearUseFeaturesMeasurementSeine measure : measurements) { - - - - if (measurementsTableModel.isRowNotEmpty(measure)) { - - GearUseFeaturesMeasurementSeine measureToSave; - - if (measure.getTopiaId() == null) { - measureToSave = measureDao.create(measure); - loader.load(measureToSave, measure, true); - } else { - measureToSave = gearUseFeaturesSeine.getGearUseFeaturesMeasurementByTopiaId(measure.getTopiaId()); - loader.load(measure, measureToSave, true); - } - - measurementsToSave.add(measureToSave); - - } - - } - - gearUseFeaturesSeine.clearGearUseFeaturesMeasurement(); - gearUseFeaturesSeine.addAllGearUseFeaturesMeasurement(measurementsToSave); - - } - - } - - } - - @Override protected void resetEditBean() { UIHelper.stopEditing(getUi().getMeasurementsTable()); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.