branch feature/7017 updated (da39110 -> a0cad76)
This is an automated email from the git hooks/post-receive script. New change to branch feature/7017 in repository observe. See http://git.codelutin.com/observe.git from da39110 faunes accesoires et équipements new a0cad76 savegarde des caractéristiques des équipements The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit a0cad760e785461eee2ae86d6059cd7281f05f88 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Thu Apr 30 11:25:00 2015 +0200 savegarde des caractéristiques des équipements Summary of changes: .../seine/GearUseFeaturesSeineServiceImpl.java | 76 +++++++++++++++++++++- .../impl/seine/GearUseFeaturesSeineUIHandler.java | 21 ++++++ 2 files changed, 96 insertions(+), 1 deletion(-) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
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 a0cad760e785461eee2ae86d6059cd7281f05f88 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Thu Apr 30 11:25:00 2015 +0200 savegarde des caractéristiques des équipements --- .../seine/GearUseFeaturesSeineServiceImpl.java | 76 +++++++++++++++++++++- .../impl/seine/GearUseFeaturesSeineUIHandler.java | 21 ++++++ 2 files changed, 96 insertions(+), 1 deletion(-) 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 f28616f..db5f437 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 @@ -1,5 +1,6 @@ package fr.ird.observe.services.data.seine; +import com.google.common.collect.Lists; import fr.ird.observe.BinderService; import fr.ird.observe.entities.referentiel.Gear; import fr.ird.observe.entities.referentiel.GearCaracteristic; @@ -8,6 +9,7 @@ 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.AbstractObserveService; +import org.nuiton.topia.persistence.TopiaDAO; import org.nuiton.topia.persistence.util.EntityListUpdator; import org.nuiton.topia.persistence.util.TopiaEntityBinder; @@ -77,6 +79,16 @@ public class GearUseFeaturesSeineServiceImpl extends AbstractObserveService impl copy(GearUseFeaturesSeine.class, BinderService.EDIT, childToLoad, childLoaded); + for (GearUseFeaturesMeasurementSeine measurementToLoad : childToLoad.getGearUseFeaturesMeasurement()) { + + GearUseFeaturesMeasurementSeine measurementLoaded = getDao(GearUseFeaturesMeasurementSeine.class).newInstance(); + + copy(GearUseFeaturesMeasurementSeine.class, BinderService.EDIT, measurementToLoad, measurementLoaded); + + childLoaded.addGearUseFeaturesMeasurement(measurementLoaded); + + } + loaded.addGearUseFeaturesSeine(childLoaded); } @@ -92,7 +104,69 @@ public class GearUseFeaturesSeineServiceImpl extends AbstractObserveService impl TopiaEntityBinder<GearUseFeaturesSeine> childbinder = getBinder(GearUseFeaturesSeine.class, BinderService.EDIT); doSaveList(parent, new SaveCollectionAction<TripSeine, GearUseFeaturesSeine>( - TripSeine.class, GearUseFeaturesSeine.class, getListUpdator(), parentBinder, childbinder)); + TripSeine.class, GearUseFeaturesSeine.class, getListUpdator(), parentBinder, childbinder) { + + @Override + public GearUseFeaturesSeine onCreateChild(GearUseFeaturesSeine childToCreate) { + GearUseFeaturesSeine childCreated = super.onCreateChild(childToCreate); + saveMeasurement(childToCreate, childCreated); + return childCreated; + + } + + @Override + public GearUseFeaturesSeine onUpdateChild(GearUseFeaturesSeine childToSave, GearUseFeaturesSeine childSaved) { + super.onUpdateChild(childToSave, childSaved); + saveMeasurement(childToSave, childSaved); + return childSaved; + } + + protected void saveMeasurement(GearUseFeaturesSeine childToSave, GearUseFeaturesSeine childSaved) { + + TopiaDAO<GearUseFeaturesMeasurementSeine> dao = getDao(GearUseFeaturesMeasurementSeine.class); + + TopiaEntityBinder<GearUseFeaturesMeasurementSeine> measurementBinder = getBinder(GearUseFeaturesMeasurementSeine.class, BinderService.EDIT); + + List<GearUseFeaturesMeasurementSeine> measurementsToDelete = Lists.newArrayList(childSaved.getGearUseFeaturesMeasurement()); + + List<GearUseFeaturesMeasurementSeine> measurementsNew = Lists.newArrayList(); + + for (GearUseFeaturesMeasurementSeine measurementToSave : childToSave.getGearUseFeaturesMeasurement()) { + + GearUseFeaturesMeasurementSeine measurementSaved; + + if (measurementToSave.getTopiaId() == null) { + + measurementSaved = dao.create(); + + measurementBinder.load(measurementToSave, measurementSaved, false); + + } else { + + measurementSaved = findByTopiaId(GearUseFeaturesMeasurementSeine.class, measurementToSave.getTopiaId()); + + measurementBinder.load(measurementToSave, measurementSaved, true); + + measurementsToDelete.remove(measurementSaved); + + } + + measurementsNew.add(measurementSaved); + + } + + childSaved.clearGearUseFeaturesMeasurement(); + + childSaved.addAllGearUseFeaturesMeasurement(measurementsNew); + + for (GearUseFeaturesMeasurementSeine toDelete : measurementsToDelete) { + + dao.delete(toDelete); + + } + + } + }); } @Override 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 f750158..d3fcf24 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 @@ -392,6 +392,27 @@ public class GearUseFeaturesSeineUIHandler extends ContentTableUIHandler<TripSei @Override protected void doPersist(TripSeine editBean) { + + List<GearUseFeaturesSeine> gearUseFeatures = editBean.getGearUseFeaturesSeine(); + + GearUseFeaturesSeineUIModel model = getModel(); + + GearUseFeaturesMeasurementSeinesTableModel measurementsTableModel = model.getMeasurementsTableModel(); + + Set<Integer> rowsChanged = measurementsTableModel.getCacheRowsChanged(); + + for (Integer row : rowsChanged) { + + GearUseFeaturesSeine gearUseFeaturesSeine = gearUseFeatures.get(row); + + List<GearUseFeaturesMeasurementSeine> measurements = measurementsTableModel.getCacheForRow(row); + + gearUseFeaturesSeine.clearGearUseFeaturesMeasurement(); + + gearUseFeaturesSeine.addAllGearUseFeaturesMeasurement(measurements); + + } + getService(GearUseFeaturesSeineService.class).save(editBean); } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
participants (1)
-
codelutin.com scm