branch feature/7017 updated (fbd9693 -> da39110)
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 fbd9693 utilisation des binders venant du service BinderService (sauf pour les referentiels) (refs #7017) new da39110 faunes accesoires et é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 da391107b50d69728505cddaba9d5bf420b768f4 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Thu Apr 30 09:45:46 2015 +0200 faunes accesoires et équipements Summary of changes: .../data/seine/GearUseFeaturesSeineService.java | 12 ++- .../seine/GearUseFeaturesSeineServiceImpl.java | 46 +++++++---- ...ngthService.java => NonTargetCatchService.java} | 12 +-- .../data/seine/NonTargetCatchServiceImpl.java | 77 +++++++++++++++++++ .../impl/seine/GearUseFeaturesSeineUIHandler.java | 26 ++++++- .../table/impl/seine/NonTargetCatchUIHandler.java | 88 ++++++++++++++++++---- 6 files changed, 222 insertions(+), 39 deletions(-) copy observe-services/src/main/java/fr/ird/observe/services/data/seine/{NonTargetLengthService.java => NonTargetCatchService.java} (50%) create mode 100644 observe-services/src/main/java/fr/ird/observe/services/data/seine/NonTargetCatchServiceImpl.java -- 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 da391107b50d69728505cddaba9d5bf420b768f4 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Thu Apr 30 09:45:46 2015 +0200 faunes accesoires et équipements --- .../data/seine/GearUseFeaturesSeineService.java | 12 ++- .../seine/GearUseFeaturesSeineServiceImpl.java | 46 +++++++---- .../services/data/seine/NonTargetCatchService.java | 23 ++++++ .../data/seine/NonTargetCatchServiceImpl.java | 77 +++++++++++++++++++ .../impl/seine/GearUseFeaturesSeineUIHandler.java | 26 ++++++- .../table/impl/seine/NonTargetCatchUIHandler.java | 88 ++++++++++++++++++---- 6 files changed, 239 insertions(+), 33 deletions(-) diff --git a/observe-services/src/main/java/fr/ird/observe/services/data/seine/GearUseFeaturesSeineService.java b/observe-services/src/main/java/fr/ird/observe/services/data/seine/GearUseFeaturesSeineService.java index 23a4565..3e42f29 100644 --- a/observe-services/src/main/java/fr/ird/observe/services/data/seine/GearUseFeaturesSeineService.java +++ b/observe-services/src/main/java/fr/ird/observe/services/data/seine/GearUseFeaturesSeineService.java @@ -1,9 +1,12 @@ package fr.ird.observe.services.data.seine; import fr.ird.observe.entities.seine.GearUseFeaturesMeasurementSeine; +import fr.ird.observe.entities.seine.GearUseFeaturesSeine; +import fr.ird.observe.entities.seine.TripSeine; +import fr.ird.observe.services.Commit; import fr.ird.observe.services.NoTransaction; import fr.ird.observe.services.ObserveService; -import org.nuiton.topia.persistence.util.TopiaEntityBinder; +import org.nuiton.topia.persistence.util.EntityListUpdator; import java.util.List; @@ -19,7 +22,12 @@ public interface GearUseFeaturesSeineService extends ObserveService { List<GearUseFeaturesMeasurementSeine> loadGearUseFeaturesMeasurementSeineForEdit(String gearUseFeaturesSeineId); + TripSeine loadForEdit(String tripId); + + @Commit + void save(TripSeine parent); + @NoTransaction - TopiaEntityBinder<GearUseFeaturesMeasurementSeine> getGearUseFeaturesMeasurementSeineBinderForEdit(); + EntityListUpdator<TripSeine, GearUseFeaturesSeine> getListUpdator(); } 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 ecb28cd..f28616f 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 @@ -6,9 +6,10 @@ 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.AbstractObserveService; +import org.nuiton.topia.persistence.util.EntityListUpdator; import org.nuiton.topia.persistence.util.TopiaEntityBinder; -import org.nuiton.util.beans.BinderModelBuilder; import java.util.ArrayList; import java.util.Collection; @@ -44,7 +45,7 @@ public class GearUseFeaturesSeineServiceImpl extends AbstractObserveService impl public List<GearUseFeaturesMeasurementSeine> loadGearUseFeaturesMeasurementSeineForEdit(String gearUseFeaturesSeineId) { GearUseFeaturesMeasurementSeineDAO dao = getDao(); - TopiaEntityBinder<GearUseFeaturesMeasurementSeine> binder = getGearUseFeaturesMeasurementSeineBinderForEdit(); + TopiaEntityBinder<GearUseFeaturesMeasurementSeine> binder = getBinder(GearUseFeaturesMeasurementSeine.class, BinderService.EDIT); GearUseFeaturesSeine gearUseFeaturesSeine = findByTopiaId(GearUseFeaturesSeine.class, gearUseFeaturesSeineId); List<GearUseFeaturesMeasurementSeine> result = new ArrayList<GearUseFeaturesMeasurementSeine>(); @@ -61,26 +62,45 @@ public class GearUseFeaturesSeineServiceImpl extends AbstractObserveService impl } @Override - public TopiaEntityBinder<GearUseFeaturesMeasurementSeine> getGearUseFeaturesMeasurementSeineBinderForEdit() { + public TripSeine loadForEdit(String tripId) { + TripSeine toLoad = findByTopiaId(TripSeine.class, tripId); - TopiaEntityBinder<GearUseFeaturesMeasurementSeine> r = loadBinder("-forEdit", GearUseFeaturesMeasurementSeine.class, new CreateBinder<GearUseFeaturesMeasurementSeine>() { + TripSeine loaded = getDao(TripSeine.class).newInstance(); - @Override - public BinderModelBuilder<GearUseFeaturesMeasurementSeine, GearUseFeaturesMeasurementSeine> createBinderBuilder(BinderService binderService, String name) { + if (toLoad != null) { - BinderModelBuilder<GearUseFeaturesMeasurementSeine, GearUseFeaturesMeasurementSeine> builder = - binderService.newBinderBuilder(GearUseFeaturesMeasurementSeine.class, - GearUseFeaturesMeasurementSeine.PROPERTY_GEAR_CARACTERISTIC, - GearUseFeaturesMeasurementSeine.PROPERTY_MEASUREMENT_VALUE); + copyExcluding(TripSeine.class, BinderService.EDIT_GEAR_USE_FEATURES_SEINE, toLoad, loaded, TripSeine.PROPERTY_GEAR_USE_FEATURES_SEINE); - return builder; + for (GearUseFeaturesSeine childToLoad : toLoad.getGearUseFeaturesSeine()) { + + GearUseFeaturesSeine childLoaded = getDao(GearUseFeaturesSeine.class).newInstance(); + + copy(GearUseFeaturesSeine.class, BinderService.EDIT, childToLoad, childLoaded); + + loaded.addGearUseFeaturesSeine(childLoaded); } - }); + } + + return loaded; + } - return r; + @Override + public void save(TripSeine parent) { + TopiaEntityBinder<TripSeine> parentBinder = getBinder(TripSeine.class, BinderService.EDIT_GEAR_USE_FEATURES_SEINE); + TopiaEntityBinder<GearUseFeaturesSeine> childbinder = getBinder(GearUseFeaturesSeine.class, BinderService.EDIT); + doSaveList(parent, new SaveCollectionAction<TripSeine, GearUseFeaturesSeine>( + TripSeine.class, GearUseFeaturesSeine.class, getListUpdator(), parentBinder, childbinder)); + } + + @Override + public EntityListUpdator<TripSeine, GearUseFeaturesSeine> getListUpdator() { + return EntityListUpdator.newEntityListUpdator( + TripSeine.class, + GearUseFeaturesSeine.class, + TripSeine.PROPERTY_GEAR_USE_FEATURES_SEINE); } protected GearUseFeaturesMeasurementSeineDAO getDao() { diff --git a/observe-services/src/main/java/fr/ird/observe/services/data/seine/NonTargetCatchService.java b/observe-services/src/main/java/fr/ird/observe/services/data/seine/NonTargetCatchService.java new file mode 100644 index 0000000..538d153 --- /dev/null +++ b/observe-services/src/main/java/fr/ird/observe/services/data/seine/NonTargetCatchService.java @@ -0,0 +1,23 @@ +package fr.ird.observe.services.data.seine; + +import fr.ird.observe.entities.seine.NonTargetCatch; +import fr.ird.observe.entities.seine.SetSeine; +import fr.ird.observe.services.Commit; +import fr.ird.observe.services.NoTransaction; +import fr.ird.observe.services.ObserveService; +import org.nuiton.topia.persistence.util.EntityListUpdator; + +/** + * @author Sylvain Bavencoff - bavencoff@codelutin.com + */ +public interface NonTargetCatchService extends ObserveService { + + SetSeine loadForEdit(String setId); + + @Commit + void save(SetSeine parent); + + @NoTransaction + EntityListUpdator<SetSeine, NonTargetCatch> getListUpdator(); + +} diff --git a/observe-services/src/main/java/fr/ird/observe/services/data/seine/NonTargetCatchServiceImpl.java b/observe-services/src/main/java/fr/ird/observe/services/data/seine/NonTargetCatchServiceImpl.java new file mode 100644 index 0000000..3166ffa --- /dev/null +++ b/observe-services/src/main/java/fr/ird/observe/services/data/seine/NonTargetCatchServiceImpl.java @@ -0,0 +1,77 @@ +package fr.ird.observe.services.data.seine; + +import fr.ird.observe.BinderService; +import fr.ird.observe.entities.seine.NonTargetCatch; +import fr.ird.observe.entities.seine.SetSeine; +import fr.ird.observe.services.AbstractObserveService; +import org.nuiton.topia.persistence.util.EntityListUpdator; +import org.nuiton.topia.persistence.util.TopiaEntityBinder; + +import java.util.Collection; + +/** + * @author Sylvain Bavencoff - bavencoff@codelutin.com + */ +public class NonTargetCatchServiceImpl extends AbstractObserveService implements NonTargetCatchService { + + @Override + public SetSeine loadForEdit(String setId) { + + SetSeine toLoad = findByTopiaId(SetSeine.class, setId); + + SetSeine loaded = getDao(SetSeine.class).newInstance(); + + if (toLoad != null) { + + copyExcluding(SetSeine.class, BinderService.EDIT_NON_TARGET_CATCH, toLoad, loaded, SetSeine.PROPERTY_NON_TARGET_CATCH); + + for (NonTargetCatch childToLoad : toLoad.getNonTargetCatch()) { + + NonTargetCatch childLoaded = getDao(NonTargetCatch.class).newInstance(); + + copy(NonTargetCatch.class, BinderService.EDIT, childToLoad, childLoaded); + + loaded.addNonTargetCatch(childLoaded); + + } + + } + + return loaded; + } + + @Override + public void save(SetSeine parent) { + TopiaEntityBinder<SetSeine> parentBinder = getBinder(SetSeine.class, BinderService.EDIT_NON_TARGET_CATCH); + TopiaEntityBinder<NonTargetCatch> childbinder = getBinder(NonTargetCatch.class, BinderService.EDIT); + + doSaveList(parent, new SaveCollectionAction<SetSeine, NonTargetCatch>( + SetSeine.class, NonTargetCatch.class, getListUpdator(), parentBinder, childbinder) { + + @Override + public void prepareSave(SetSeine parent, Collection<NonTargetCatch> toSaves) { + + // mise a jour de la propriete nonTargetDiscarded + + boolean hasRejet = false; + for (NonTargetCatch c : toSaves) { + if (c.getReasonForDiscard() != null) { + // on a trouve un rejet de faune + hasRejet = true; + break; + } + } + parent.setNonTargetDiscarded(hasRejet); + } + }); + + } + + @Override + public EntityListUpdator<SetSeine, NonTargetCatch> getListUpdator() { + return EntityListUpdator.newEntityListUpdator( + SetSeine.class, + NonTargetCatch.class, + SetSeine.PROPERTY_NON_TARGET_CATCH); + } +} 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 08161ec..f750158 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 @@ -22,6 +22,7 @@ package fr.ird.observe.ui.content.table.impl.seine; * #L% */ +import fr.ird.observe.BinderService; import fr.ird.observe.DataService; import fr.ird.observe.ObserveContext; import fr.ird.observe.ObserveDAOHelper; @@ -299,15 +300,17 @@ public class GearUseFeaturesSeineUIHandler extends ContentTableUIHandler<TripSei } @Override - protected TripSeine loadEditBean(ContentMode mode, DataContext dataContext, DataService dataService, DataSource dataSource) throws DataSourceException { + protected void loadEditBean() throws DataSourceException { - TripSeine tripSeine = super.loadEditBean(mode, dataContext, dataService, dataSource); + String tripSeineId = getDataContext().getSelectedTripSeineId(); + + TripSeine tripSeine = getService(GearUseFeaturesSeineService.class).loadForEdit(tripSeineId); + + copy(TripSeine.class, BinderService.EDIT_GEAR_USE_FEATURES_SEINE, tripSeine, getBean()); // reset measurements getModel().getMeasurementsTableModel().clear(); - return tripSeine; - } @Override @@ -386,6 +389,19 @@ public class GearUseFeaturesSeineUIHandler extends ContentTableUIHandler<TripSei } + + @Override + protected void doPersist(TripSeine editBean) { + getService(GearUseFeaturesSeineService.class).save(editBean); + } + + + //TODO Supprimer saveUI et mettre saveUI2 a la place + @Override + public final void saveUI(boolean refresh) { + saveUI2(refresh); + } + @Override protected void onUpdateFinalize(TopiaContext tx, TripSeine bean, Collection<GearUseFeaturesSeine> oldChilds) throws TopiaException { @@ -411,6 +427,8 @@ public class GearUseFeaturesSeineUIHandler extends ContentTableUIHandler<TripSei for (GearUseFeaturesMeasurementSeine measure : measurements) { + + if (measurementsTableModel.isRowNotEmpty(measure)) { GearUseFeaturesMeasurementSeine measureToSave; diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetCatchUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetCatchUIHandler.java index 417e8fc..968330f 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetCatchUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetCatchUIHandler.java @@ -21,6 +21,7 @@ */ package fr.ird.observe.ui.content.table.impl.seine; +import fr.ird.observe.BinderService; import fr.ird.observe.DataService; import fr.ird.observe.ObserveConfig; import fr.ird.observe.db.DataContext; @@ -39,6 +40,7 @@ import fr.ird.observe.entities.seine.NonTargetLength; import fr.ird.observe.entities.seine.NonTargetSample; import fr.ird.observe.entities.seine.SetSeine; import fr.ird.observe.services.data.TripService; +import fr.ird.observe.services.data.seine.NonTargetCatchService; import fr.ird.observe.services.data.seine.NonTargetSampleService; import fr.ird.observe.services.referential.ReferentialService; import fr.ird.observe.ui.UIHelper; @@ -260,6 +262,53 @@ public class NonTargetCatchUIHandler extends ContentTableUIHandler<SetSeine, Non } @Override + protected void loadEditBean() { + + String setId = getDataContext().getSelectedSetId(); + + SetSeine setSeine = getService(NonTargetCatchService.class).loadForEdit(setId); + + copy(SetSeine.class, BinderService.EDIT_NON_TARGET_CATCH, setSeine, getBean()); + + } + + @Override + protected void loadTableEditBeanForm(ContentMode mode) { + + List<Species> speciesList; + + String tripId = getDataContext().getSelectedTripId(); + + if (mode == ContentMode.UPDATE) { + + // get current ocean + Ocean ocean = getService(TripService.class).getTripOcean(tripId); + + ObserveConfig config = getUi().getContextValue(ObserveConfig.class); + String speciesListId = config.getSpeciesListSeineNonTargetCatchId(); + + // get all species + List<Species> allSpecies = getService(ReferentialService.class).loadDecoratedSpecies(speciesListId); + + // filtre par status actif + ReferenceEntities.filterReferentielListByStatus(allSpecies); + + // filtre par ocean + speciesList = Species2.filterByOcean(allSpecies, ocean); + + } else { + + speciesList = new ArrayList<Species>(); + } + + ALL_ESPECES_ENTRY.setContextValue(getUi(), speciesList); + if (log.isDebugEnabled()) { + log.debug("speciesList = " + speciesList.size()); + } + + } + + @Override protected void onSelectedRowChanged(int editingRow, NonTargetCatch bean, boolean create) { @@ -358,6 +407,17 @@ public class NonTargetCatchUIHandler extends ContentTableUIHandler<SetSeine, Non } @Override + protected boolean doSave(SetSeine bean) { + try { + return super.doSave(bean); + } finally { + + // toujours supprimer la référence du context, quoiqu'il arrive + ALL_TAILLES_TO_DELETE_ENTRY.removeContextValue(getUi()); + } + } + + @Override protected boolean prepareSave(SetSeine editBean, List<NonTargetCatch> objets) throws Exception { super.prepareSave(editBean, objets); @@ -368,9 +428,9 @@ public class NonTargetCatchUIHandler extends ContentTableUIHandler<SetSeine, Non NonTargetSampleService service = getService(NonTargetSampleService.class); service.getObsoleteEspeceForNonTargetSample(editBean.getTopiaId(), - speciessUsed, - speciessToDelete, - tailleToDelete); + speciessUsed, + speciessToDelete, + tailleToDelete); if (!tailleToDelete.isEmpty()) { @@ -416,19 +476,19 @@ public class NonTargetCatchUIHandler extends ContentTableUIHandler<SetSeine, Non ALL_TAILLES_TO_DELETE_ENTRY.setContextValue(getUi(), tailleToDelete); } - // mise a jour de la propriete nonTargetDiscarded + return true; + } + + @Override + protected void doPersist(SetSeine editBean) { + getService(NonTargetCatchService.class).save(editBean); + } - boolean hasRejet = false; - for (NonTargetCatch c : objets) { - if (c.getReasonForDiscard() != null) { - // on a trouve un rejet de faune - hasRejet = true; - break; - } - } - editBean.setNonTargetDiscarded(hasRejet); - return true; + //TODO Supprimer saveUI et mettre saveUI2 a la place + @Override + public final void saveUI(boolean refresh) { + saveUI2(refresh); } @Override -- 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