Author: bleny Date: 2011-02-15 14:21:33 +0000 (Tue, 15 Feb 2011) New Revision: 1012 Log: start evol motifs in cartography (discontinued) Added: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/KmlLoaderStrategyContactsStates.java trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/KmlLoaderStrategyContactsStatesMotifs.java Removed: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/KmlLoaderStrategyContacts.java Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceCartographyImpl.java trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSynthesisImpl.java trunk/wao-business/src/main/resources/i18n/wao-business_en_GB.properties trunk/wao-business/src/main/resources/i18n/wao-business_fr_FR.properties trunk/wao-business/src/main/xmi/wao.zargo trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Cartography.java trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/KmlLoader.java Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceCartographyImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceCartographyImpl.java 2011-02-14 16:12:39 UTC (rev 1011) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceCartographyImpl.java 2011-02-15 14:21:33 UTC (rev 1012) @@ -161,8 +161,6 @@ BoatDistrictDAO dao = WaoDAOHelper.getBoatDistrictDAO(transaction); - KmlWriter writer = KmlIOFactory.newContactWriterJak(); - Map<String, PieChartData> districts = serviceSynthesis.getContactPieChartDataByBoatDistrict(filter); @@ -173,6 +171,7 @@ // Only 2 digits maximum after the comma numberFormat.setMaximumFractionDigits(2); + KmlWriter writer = KmlIOFactory.newContactWriterJak(); for (Map.Entry<String, PieChartData> entry : districts.entrySet()) { String districtId = entry.getKey(); PieChartData data = entry.getValue(); @@ -285,4 +284,72 @@ protected double getSeriesValue(PieChartData data, ContactPieChartConstant series) { return data.getSeries(series.ordinal()).getValue(); } + + @Override + protected InputStream executeExportContactMotifsStatisticsKml(TopiaContext transaction, ContactFilter filter) + throws TopiaException, IOException { + + BoatDistrictDAO dao = WaoDAOHelper.getBoatDistrictDAO(transaction); + + Map<String, PieChartData> districts = null; // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + // serviceSynthesis.getContactMotifsPieChartDataByBoatDistrict(filter); + + // Create new IconSizeHelper to calculate icon size and scale for pieCharts + IconSizeHelper sizeHelper = new IconSizeHelper(districts.values()); + + NumberFormat numberFormat = NumberFormat.getInstance(); + // Only 2 digits maximum after the comma + numberFormat.setMaximumFractionDigits(2); + + KmlWriter writer = KmlIOFactory.newContactWriterJak(); + for (Map.Entry<String, PieChartData> entry : districts.entrySet()) { + String districtId = entry.getKey(); + PieChartData data = entry.getValue(); + + // Replace each values by percentage + data.computeSeries(); + + BoatDistrict district = dao.findByTopiaId(districtId); + + String title = "Répartition des motifs de refus pour le quartier " + + district.getCode(); + + StringBuilder description = new StringBuilder("\n"). + append(" <h3>"). + append(title). + append("</h3>\n"). + append(" <p>"). + append(serviceChart.getHtmlImgTag(data, title, false)). + append("</p>\n"); + + double scale = sizeHelper.getScale(data.getTotal()); + int size = sizeHelper.getSizeFromScale(scale); + + if (logger.isDebugEnabled()) { + logger.debug("Chart : nbElements = " + data.getTotal() + + " _ size = " + size + " _ scale = " + scale + + " _ ref = " + sizeHelper.getReference()); + } + + String miniChartUrl = serviceChart.getPieChartUrl(data, size, true); + + writer.record(district, miniChartUrl, scale, description.toString()); + } + + File file = File.createTempFile("wao-contacts-motifs", ".kml"); + file.deleteOnExit(); + + OutputStream output = new FileOutputStream(file); + try { + writer.write(output); + } finally { + output.close(); + } + + if (logger.isTraceEnabled()) { + logger.trace(FileUtils.readFileToString(file)); + } + + return new FileInputStream(file); + } } Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSynthesisImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSynthesisImpl.java 2011-02-14 16:12:39 UTC (rev 1011) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSynthesisImpl.java 2011-02-15 14:21:33 UTC (rev 1012) @@ -55,6 +55,7 @@ import fr.ifremer.wao.entity.Boat; import fr.ifremer.wao.entity.Company; import fr.ifremer.wao.entity.Contact; +import fr.ifremer.wao.entity.ContactStateMotif; import fr.ifremer.wao.entity.Indicator; import fr.ifremer.wao.entity.IndicatorDAO; import fr.ifremer.wao.entity.IndicatorLevel; @@ -798,77 +799,6 @@ } - @Override - public Map<String, PieChartData> executeGetContactPieChartDataByBoatDistrict( - TopiaContext transaction, ContactFilter filter) - throws TopiaException { - - WaoQueryBuilder builder = context.newQueryBuilder(); - - ContactProperty contactProperty = builder.initializeForContact(); - - BoatDistrictProperty boatDistrictProperty = - contactProperty.boatProperty().boatDistrictProperty(); - - TopiaQuery query = builder.applyContactFilter(filter). - // Only districts with no null coordinates - addNotNull(boatDistrictProperty.latitude()). - addNotNull(boatDistrictProperty.longitude()). - // Don't take contacts refused by company or program - addNullOr(contactProperty.validationCompany(), Op.NEQ, Boolean.FALSE). - addNullOr(contactProperty.validationProgram(), Op.NEQ, Boolean.FALSE). - // Set the results wanted : by boatDistrict, by State, get number of results - setSelect(boatDistrictProperty.topiaId(), contactProperty.state(), "COUNT(*)"). - addGroup(boatDistrictProperty.topiaId(), contactProperty.state()); - - int realized = 0, refused = 0, other = 0, total = 0; - - List<Object[]> queryResults = transaction.findByQuery(query); - - Map<String, PieChartData> results = new HashMap<String, PieChartData>(); - - for (Object[] row : queryResults) { - - String districtId = (String)row[0]; - ContactState state = ContactState.valueOf((Integer)row[1]); - long count = (Long)row[2]; - - PieChartData data = results.get(districtId); - if (data == null) { - data = createContactPieChartData(filter.getObsProgram()); - results.put(districtId, data); - } - - if (filter.getObsProgram() == ObsProgram.OBSMER) { - switch (state) { - case OBSERVATION_DONE: - case OBSERVATION_EXPECTED: - data.incValue(ContactPieChartConstant.REALIZED.ordinal(), count); - break; - case CONTACT_REFUSED: - case CONTACT_DEFINITELY_REFUSED: - data.incValue(ContactPieChartConstant.REFUSED.ordinal(), count); - break; - default: - data.incValue(ContactPieChartConstant.OTHER.ordinal(), count); - } - } else if (filter.getObsProgram() == ObsProgram.OBSVENTE) { - switch (state) { - case OBSERVATION_DONE: - case OBSERVATION_EXPECTED: - data.incValue(ContactPieChartConstant.REALIZED.ordinal(), count); - break; - default: - data.incValue(ContactPieChartConstant.OTHER.ordinal(), count); - } - } else { - throw new IllegalArgumentException("not valid program " + filter.getObsProgram()); - } - } - - return results; - } - protected Double getIndicatorValueForDataSampling(SamplingFilter filter) { List<SortedMap<Date, Integer>> res = getDataSampling(filter); @@ -1190,5 +1120,131 @@ return data; } + + @Override + public Map<String, PieChartData> executeGetContactPieChartDataByBoatDistrict( + TopiaContext transaction, ContactFilter filter) + throws TopiaException { + + WaoQueryBuilder builder = context.newQueryBuilder(); + + ContactProperty contactProperty = builder.initializeForContact(); + + BoatDistrictProperty boatDistrictProperty = + contactProperty.boatProperty().boatDistrictProperty(); + + TopiaQuery query = builder.applyContactFilter(filter). + // Only districts with no null coordinates + addNotNull(boatDistrictProperty.latitude()). + addNotNull(boatDistrictProperty.longitude()). + // Don't take contacts refused by company or program + addNullOr(contactProperty.validationCompany(), Op.NEQ, Boolean.FALSE). + addNullOr(contactProperty.validationProgram(), Op.NEQ, Boolean.FALSE). + // Set the results wanted : by boatDistrict, by State, get number of results + setSelect(boatDistrictProperty.topiaId(), contactProperty.state(), "COUNT(*)"). + addGroup(boatDistrictProperty.topiaId(), contactProperty.state()); + + int realized = 0, refused = 0, other = 0, total = 0; + + List<Object[]> queryResults = transaction.findByQuery(query); + + Map<String, PieChartData> results = new HashMap<String, PieChartData>(); + + for (Object[] row : queryResults) { + + String districtId = (String)row[0]; + ContactState state = ContactState.valueOf((Integer)row[1]); + long count = (Long)row[2]; + + PieChartData data = results.get(districtId); + if (data == null) { + data = createContactPieChartData(filter.getObsProgram()); + results.put(districtId, data); + } + + if (filter.getObsProgram() == ObsProgram.OBSMER) { + switch (state) { + case OBSERVATION_DONE: + case OBSERVATION_EXPECTED: + data.incValue(ContactPieChartConstant.REALIZED.ordinal(), count); + break; + case CONTACT_REFUSED: + case CONTACT_DEFINITELY_REFUSED: + data.incValue(ContactPieChartConstant.REFUSED.ordinal(), count); + break; + default: + data.incValue(ContactPieChartConstant.OTHER.ordinal(), count); + } + } else if (filter.getObsProgram() == ObsProgram.OBSVENTE) { + switch (state) { + case OBSERVATION_DONE: + case OBSERVATION_EXPECTED: + data.incValue(ContactPieChartConstant.REALIZED.ordinal(), count); + break; + default: + data.incValue(ContactPieChartConstant.OTHER.ordinal(), count); + } + } else { + throw new IllegalArgumentException("not valid program " + filter.getObsProgram()); + } + } + + return results; + } + + @Override + protected Map<String, PieChartData> executeGetContactStateMotifsPieChartDataByBoatDistrict + (TopiaContext transaction, ContactFilter filter) + throws TopiaException { + + // TODO 2011-02-15 bleny this piece of code was just started, must be reviewed + + WaoQueryBuilder builder = context.newQueryBuilder(); + + ContactProperty contactProperty = builder.initializeForContact(); + + BoatDistrictProperty boatDistrictProperty = + contactProperty.boatProperty().boatDistrictProperty(); + + TopiaQuery query = builder.applyContactFilter(filter). + // Only districts with no null coordinates + addNotNull(boatDistrictProperty.latitude()). + addNotNull(boatDistrictProperty.longitude()). + // Don't take contacts refused by company or program + addNullOr(contactProperty.validationCompany(), Op.NEQ, Boolean.FALSE). + addNullOr(contactProperty.validationProgram(), Op.NEQ, Boolean.FALSE). + addNotNull(contactProperty.contactStateMotif()). + // Set the results wanted : by boatDistrict, by State, get number of results + setSelect(boatDistrictProperty.topiaId(), contactProperty.contactStateMotif(), "COUNT(*)"). + addGroup(boatDistrictProperty.topiaId(), contactProperty.contactStateMotif()); + + List<Object[]> queryResults = transaction.findByQuery(query); + + Map<String, PieChartData> results = new HashMap<String, PieChartData>(); + + for (Object[] row : queryResults) { + + String districtId = (String) row[0]; + ContactStateMotif motif = (ContactStateMotif) row[1]; + long count = (Long)row[2]; + + PieChartData data = results.get(districtId); + if (data == null) { + data = new PieChartDataImpl(); +// for (ContactPieChartConstant constant : ContactPieChartConstant.values(obsProgram)) { +// PieChartSeries series = new PieChartSeriesImpl(); +// series.setLabel(constant.toString()); +// series.setColor(constant.getColor()); +// data.addSeries(series); +// } + results.put(districtId, data); + } + + } + + throw new UnsupportedOperationException("not yet implemented"); + + // return results; + } } Modified: trunk/wao-business/src/main/resources/i18n/wao-business_en_GB.properties =================================================================== --- trunk/wao-business/src/main/resources/i18n/wao-business_en_GB.properties 2011-02-14 16:12:39 UTC (rev 1011) +++ trunk/wao-business/src/main/resources/i18n/wao-business_en_GB.properties 2011-02-15 14:21:33 UTC (rev 1012) @@ -135,6 +135,7 @@ wao.error.serviceBoat.getShipOwnerNamesContains= wao.error.serviceBoat.importActivityCalendarCsv= wao.error.serviceBoat.importBoatCsv= +wao.error.serviceCartography.exportContactMotifsStatisticsKml= wao.error.serviceCartography.exportContactStatisticsKml= wao.error.serviceCartography.importBoatDistrictKml= wao.error.serviceChart.getContactPieChartData= @@ -191,6 +192,7 @@ wao.error.serviceSynthesis.getContactDataInputDateReactivity= wao.error.serviceSynthesis.getContactPieChartData= wao.error.serviceSynthesis.getContactPieChartDataByBoatDistrict= +wao.error.serviceSynthesis.getContactStateMotifsPieChartDataByBoatDistrict= wao.error.serviceSynthesis.getContactStateStatistics= wao.error.serviceSynthesis.getDataReliability= wao.error.serviceSynthesis.getDataSampling= Modified: trunk/wao-business/src/main/resources/i18n/wao-business_fr_FR.properties =================================================================== --- trunk/wao-business/src/main/resources/i18n/wao-business_fr_FR.properties 2011-02-14 16:12:39 UTC (rev 1011) +++ trunk/wao-business/src/main/resources/i18n/wao-business_fr_FR.properties 2011-02-15 14:21:33 UTC (rev 1012) @@ -145,6 +145,7 @@ wao.error.serviceBoat.getShipOwnerNamesContains= wao.error.serviceBoat.importActivityCalendarCsv=Probl\u00E8me d'import du fichier CSV des calendriers d'activit\u00E9 wao.error.serviceBoat.importBoatCsv=Probl\u00E8me d'import du fichier CSV. V\u00E9rifiez l'en-t\u00EAte du fichier \: [ NAVS_COD,CARN_NOM,CARN_LONGUEUR_HT,CARN_ANNEE,QUARTIER_IMMA,PER_COD,PER_NOM,PER_PRENOM,NAVS_ACTIVE ]. Voir documentation pour plus de d\u00E9tails. +wao.error.serviceCartography.exportContactMotifsStatisticsKml= wao.error.serviceCartography.exportContactStatisticsKml= wao.error.serviceCartography.importBoatDistrictKml=Impossible d'importer les coordonn\u00E9es des quartiers des navires. V\u00E9rifiez la documentation pour le bon format du fichier Kml. wao.error.serviceChart.getContactPieChartData= @@ -201,6 +202,7 @@ wao.error.serviceSynthesis.getContactDataInputDateReactivity=Impossible de r\u00E9cup\u00E9rer l'indicateur de r\u00E9activit\u00E9 sur les dates de saisies dans Allegro wao.error.serviceSynthesis.getContactPieChartData= wao.error.serviceSynthesis.getContactPieChartDataByBoatDistrict= +wao.error.serviceSynthesis.getContactStateMotifsPieChartDataByBoatDistrict= wao.error.serviceSynthesis.getContactStateStatistics=Impossible de r\u00E9cup\u00E9rer les statistiques sur les \u00E9tats des contacts wao.error.serviceSynthesis.getDataReliability= wao.error.serviceSynthesis.getDataSampling=Impossible de r\u00E9cup\u00E9rer les donn\u00E9es pour le graphique dynamique des efforts de mar\u00E9es Modified: trunk/wao-business/src/main/xmi/wao.zargo =================================================================== (Binary files differ) Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Cartography.java =================================================================== --- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Cartography.java 2011-02-14 16:12:39 UTC (rev 1011) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Cartography.java 2011-02-15 14:21:33 UTC (rev 1012) @@ -37,7 +37,6 @@ import org.apache.tapestry5.annotations.Property; import org.apache.tapestry5.annotations.SessionState; import org.apache.tapestry5.corelib.components.Zone; -import org.apache.tapestry5.ioc.Messages; import org.apache.tapestry5.ioc.annotations.Inject; import org.apache.tapestry5.ioc.services.PropertyAccess; import org.apache.tapestry5.services.PageRenderLinkSource; @@ -161,7 +160,7 @@ if (url == null) { Link link = pageRender.createPageRenderLinkWithContext( KmlLoader.class, - KmlLoader.StrategyValues.CONTACTS + KmlLoader.StrategyValues.CONTACTS_STATES ); url = link.toURI(); } Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/KmlLoader.java =================================================================== --- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/KmlLoader.java 2011-02-14 16:12:39 UTC (rev 1011) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/KmlLoader.java 2011-02-15 14:21:33 UTC (rev 1012) @@ -26,7 +26,8 @@ import fr.ifremer.wao.ui.data.RequiresAuthentication; import fr.ifremer.wao.ui.data.TapestryUtil; import fr.ifremer.wao.ui.services.KmlLoaderStrategy; -import fr.ifremer.wao.ui.services.KmlLoaderStrategyContacts; +import fr.ifremer.wao.ui.services.KmlLoaderStrategyContactsStates; +import fr.ifremer.wao.ui.services.KmlLoaderStrategyContactsStatesMotifs; import org.apache.tapestry5.StreamResponse; import org.apache.tapestry5.annotations.SessionState; import org.apache.tapestry5.ioc.annotations.Inject; @@ -48,7 +49,8 @@ /** Strategy values for loading Kml */ public enum StrategyValues { - CONTACTS; + CONTACTS_STATES, + CONTACTS_STATES_MOTIFS; } @SessionState(create = false) @@ -91,10 +93,17 @@ * @throws IllegalArgumentException if the strategy is not supported */ KmlLoaderStrategy createStrategy(StrategyValues value) throws IllegalArgumentException { + KmlLoaderStrategy kmlLoaderStrategy; switch (value) { - case CONTACTS: - return new KmlLoaderStrategyContacts(serviceCartography, serviceUser); + case CONTACTS_STATES: + kmlLoaderStrategy = new KmlLoaderStrategyContactsStates(serviceCartography); + break; + case CONTACTS_STATES_MOTIFS: + kmlLoaderStrategy = new KmlLoaderStrategyContactsStatesMotifs(serviceCartography); + break; + default: + throw new IllegalArgumentException(value + " is not supported as KmlLoaderStrategy"); } - throw new IllegalArgumentException(value + " is not supported as KmlLoaderStrategy"); + return kmlLoaderStrategy; } } Deleted: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/KmlLoaderStrategyContacts.java =================================================================== --- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/KmlLoaderStrategyContacts.java 2011-02-14 16:12:39 UTC (rev 1011) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/KmlLoaderStrategyContacts.java 2011-02-15 14:21:33 UTC (rev 1012) @@ -1,62 +0,0 @@ -/* - * #%L - * Wao :: Web Interface - * %% - * Copyright (C) 2009 - 2010 Ifremer - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * #L% - */ -package fr.ifremer.wao.ui.services; - -import fr.ifremer.wao.bean.ContactFilter; -import fr.ifremer.wao.service.ServiceCartography; -import fr.ifremer.wao.service.ServiceUser; -import fr.ifremer.wao.ui.data.KmlStreamResponse; -import org.apache.tapestry5.StreamResponse; - -import java.io.IOException; - -/** - * Created: 8 juil. 2010 - * - * @author fdesbois <fdesbois at codelutin.com> - * @version $Id$ - */ -public class KmlLoaderStrategyContacts implements KmlLoaderStrategy<ContactFilter> { - - protected ServiceCartography serviceCartography; - - protected ServiceUser serviceUser; - - public KmlLoaderStrategyContacts(ServiceCartography serviceCartography, - ServiceUser serviceUser) { - this.serviceCartography = serviceCartography; - this.serviceUser = serviceUser; - } - - @Override - public StreamResponse getStreamResponse(ContactFilter filter) throws IOException { - -// Company company = null; -// if (context != null && context.length > 0) { -// String companyId = (String)context[0]; -// company = serviceUser.getCompany(companyId); -// } - - return new KmlStreamResponse( - serviceCartography.exportContactStatisticsKml(filter) - ); - } -} Copied: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/KmlLoaderStrategyContactsStates.java (from rev 1010, trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/KmlLoaderStrategyContacts.java) =================================================================== --- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/KmlLoaderStrategyContactsStates.java (rev 0) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/KmlLoaderStrategyContactsStates.java 2011-02-15 14:21:33 UTC (rev 1012) @@ -0,0 +1,51 @@ +/* + * #%L + * Wao :: Web Interface + * %% + * Copyright (C) 2009 - 2010 Ifremer + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +package fr.ifremer.wao.ui.services; + +import fr.ifremer.wao.bean.ContactFilter; +import fr.ifremer.wao.service.ServiceCartography; +import fr.ifremer.wao.service.ServiceUser; +import fr.ifremer.wao.ui.data.KmlStreamResponse; +import org.apache.tapestry5.StreamResponse; + +import java.io.IOException; + +/** + * Created: 8 juil. 2010 + * + * @author fdesbois <fdesbois at codelutin.com> + * @version $Id$ + */ +public class KmlLoaderStrategyContactsStates implements KmlLoaderStrategy<ContactFilter> { + + protected ServiceCartography serviceCartography; + + public KmlLoaderStrategyContactsStates(ServiceCartography serviceCartography) { + this.serviceCartography = serviceCartography; + } + + @Override + public StreamResponse getStreamResponse(ContactFilter filter) throws IOException { + return new KmlStreamResponse( + serviceCartography.exportContactStatisticsKml(filter) + ); + } +} Property changes on: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/KmlLoaderStrategyContactsStates.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/KmlLoaderStrategyContactsStatesMotifs.java =================================================================== --- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/KmlLoaderStrategyContactsStatesMotifs.java (rev 0) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/KmlLoaderStrategyContactsStatesMotifs.java 2011-02-15 14:21:33 UTC (rev 1012) @@ -0,0 +1,24 @@ +package fr.ifremer.wao.ui.services; + +import fr.ifremer.wao.bean.ContactFilter; +import fr.ifremer.wao.service.ServiceCartography; +import fr.ifremer.wao.ui.data.KmlStreamResponse; +import org.apache.tapestry5.StreamResponse; + +import java.io.IOException; + +public class KmlLoaderStrategyContactsStatesMotifs implements KmlLoaderStrategy<ContactFilter> { + + protected ServiceCartography serviceCartography; + + public KmlLoaderStrategyContactsStatesMotifs(ServiceCartography serviceCartography) { + this.serviceCartography = serviceCartography; + } + + @Override + public StreamResponse getStreamResponse(ContactFilter filter) throws IOException { + return new KmlStreamResponse( + serviceCartography.exportContactMotifsStatisticsKml(filter) + ); + } +}