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 57ceac33855494c42362a2e02d3ae1e80198f7d5 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Apr 28 09:50:26 2015 +0200 do the math for lists-like ui (refs #7017) --- .../data/longline/TripLonglineService.java | 8 +++-- .../data/longline/TripLonglineServiceImpl.java | 42 +++++++++++++++++----- .../observe/services/data/seine/RouteService.java | 7 ++++ .../services/data/seine/RouteServiceImpl.java | 30 ++++++++++++++++ .../services/data/seine/TripSeineService.java | 9 +++-- .../services/data/seine/TripSeineServiceImpl.java | 42 +++++++++++++++++----- .../ui/content/list/ContentListUIHandler.java | 18 +++------- .../impl/longline/ActivityLonglinesUIHandler.java | 19 +++++++--- .../list/impl/longline/TripLonglinesUIHandler.java | 16 ++++++--- .../list/impl/seine/ActivitySeinesUIHandler.java | 22 ++++++++---- .../content/list/impl/seine/RoutesUIHandler.java | 19 +++++++--- .../list/impl/seine/TripSeinesUIHandler.java | 17 ++++++--- 12 files changed, 187 insertions(+), 62 deletions(-) diff --git a/observe-services/src/main/java/fr/ird/observe/services/data/longline/TripLonglineService.java b/observe-services/src/main/java/fr/ird/observe/services/data/longline/TripLonglineService.java index b39e076..28b8255 100644 --- a/observe-services/src/main/java/fr/ird/observe/services/data/longline/TripLonglineService.java +++ b/observe-services/src/main/java/fr/ird/observe/services/data/longline/TripLonglineService.java @@ -20,8 +20,6 @@ public interface TripLonglineService extends ObserveService { TripLongline getTripLonglineStub(String tripId); - List<TripLongline> loadAllByProgramForDisplay(String programId); - TripLongline loadForDisplay(String tripLonglineId); TripLongline loadForEdit(String tripLonglineId); @@ -38,5 +36,11 @@ public interface TripLonglineService extends ObserveService { TopiaEntityBinder<TripLongline> getBinderForEdit(); @NoTransaction + TopiaEntityBinder<TripLongline> getBinderStubForDisplay(); + + @NoTransaction void copyForEdit(TripLongline source, TripLongline target); + + @NoTransaction + void copyStubForDisplay(TripLongline source, TripLongline target); } diff --git a/observe-services/src/main/java/fr/ird/observe/services/data/longline/TripLonglineServiceImpl.java b/observe-services/src/main/java/fr/ird/observe/services/data/longline/TripLonglineServiceImpl.java index 7a93264..215c5d8 100644 --- a/observe-services/src/main/java/fr/ird/observe/services/data/longline/TripLonglineServiceImpl.java +++ b/observe-services/src/main/java/fr/ird/observe/services/data/longline/TripLonglineServiceImpl.java @@ -39,15 +39,6 @@ public class TripLonglineServiceImpl extends AbstractObserveService implements T } @Override - public List<TripLongline> loadAllByProgramForDisplay(String programId) { - - ReferenceLocale referenceLocale = getReferentielLocale(); - List<TripLongline> loaded = getDao().findAllStubByProgramId(programId, referenceLocale); - return loaded; - - } - - @Override public TripLongline loadForDisplay(String tripLonglineId) { TripLongline loaded = getDao().newInstance(); @@ -171,12 +162,45 @@ public class TripLonglineServiceImpl extends AbstractObserveService implements T } @Override + public TopiaEntityBinder<TripLongline> getBinderStubForDisplay() { + + TopiaEntityBinder<TripLongline> r = loadBinder("-stubFordisplay", TripLongline.class, new CreateBinder<TripLongline>() { + + @Override + public BinderModelBuilder<TripLongline, TripLongline> createBinderBuilder(BinderService binderService, String name) { + + BinderModelBuilder<TripLongline, TripLongline> builder = binderService.newBinderBuilder( + TripLongline.class, + TripLongline.PROPERTY_START_DATE, + TripLongline.PROPERTY_END_DATE, + TripLongline.PROPERTY_OPEN, + TripLongline.PROPERTY_OBSERVER, + TripLongline.PROPERTY_VESSEL, + TripLongline.PROPERTY_PROGRAM); + + return builder; + } + + }); + + return r; + + } + + @Override public void copyForEdit(TripLongline source, TripLongline target) { getBinderForEdit().load(source, target, true); } + @Override + public void copyStubForDisplay(TripLongline source, TripLongline target) { + + getBinderStubForDisplay().load(source, target, true); + + } + protected TripLongline create(TripLongline toCreate) { TripLonglineDAO dao = getDao(); diff --git a/observe-services/src/main/java/fr/ird/observe/services/data/seine/RouteService.java b/observe-services/src/main/java/fr/ird/observe/services/data/seine/RouteService.java index af91248..b968807 100644 --- a/observe-services/src/main/java/fr/ird/observe/services/data/seine/RouteService.java +++ b/observe-services/src/main/java/fr/ird/observe/services/data/seine/RouteService.java @@ -36,5 +36,12 @@ public interface RouteService extends ObserveService { TopiaEntityBinder<Route> getBinderForEdit(); @NoTransaction + TopiaEntityBinder<Route> getBinderStubForDisplay(); + + @NoTransaction void copyForEdit(Route source, Route target); + + @NoTransaction + void copyStubForDisplay(Route source, Route target); + } diff --git a/observe-services/src/main/java/fr/ird/observe/services/data/seine/RouteServiceImpl.java b/observe-services/src/main/java/fr/ird/observe/services/data/seine/RouteServiceImpl.java index fc6a459..0333785 100644 --- a/observe-services/src/main/java/fr/ird/observe/services/data/seine/RouteServiceImpl.java +++ b/observe-services/src/main/java/fr/ird/observe/services/data/seine/RouteServiceImpl.java @@ -181,12 +181,42 @@ public class RouteServiceImpl extends AbstractObserveService implements RouteSer } @Override + public TopiaEntityBinder<Route> getBinderStubForDisplay() { + + TopiaEntityBinder<Route> binder = loadBinder("-stubForDisplay", Route.class, new CreateBinder<Route>() { + + @Override + public BinderModelBuilder<Route, Route> createBinderBuilder(BinderService binderService, String name) { + + BinderModelBuilder<Route, Route> builder = binderService.newBinderBuilder( + Route.class, + Route.PROPERTY_DATE, + Route.PROPERTY_OPEN); + + return builder; + + } + + }); + + return binder; + + } + + @Override public void copyForEdit(Route source, Route target) { getBinderForEdit().load(source, target, true); } + @Override + public void copyStubForDisplay(Route source, Route target) { + + getBinderStubForDisplay().load(source, target, true); + + } + protected Route create(String tripSeineId, Route toCreate) { RouteDAO dao = getDao(); diff --git a/observe-services/src/main/java/fr/ird/observe/services/data/seine/TripSeineService.java b/observe-services/src/main/java/fr/ird/observe/services/data/seine/TripSeineService.java index 924ea39..bbc6fd1 100644 --- a/observe-services/src/main/java/fr/ird/observe/services/data/seine/TripSeineService.java +++ b/observe-services/src/main/java/fr/ird/observe/services/data/seine/TripSeineService.java @@ -20,8 +20,6 @@ public interface TripSeineService extends ObserveService { TripSeine getTripSeineStub(String tripSeineId); - List<TripSeine> loadAllByProgramForDisplay(String programId); - TripSeine loadForDisplay(String tripSeineId); TripSeine loadForEdit(String tripSeineId); @@ -38,5 +36,12 @@ public interface TripSeineService extends ObserveService { TopiaEntityBinder<TripSeine> getBinderForEdit(); @NoTransaction + TopiaEntityBinder<TripSeine> getBinderStubForDisplay(); + + @NoTransaction void copyForEdit(TripSeine source, TripSeine target); + + @NoTransaction + void copyStubForDisplay(TripSeine source, TripSeine target); + } diff --git a/observe-services/src/main/java/fr/ird/observe/services/data/seine/TripSeineServiceImpl.java b/observe-services/src/main/java/fr/ird/observe/services/data/seine/TripSeineServiceImpl.java index 2935943..985bd35 100644 --- a/observe-services/src/main/java/fr/ird/observe/services/data/seine/TripSeineServiceImpl.java +++ b/observe-services/src/main/java/fr/ird/observe/services/data/seine/TripSeineServiceImpl.java @@ -46,15 +46,6 @@ public class TripSeineServiceImpl extends AbstractObserveService implements Trip } @Override - public List<TripSeine> loadAllByProgramForDisplay(String programId) { - - ReferenceLocale referenceLocale = getReferentielLocale(); - List<TripSeine> loaded = getDao().findAllStubByProgramId(programId, referenceLocale); - return loaded; - - } - - @Override public TripSeine loadForDisplay(String tripSeineId) { TripSeine loaded = getDao().newInstance(); @@ -181,10 +172,43 @@ public class TripSeineServiceImpl extends AbstractObserveService implements Trip } @Override + public TopiaEntityBinder<TripSeine> getBinderStubForDisplay() { + + TopiaEntityBinder<TripSeine> r = loadBinder("-stubForDisplay", TripSeine.class, new CreateBinder<TripSeine>() { + + @Override + public BinderModelBuilder<TripSeine, TripSeine> createBinderBuilder(BinderService binderService, String name) { + + BinderModelBuilder<TripSeine, TripSeine> builder = binderService.newBinderBuilder( + TripSeine.class, + TripSeine.PROPERTY_START_DATE, + TripSeine.PROPERTY_END_DATE, + TripSeine.PROPERTY_OPEN, + TripSeine.PROPERTY_OBSERVER, + TripSeine.PROPERTY_VESSEL, + TripSeine.PROPERTY_PROGRAM); + + return builder; + } + + }); + + return r; + + } + + @Override public void copyForEdit(TripSeine source, TripSeine target) { getBinderForEdit().load(source, target, true); } + @Override + public void copyStubForDisplay(TripSeine source, TripSeine target) { + + getBinderStubForDisplay().load(source, target, true); + + } + } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/list/ContentListUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/list/ContentListUIHandler.java index 46fa00a..c086ec2 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/list/ContentListUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/list/ContentListUIHandler.java @@ -22,7 +22,6 @@ package fr.ird.observe.ui.content.list; import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceException; import fr.ird.observe.db.constants.DataContextType; import fr.ird.observe.ui.actions.shared.SelectNodeUIAction; import fr.ird.observe.ui.content.ContentMode; @@ -64,14 +63,12 @@ public abstract class ContentListUIHandler<E extends TopiaEntity, C extends Topi } /** - * Obtain the list of entities to display on ui from his container - * {@code bean}. + * Load data (the main bean + the data list) in model. * - * @param bean the container of entities to display - * @return the list of entities to display - * @throws DataSourceException if a pb while grabbing data + * @param selectedId id of the entity to load + * @since 4.0 */ - protected abstract List<C> getChilds(E bean) throws DataSourceException; + protected abstract void loadDataInModel(String selectedId); @Override protected boolean computeCanWrite(DataSource source) { @@ -134,12 +131,7 @@ public abstract class ContentListUIHandler<E extends TopiaEntity, C extends Topi } model.setCanReopen(canReopen); - E bean = getBean(); - getDataService().loadEditEntity(getDataSource(), selectedId, getLoadExecutor()); - - List<C> data = getChilds(bean); - - model.setData(data); + loadDataInModel(selectedId); if (!model.isEmpty()) { diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/ActivityLonglinesUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/ActivityLonglinesUIHandler.java index adc7da6..0e02043 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/ActivityLonglinesUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/ActivityLonglinesUIHandler.java @@ -28,6 +28,7 @@ import fr.ird.observe.db.constants.DataContextType; import fr.ird.observe.entities.longline.ActivityLongline; import fr.ird.observe.entities.longline.TripLongline; import fr.ird.observe.services.data.longline.ActivityLonglineService; +import fr.ird.observe.services.data.longline.TripLonglineService; import fr.ird.observe.ui.content.ContentMode; import fr.ird.observe.ui.content.list.ContentListUIHandler; import org.apache.commons.logging.Log; @@ -108,16 +109,24 @@ public class ActivityLonglinesUIHandler extends ContentListUIHandler<TripLonglin } @Override - protected List<ActivityLongline> getChilds(TripLongline bean) throws DataSourceException { + protected void loadDataInModel(String selectedId) { - ActivityLonglineService service = getService(ActivityLonglineService.class); - List<ActivityLongline> list = service.getActivityLonglineStubByTrip(bean.getTopiaId()); + TripLonglineService tripService = getService(TripLonglineService.class); + TripLongline loaded = tripService.getTripLonglineStub(selectedId); + + TripLongline bean = getBean(); + tripService.copyStubForDisplay(loaded, bean); + + ActivityLonglineService routeService = getService(ActivityLonglineService.class); + List<ActivityLongline> activityLonglines = routeService.getActivityLonglineStubByTrip(selectedId); if (log.isDebugEnabled()) { - log.debug("Will use " + list.size() + " activities."); + log.debug("Will use " + activityLonglines.size() + " activities."); } - return list; + bean.setActivityLongline(activityLonglines); + + getModel().setData(activityLonglines); } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/TripLonglinesUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/TripLonglinesUIHandler.java index 0c2e8b9..b5f58bc 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/TripLonglinesUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/TripLonglinesUIHandler.java @@ -28,6 +28,7 @@ import fr.ird.observe.db.constants.DataContextType; import fr.ird.observe.entities.longline.TripLongline; import fr.ird.observe.entities.referentiel.Program; import fr.ird.observe.services.data.longline.TripLonglineService; +import fr.ird.observe.services.referential.ReferentialService; import fr.ird.observe.ui.content.ContentMode; import fr.ird.observe.ui.content.list.ContentListUIHandler; import org.apache.commons.logging.Log; @@ -91,16 +92,21 @@ public class TripLonglinesUIHandler extends ContentListUIHandler<Program, TripLo } @Override - protected List<TripLongline> getChilds(Program bean) throws DataSourceException { + protected void loadDataInModel(String selectedId) { - TripLonglineService service = getService(TripLonglineService.class); - List<TripLongline> list = service.getTripLonglineStubByProgram(bean.getTopiaId()); + ReferentialService service = getService(ReferentialService.class); + Program loaded = service.loadAndDecorate(Program.class, selectedId); + Program bean = getBean(); + service.copyProgramForDisplay(loaded, bean); + + TripLonglineService tripService = getService(TripLonglineService.class); + List<TripLongline> tripLonglines = tripService.getTripLonglineStubByProgram(bean.getTopiaId()); if (log.isDebugEnabled()) { - log.debug("Will use " + list.size() + " trips."); + log.debug("Will use " + tripLonglines.size() + " trips."); } - return list; + getModel().setData(tripLonglines); } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/ActivitySeinesUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/ActivitySeinesUIHandler.java index 619cf3e..5b866ce 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/ActivitySeinesUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/ActivitySeinesUIHandler.java @@ -22,11 +22,11 @@ package fr.ird.observe.ui.content.list.impl.seine; import fr.ird.observe.db.DataContext; -import fr.ird.observe.db.DataSourceException; import fr.ird.observe.db.constants.DataContextType; import fr.ird.observe.entities.seine.ActivitySeine; import fr.ird.observe.entities.seine.Route; import fr.ird.observe.services.data.seine.ActivitySeineService; +import fr.ird.observe.services.data.seine.RouteService; import fr.ird.observe.ui.content.ContentMode; import fr.ird.observe.ui.content.list.ContentListUIHandler; import org.apache.commons.logging.Log; @@ -106,17 +106,25 @@ public class ActivitySeinesUIHandler extends ContentListUIHandler<Route, Activit } @Override - protected List<ActivitySeine> getChilds(Route bean) throws DataSourceException { + protected void loadDataInModel(String selectedId) { - ActivitySeineService service = getService(ActivitySeineService.class); - List<ActivitySeine> list = service.getActivitySeineStubByRoute(bean.getTopiaId()); + RouteService routeService = getService(RouteService.class); + + Route loaded = routeService.getRouteStub(selectedId); + Route bean = getBean(); + routeService.copyStubForDisplay(loaded, bean); + + ActivitySeineService activityService = getService(ActivitySeineService.class); + List<ActivitySeine> activitySeines = activityService.getActivitySeineStubByRoute(selectedId); if (log.isDebugEnabled()) { - log.debug("Will use " + list.size() + " activities."); + log.debug("Will use " + activitySeines.size() + " activities."); } - return list; - + bean.setActivitySeine(activitySeines); + + getModel().setData(activitySeines); + } } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/RoutesUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/RoutesUIHandler.java index 29c1fe2..d8276b9 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/RoutesUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/RoutesUIHandler.java @@ -27,6 +27,7 @@ import fr.ird.observe.db.constants.DataContextType; import fr.ird.observe.entities.seine.Route; import fr.ird.observe.entities.seine.TripSeine; import fr.ird.observe.services.data.seine.RouteService; +import fr.ird.observe.services.data.seine.TripSeineService; import fr.ird.observe.ui.content.ContentMode; import fr.ird.observe.ui.content.list.ContentListUIHandler; import org.apache.commons.logging.Log; @@ -103,16 +104,24 @@ public class RoutesUIHandler extends ContentListUIHandler<TripSeine, Route> { } @Override - protected List<Route> getChilds(TripSeine bean) throws DataSourceException { + protected void loadDataInModel(String selectedId) { - RouteService service = getService(RouteService.class); - List<Route> list = service.getRouteStubByTrip(bean.getTopiaId()); + TripSeineService tripService = getService(TripSeineService.class); + TripSeine loaded = tripService.getTripSeineStub(selectedId); + TripSeine bean = getBean(); + tripService.copyStubForDisplay(loaded, bean); + + RouteService routeService = getService(RouteService.class); + List<Route> routes = routeService.getRouteStubByTrip(selectedId); if (log.isDebugEnabled()) { - log.debug("Will use " + list.size() + " routes."); + log.debug("Will use " + routes.size() + " routes."); } - return list; + bean.setRoute(routes); + + getModel().setData(routes); } + } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/TripSeinesUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/TripSeinesUIHandler.java index 149a47a..3802775 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/TripSeinesUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/TripSeinesUIHandler.java @@ -27,6 +27,7 @@ import fr.ird.observe.db.constants.DataContextType; import fr.ird.observe.entities.referentiel.Program; import fr.ird.observe.entities.seine.TripSeine; import fr.ird.observe.services.data.seine.TripSeineService; +import fr.ird.observe.services.referential.ReferentialService; import fr.ird.observe.ui.content.ContentMode; import fr.ird.observe.ui.content.list.ContentListUIHandler; import org.apache.commons.logging.Log; @@ -88,16 +89,22 @@ public class TripSeinesUIHandler extends ContentListUIHandler<Program, TripSeine } @Override - protected List<TripSeine> getChilds(Program bean) throws DataSourceException { + protected void loadDataInModel(String selectedId) { - TripSeineService service = getService(TripSeineService.class); - List<TripSeine> list = service.getTripSeineStubByProgram(bean.getTopiaId()); + ReferentialService service = getService(ReferentialService.class); + Program loaded = service.loadAndDecorate(Program.class, selectedId); + Program bean = getBean(); + service.copyProgramForDisplay(loaded, bean); + + TripSeineService tripService = getService(TripSeineService.class); + List<TripSeine> tripSeines = tripService.getTripSeineStubByProgram(bean.getTopiaId()); if (log.isDebugEnabled()) { - log.debug("Will use " + list.size() + " trips."); + log.debug("Will use " + tripSeines.size() + " trips."); } - return list; + getModel().setData(tripSeines); } + } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.