Author: chatellier Date: 2011-01-25 16:01:34 +0000 (Tue, 25 Jan 2011) New Revision: 573 Log: Add option to get result with allowed data sources. Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/services/WebService.java trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/common/CommonZone.java trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/source/ZoneAction.java Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/services/WebService.java =================================================================== --- trunk/coser-business/src/main/java/fr/ifremer/coser/services/WebService.java 2011-01-25 16:00:37 UTC (rev 572) +++ trunk/coser-business/src/main/java/fr/ifremer/coser/services/WebService.java 2011-01-25 16:01:34 UTC (rev 573) @@ -1033,10 +1033,11 @@ * campagne qui sont disponible dans cette zone principale. * * @param facade facade (le nom de la facade principale) + * @param onlyWithSource retourn zone liste with available source data * @return couple subzoneid/sub * @throws CoserBusinessException */ - public Map<String, String> getZoneForFacade(String facade) throws CoserBusinessException { + public Map<String, String> getZoneForFacade(String facade, boolean onlyWithSource) throws CoserBusinessException { Map<String, String> zonesForFacade = new HashMap<String, String>(); // get subzone for main zone @@ -1072,17 +1073,19 @@ for (File resultFile : resultFiles) { if (resultFile.isDirectory()) { RSufiResult rsufiResult = projectService.getRSufiResult(resultFile); - String resultZoneId = rsufiResult.getZone(); - if (subZones.contains(resultZoneId)) { - String zoneid = resultZoneId; - - // get zone name - // "id";"facade";"zone";"periode";"serie";"comment";"map" - int zoneIndex = getZonesMap().indexOf(zoneid); - String[] zoneData = getZonesMap().get(zoneIndex); - String zoneName = zoneData[2] + " - " + zoneData[3] + " - " + zoneData[4]; - - zonesForFacade.put(zoneid, zoneName); + + if (!onlyWithSource || rsufiResult.isDataAllowed()) { + String resultZoneId = rsufiResult.getZone(); + if (subZones.contains(resultZoneId)) { + String zoneid = resultZoneId; + // get zone name + // "id";"facade";"zone";"periode";"serie";"comment";"map" + int zoneIndex = getZonesMap().indexOf(zoneid); + String[] zoneData = getZonesMap().get(zoneIndex); + String zoneName = zoneData[2] + " - " + zoneData[3] + " - " + zoneData[4]; + + zonesForFacade.put(zoneid, zoneName); + } } } } @@ -1831,6 +1834,10 @@ */ protected File generateSourceZip(Project project, Selection selection, File resultDirectory, RSufiResult rSufiResult) throws CoserBusinessException { + if (rSufiResult.isDataAllowed()) { + throw new CoserBusinessException("Can't download source for non allowed result"); + } + File resultZip = null; try { Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/common/CommonZone.java =================================================================== --- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/common/CommonZone.java 2011-01-25 16:00:37 UTC (rev 572) +++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/common/CommonZone.java 2011-01-25 16:01:34 UTC (rev 573) @@ -75,7 +75,7 @@ try { // renvoi la liste des id subzone-survey et leurs label associé - zones = webService.getZoneForFacade(facade); + zones = webService.getZoneForFacade(facade, false); zonesPictures = webService.getZonePictures(); zonesMetaInfo = webService.getZoneMetaInfo(); } catch (CoserBusinessException ex) { Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/source/ZoneAction.java =================================================================== --- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/source/ZoneAction.java 2011-01-25 16:00:37 UTC (rev 572) +++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/source/ZoneAction.java 2011-01-25 16:01:34 UTC (rev 573) @@ -22,6 +22,10 @@ package fr.ifremer.coser.web.actions.source; +import fr.ifremer.coser.CoserBusinessException; +import fr.ifremer.coser.services.WebService; +import fr.ifremer.coser.web.CoserWebException; +import fr.ifremer.coser.web.ServiceFactory; import fr.ifremer.coser.web.actions.common.CommonZone; /** @@ -38,4 +42,20 @@ /** serialVersionUID. */ private static final long serialVersionUID = 3385467755357775199L; + @Override + public String execute() { + + WebService webService = ServiceFactory.getWebService(); + + try { + // renvoi la liste des id subzone-survey et leurs label associé + zones = webService.getZoneForFacade(facade, true); + zonesPictures = webService.getZonePictures(); + zonesMetaInfo = webService.getZoneMetaInfo(); + } catch (CoserBusinessException ex) { + throw new CoserWebException("Can't get zone map", ex); + } + + return SUCCESS; + } }
participants (1)
-
chatellier@users.labs.libre-entreprise.org