Author: fdesbois Date: 2010-02-09 23:12:48 +0000 (Tue, 09 Feb 2010) New Revision: 342 Added: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/data/SynthesisId.java trunk/suiviobsmer-ui/src/main/webapp/img/sampling.png trunk/suiviobsmer-ui/src/main/webapp/img/synthesis-graph-boarding.png trunk/suiviobsmer-ui/src/main/webapp/img/synthesis-graph-sampling.png Removed: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/data/SynthesisID.java Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/data/BusinessUtils.java trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Synthesis.java trunk/suiviobsmer-ui/src/main/webapp/Synthesis.tml trunk/suiviobsmer-ui/src/main/webapp/css/synthesis.css Log: - Rename SynthesisId class - Improve synthesis page with images for menu Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/data/BusinessUtils.java =================================================================== --- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/data/BusinessUtils.java 2010-02-09 21:56:04 UTC (rev 341) +++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/data/BusinessUtils.java 2010-02-09 23:12:48 UTC (rev 342) @@ -93,12 +93,17 @@ result += " :\nSociété " + filter.getCompany().getName(); filtered = true; } + if (StringUtils.isNotEmpty(filter.getProgramName())) { + result += !filtered ? " : " : ", "; + result += "\nProgramme " + filter.getProgramName(); + filtered = true; + } if (filter.getSampleRow() != null) { Profession profession = filter.getSampleRow().getProfession(); result += !filtered ? " : " : ", "; result += "\nMétier " + profession.getCode(); - result += !StringUtils.isEmpty(profession.getLibelle()) ? " - " + profession.getLibelle() : ""; - result += !StringUtils.isEmpty(profession.getSpecies()) ? "\nEspèces (" + profession.getSpecies() + ")" : ""; + result += StringUtils.isNotEmpty(profession.getLibelle()) ? " - " + profession.getLibelle() : ""; + result += StringUtils.isNotEmpty(profession.getSpecies()) ? "\nEspèces (" + profession.getSpecies() + ")" : ""; result += "\nZones de pêche ("; for (FishingZone zone : filter.getSampleRow().getFishingZone()) { result += zone.getDistrictCode() + " "; Deleted: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/data/SynthesisID.java =================================================================== --- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/data/SynthesisID.java 2010-02-09 21:56:04 UTC (rev 341) +++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/data/SynthesisID.java 2010-02-09 23:12:48 UTC (rev 342) @@ -1,45 +0,0 @@ -package fr.ifremer.suiviobsmer.ui.data; - -/** - * SynthesisID$ - * - * Created: 9 févr. 2010 - * - * @author fdesbois - * @version $Revision$ - * - * Mise a jour: $Date$ - * par : $Author$ - */ -public enum SynthesisID { - - GRAPH_SAMPLING("graph1"), - GRAPH_BOARDING("graph2"), - IND_CONTACT_STATE("ind1"), - IND_NON_COMPLIANCE_BOARDING("ind2"), - IND_ALLEGRO_REACTIVITY("ind3"); - private String blockId; - - SynthesisID(String blockId) { - this.blockId = blockId; - } - - public String getBlockId() { - return blockId; - } - - public static SynthesisID getSynthesisID(String blockId) { - if (blockId.equals(GRAPH_SAMPLING.getBlockId())) { - return GRAPH_SAMPLING; - } else if (blockId.equals(GRAPH_BOARDING.getBlockId())) { - return GRAPH_BOARDING; - } else if (blockId.equals(IND_CONTACT_STATE.getBlockId())) { - return IND_CONTACT_STATE; - } else if (blockId.equals(IND_NON_COMPLIANCE_BOARDING.getBlockId())) { - return IND_NON_COMPLIANCE_BOARDING; - } else if (blockId.equals(IND_ALLEGRO_REACTIVITY.getBlockId())) { - return IND_ALLEGRO_REACTIVITY; - } - return null; - } -} Copied: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/data/SynthesisId.java (from rev 341, trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/data/SynthesisID.java) =================================================================== --- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/data/SynthesisId.java (rev 0) +++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/data/SynthesisId.java 2010-02-09 23:12:48 UTC (rev 342) @@ -0,0 +1,45 @@ +package fr.ifremer.suiviobsmer.ui.data; + +/** + * SynthesisID$ + * + * Created: 9 févr. 2010 + * + * @author fdesbois + * @version $Revision$ + * + * Mise a jour: $Date$ + * par : $Author$ + */ +public enum SynthesisId { + + GRAPH_SAMPLING("graph1"), + GRAPH_BOARDING("graph2"), + IND_CONTACT_STATE("ind1"), + IND_NON_COMPLIANCE_BOARDING("ind2"), + IND_ALLEGRO_REACTIVITY("ind3"); + private String blockId; + + SynthesisId(String blockId) { + this.blockId = blockId; + } + + public String getBlockId() { + return blockId; + } + + public static SynthesisId getSynthesisID(String blockId) { + if (blockId.equals(GRAPH_SAMPLING.getBlockId())) { + return GRAPH_SAMPLING; + } else if (blockId.equals(GRAPH_BOARDING.getBlockId())) { + return GRAPH_BOARDING; + } else if (blockId.equals(IND_CONTACT_STATE.getBlockId())) { + return IND_CONTACT_STATE; + } else if (blockId.equals(IND_NON_COMPLIANCE_BOARDING.getBlockId())) { + return IND_NON_COMPLIANCE_BOARDING; + } else if (blockId.equals(IND_ALLEGRO_REACTIVITY.getBlockId())) { + return IND_ALLEGRO_REACTIVITY; + } + return null; + } +} Property changes on: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/data/SynthesisId.java ___________________________________________________________________ Added: svn:keywords + "Author Date Id Revision HeadURL" Added: svn:mergeinfo + Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Synthesis.java =================================================================== --- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Synthesis.java 2010-02-09 21:56:04 UTC (rev 341) +++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Synthesis.java 2010-02-09 23:12:48 UTC (rev 342) @@ -25,15 +25,15 @@ import fr.ifremer.suiviobsmer.bean.BoardingResult; import fr.ifremer.suiviobsmer.bean.BoatFilter; import fr.ifremer.suiviobsmer.bean.BoatFilterImpl; +import fr.ifremer.suiviobsmer.entity.Company; import fr.ifremer.suiviobsmer.entity.WaoUser; import fr.ifremer.suiviobsmer.services.ServiceSynthesis; import fr.ifremer.suiviobsmer.ui.base.AbstractFilteredPage; import fr.ifremer.suiviobsmer.ui.base.SuiviObsmerPage; -import fr.ifremer.suiviobsmer.ui.components.Chart; import fr.ifremer.suiviobsmer.ui.data.BusinessUtils; import fr.ifremer.suiviobsmer.ui.data.ChartUtils; import fr.ifremer.suiviobsmer.ui.data.ChartUtils.ChartType; -import fr.ifremer.suiviobsmer.ui.data.SynthesisID; +import fr.ifremer.suiviobsmer.ui.data.SynthesisId; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; @@ -86,7 +86,7 @@ private WaoUser user; @Persist - private SynthesisID activeSynthesis; + private SynthesisId activeSynthesis; @Inject private ComponentResources resources; @@ -96,19 +96,20 @@ void setupRender() throws SuiviObsmerException { initSelectFilters(true, false, true); - //getFilter().setUnfinishedRowsOnly(false); + initBoardingBlock(); } - public Block getActiveBlock() { + public Block getActiveBlock() throws SuiviObsmerException { if (activeSynthesis == null) { // Initialize default synthesis by Data Sampling - activeSynthesis = SynthesisID.GRAPH_SAMPLING; + activeSynthesis = SynthesisId.GRAPH_SAMPLING; } + setupRender(); return resources.getBlock(activeSynthesis.getBlockId()); } public String getActionSynthesisId() { - return SynthesisID.class.getName(); + return SynthesisId.class.getName(); } public String getActionChartType() { @@ -118,8 +119,8 @@ @Log Object onAction(String actionType, String actionValue) { // Delegator action (menu) - if (actionType.equals(SynthesisID.class.getName())) { - activeSynthesis = SynthesisID.valueOf(actionValue); + if (actionType.equals(SynthesisId.class.getName())) { + activeSynthesis = SynthesisId.valueOf(actionValue); return delegator.getBody(); // Change chart type for dataSampling } else if (actionType.equals(ChartType.class.getName())) { @@ -209,6 +210,24 @@ private BoardingResult boardingResult; + @Persist + private Company companyForBoarding; + + @Property + private String companyIdForBoarding; + + private void initBoardingBlock() { + // Set the companyIdForBoarding is only necessary for an admin which + // have access to a select with all active companies (from Filters : + // getCompanySelectModel()) + if (companyForBoarding != null && user.getAdmin()) { + companyIdForBoarding = companyForBoarding.getTopiaId(); + if (log.isDebugEnabled()) { + log.debug("companyId init : " + companyIdForBoarding); + } + } + } + public JFreeChart getBoardingBoatsChart() throws SuiviObsmerException { Map<String, Map<?, Integer>> data = new HashMap<String, Map<?, Integer>>(); @@ -216,6 +235,10 @@ String title = "Sollicitations des navires depuis le " + getDateFormat().format(getFromDate()); + + if (companyForBoarding != null) { + title += "\nSociété " + companyForBoarding.getName(); + } return ChartUtils.createCategoryChart(title, "Nb navires", "Nb embarquements", ChartType.BAR, data); @@ -227,11 +250,23 @@ log.info("BUSINESS REQUEST [getBoardingBoats]"); } boardingResult = serviceSynthesis.getBoardingBoats( - getFilter().getCompany(), getFromDate()); + getCompanyForBoarding(), getFromDate()); } return boardingResult; } + public Company getCompanyForBoarding() { + // Initialize only for an observer user. For admin, the company can + // be null to search boardings for all companies. + if (companyForBoarding == null && !user.getAdmin()) { + companyForBoarding = user.getCompany(); + } + if (log.isDebugEnabled()) { + log.debug("company : " + companyForBoarding); + } + return companyForBoarding; + } + public Date getFromDate() { return DateUtils.createDateAfterToday(0, -12, 0); } @@ -239,4 +274,9 @@ public DateFormat getDateFormat() { return new SimpleDateFormat("dd/MM/yyyy"); } + + @Log + void onSuccessFromFilterCompanyForBoarding() throws SuiviObsmerException { + companyForBoarding = getCompanySelectModel().findObject(companyIdForBoarding); + } } Modified: trunk/suiviobsmer-ui/src/main/webapp/Synthesis.tml =================================================================== --- trunk/suiviobsmer-ui/src/main/webapp/Synthesis.tml 2010-02-09 21:56:04 UTC (rev 341) +++ trunk/suiviobsmer-ui/src/main/webapp/Synthesis.tml 2010-02-09 23:12:48 UTC (rev 342) @@ -47,12 +47,14 @@ <ul> <li> <a t:type="actionlink" t:context="[actionSynthesisId,'GRAPH_SAMPLING']" t:zone="so-synthesis-main"> - Graph 1 + <img src="${asset:context:}/img/synthesis-graph-sampling.png" alt="Diagramme en bâtons" + title="Graphique des données des marées (réalisé / planifié)" /> </a> </li> <li> <a t:type="actionlink" t:context="[actionSynthesisId,'GRAPH_BOARDING']" t:zone="so-synthesis-main"> - Graph 2 + <img src="${asset:context:}/img/synthesis-graph-boarding.png" alt="Diagramme en bâtons" + title="Graphique des sollicitations des navires" /> </a> </li> </ul> @@ -64,6 +66,7 @@ <t:block t:id="graph1"> <div class="acenter" id="so-datasampling"> + <h2>Données des marées (réalisé / planifié)</h2> <fieldset> <legend>Filtres</legend> <div t:type="zone" t:id="filtersZone" class="so-filters-form" id="so-datasampling-filters"> @@ -129,13 +132,25 @@ <!--</t:zone>--> </div> </t:block> - <t:block t:id="graph2"> + <t:block t:id="graph2"> <div class="acenter"> - <t:chart t:width="600" t:height="400" t:chart="boardingBoatsChart" /> + <h2>Sollicitations des navires</h2> + <br /> + <p>Ces résultats ne concernent que les lignes du plan d'échantillonnage ayant une durée moyenne de marées inférieure ou égale à 2</p> + <br /> + <t:if t:test="user.admin"> + <form t:type="form" t:id="filterCompanyForBoarding"> + <t:label t:for="companyForBoarding" />: + <input t:type="select" t:id="companyForBoarding" t:model="companySelectModel" value="companyIdForBoarding"/> + <input t:type="submit" class="ico search-32px" t:id="searchForBoarding" value="Search" + title="Création du graphique pour cette société"/> + </form> + </t:if> + <t:chart t:width="600" t:height="400" t:chart="boardingBoatsChart" /> <t:if t:test="boardingResult.maxBoardingBoat"> <p> Navire le plus sollicité avec ${boardingResult.maxBoardingValue} embarquements : - ${boardingResult.maxBoardingBoat.name} (${boardingResult.maxBoardingBoat.immatriculation}) + <strong>${boardingResult.maxBoardingBoat.name} (${boardingResult.maxBoardingBoat.immatriculation})</strong> </p> </t:if> </div> Modified: trunk/suiviobsmer-ui/src/main/webapp/css/synthesis.css =================================================================== --- trunk/suiviobsmer-ui/src/main/webapp/css/synthesis.css 2010-02-09 21:56:04 UTC (rev 341) +++ trunk/suiviobsmer-ui/src/main/webapp/css/synthesis.css 2010-02-09 23:12:48 UTC (rev 342) @@ -60,9 +60,24 @@ }*/ div#so-synthesis-main { - width: 90%; + width: 88%; } +div#so-synthesis-menu { + border-right: 2px solid black; + padding-left: 15px; + height: 400px; + width: 10%; +} + +div#so-synthesis-menu ul { + list-style-type: none; +} + +div#so-synthesis-menu ul li { + padding-bottom: 20px; +} + div#so-datasampling fieldset { width: 70%; margin-left: auto; @@ -82,6 +97,7 @@ margin-bottom: 5px; } +div#so-synthesis-menu ul img, div#so-datasampling p.so-chart-types a img { border: 1px solid #133852; } Added: trunk/suiviobsmer-ui/src/main/webapp/img/sampling.png =================================================================== (Binary files differ) Property changes on: trunk/suiviobsmer-ui/src/main/webapp/img/sampling.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/suiviobsmer-ui/src/main/webapp/img/synthesis-graph-boarding.png =================================================================== (Binary files differ) Property changes on: trunk/suiviobsmer-ui/src/main/webapp/img/synthesis-graph-boarding.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/suiviobsmer-ui/src/main/webapp/img/synthesis-graph-sampling.png =================================================================== (Binary files differ) Property changes on: trunk/suiviobsmer-ui/src/main/webapp/img/synthesis-graph-sampling.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream