This is an automated email from the git hooks/post-receive script. New commit to branch feature/7469-4 in repository observe. See http://git.codelutin.com/observe.git commit 4a0d29ac3eba45f6740b25937c415b7e8b2ae79b Author: Kevin Morin <morin@codelutin.com> Date: Fri Nov 6 16:40:49 2015 +0100 enregsitrement des noeuds ouverts à la fermeture et chargement des noeuds ouverts à l'ouverture --- .../observe/ObserveSwingApplicationContext.java | 77 +++++++++++++++++++++- 1 file changed, 74 insertions(+), 3 deletions(-) diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ObserveSwingApplicationContext.java b/observe-application-swing/src/main/java/fr/ird/observe/ObserveSwingApplicationContext.java index 439c820..5451514 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ObserveSwingApplicationContext.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ObserveSwingApplicationContext.java @@ -36,12 +36,23 @@ import fr.ird.observe.services.ObserveService; import fr.ird.observe.services.ObserveServiceMainFactory; import fr.ird.observe.services.configuration.ObserveDataSourceConfigurationTopiaH2; import fr.ird.observe.services.configuration.ObserveDataSourceInformation; +import fr.ird.observe.services.dto.IdDtos; import fr.ird.observe.services.dto.constants.ReferentialLocale; +import fr.ird.observe.services.dto.referential.ProgramDto; import fr.ird.observe.services.service.BabModelVersionException; import fr.ird.observe.services.service.DatabaseConnexionNotAuthorizedException; import fr.ird.observe.services.service.DatabaseNotFoundException; +import fr.ird.observe.services.service.ReferentialService; import fr.ird.observe.services.service.actions.validate.ValidateServiceUtils; import fr.ird.observe.services.service.actions.validate.ValidatorDto; +import fr.ird.observe.services.service.longline.ActivityLonglineService; +import fr.ird.observe.services.service.longline.SetLonglineService; +import fr.ird.observe.services.service.longline.TripLonglineService; +import fr.ird.observe.services.service.seine.ActivitySeineService; +import fr.ird.observe.services.service.seine.FloatingObjectService; +import fr.ird.observe.services.service.seine.RouteService; +import fr.ird.observe.services.service.seine.SetSeineService; +import fr.ird.observe.services.service.seine.TripSeineService; import fr.ird.observe.ui.DecoratorService; import fr.ird.observe.ui.ObserveMainUI; import fr.ird.observe.ui.ObserveMainUIHandler; @@ -749,6 +760,7 @@ public class ObserveSwingApplicationContext extends DefaultApplicationContext im dataContext.setEnabled(false); // suppresion des opens dans le context de données + getConfig().setTreeOpenNodeIds(dataContext.getOpenIds()); dataContext.populateOpens(); mainUI.getTreeHelper().cleanNavigationUI(mainUI); @@ -819,9 +831,11 @@ public class ObserveSwingApplicationContext extends DefaultApplicationContext im treeHelper.cleanNavigationUI(mainUI); - // FIXME -// String[] openIds = getDataService().getOpenIds(source); -// mainUI.getDataContext().populateOpens(openIds); + String[] openIds = config.getTreeOpenNodeIds(); + + sanitizeOpenIds(openIds); + + dataContext.populateOpens(openIds); treeHelper.loadNavigationUI(source, mainUI); mainUI.setMode(ObserveUIMode.DB); @@ -899,4 +913,61 @@ public class ObserveSwingApplicationContext extends DefaultApplicationContext im return dataSource; } + protected void sanitizeOpenIds(String[] ids) { + if (ids != null) { + + boolean exists = true; + + for (int i = 0, l = ids.length; i < l; i++) { + String id = ids[i]; + + // si l'id précédent existe, on vérifie l'actuel + // sinon, on met à null + if (exists) { + if (IdDtos.isProgramId(id)) { + + exists = newService(ReferentialService.class).exists(ProgramDto.class, id); + + } else if (IdDtos.isTripSeineId(id)) { + + exists = newService(TripSeineService.class).exists(id); + + } else if (IdDtos.isRouteId(id)) { + + exists = newService(RouteService.class).exists(id); + + } else if (IdDtos.isActivitySeineId(id)) { + + exists = newService(ActivitySeineService.class).exists(id); + + } else if (IdDtos.isSetSeineId(id)) { + + exists = newService(SetSeineService.class).exists(id); + + } else if (IdDtos.isFloatingObjectId(id)) { + + exists = newService(FloatingObjectService.class).exists(id); + + } else if (IdDtos.isTripLonglineId(id)) { + + exists = newService(TripLonglineService.class).exists(id); + + } else if (IdDtos.isActivityLonglineId(id)) { + + exists = newService(ActivityLonglineService.class).exists(id); + + } else if (IdDtos.isSetLonglineId(id)) { + + exists = newService(SetLonglineService.class).exists(id); + + } + } + + if (!exists) { + ids[i] = null; + } + } + } + } + } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.