Author: bleny Date: 2011-02-18 09:33:45 +0000 (Fri, 18 Feb 2011) New Revision: 1029 Log: sampling plan cut for ObsVente Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/bean/FacadeRowImpl.java trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SamplingPlan.java Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/bean/FacadeRowImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/bean/FacadeRowImpl.java 2011-02-17 17:27:22 UTC (rev 1028) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/bean/FacadeRowImpl.java 2011-02-18 09:33:45 UTC (rev 1029) @@ -58,6 +58,8 @@ } else if (row.getObsProgram() == ObsProgram.OBSVENTE) { facade = row.getTerrestrialLocation().getCoastFAOName(); sectors = row.getTerrestrialLocation().getCountryName(); + } else { + throw new IllegalArgumentException("obsProgram " + row.getObsProgram()); } // Prepare sectors Map Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java 2011-02-17 17:27:22 UTC (rev 1028) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java 2011-02-18 09:33:45 UTC (rev 1029) @@ -497,7 +497,7 @@ addLeftJoin(sampleRowProperty.fishingZone(), fishingZoneProperty.$alias(), false). addLeftJoin(sampleRowProperty.terrestrialLocation(), terrestrialLocationProperty.$alias(), false). addLeftJoin(sampleRowProperty.dCF5Code(), dcf5CodeProperty.$alias(), false). - // Order By facade, sector, districtCode, sampleRowCode + // Order By terrestrial location addOrder(terrestrialLocationProperty.coastFAOName(), terrestrialLocationProperty.countryName(), sampleRowProperty.code()); @@ -514,6 +514,8 @@ List<SampleRow> results = dao.findAllByQuery(query); for (SampleRow row : results) { + row.sizeSampleRowLog(); // force load + // use FacadeRow to complete ordering using maps result.addRow(row); } Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SamplingPlan.java =================================================================== --- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SamplingPlan.java 2011-02-17 17:27:22 UTC (rev 1028) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SamplingPlan.java 2011-02-18 09:33:45 UTC (rev 1029) @@ -42,10 +42,12 @@ import fr.ifremer.wao.ui.data.ExportStreamResponse; import fr.ifremer.wao.ui.data.RequiresAuthentication; import fr.ifremer.wao.ui.services.WaoManager; +import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.BooleanUtils; import org.apache.tapestry5.StreamResponse; import org.apache.tapestry5.annotations.Import; import org.apache.tapestry5.annotations.InjectComponent; +import org.apache.tapestry5.annotations.Log; import org.apache.tapestry5.annotations.Persist; import org.apache.tapestry5.annotations.Property; import org.apache.tapestry5.annotations.SessionState; @@ -321,20 +323,49 @@ return months; } + @Log public boolean isFacadeChanged() { - if (!row.getFacade().equals(currentFacadeName)) { - currentFacadeName = row.getFacade(); - return true; + boolean facadeChanged = false; + if (row.getObsProgram().equals(ObsProgram.OBSMER)) { + if (!row.getFacade().equals(currentFacadeName)) { + currentFacadeName = row.getFacade(); + facadeChanged = true; + } + } else if (row.getObsProgram().equals(ObsProgram.OBSVENTE)) { + if (!row.getTerrestrialLocation().getCoastFAOName().equals(currentFacadeName)) { + currentFacadeName = row.getTerrestrialLocation().getCoastFAOName(); + facadeChanged = true; + } + } else { + throw new IllegalArgumentException("obsProgram " + row.getObsProgram()); } - return false; + + if (facadeChanged) { + // reset currentSectorName to force re-print even if + // it's the same + currentSectorName = null; + } + + return facadeChanged; } + @Log public boolean isSectorChanged() { - if (!row.getSectors().equals(currentSectorName)) { - currentSectorName = row.getSectors(); - return true; + boolean sectorChanged = false; + if (row.getObsProgram().equals(ObsProgram.OBSMER)) { + if (!row.getSectors().equals(currentSectorName)) { + currentSectorName = row.getSectors(); + sectorChanged = true; + } + } else if (row.getObsProgram().equals(ObsProgram.OBSVENTE)) { + if (!row.getTerrestrialLocation().getCountryName().equals(currentSectorName)) { + currentSectorName = row.getTerrestrialLocation().getCountryName(); + sectorChanged = true; + } + } else { + throw new IllegalArgumentException("obsProgram " + row.getObsProgram()); } - return false; + return sectorChanged; } public String getCompanyName() { @@ -662,10 +693,8 @@ } public boolean isRowModified() { - // XXX bleny 20101105 this is a dirty hack. Actually, we should test - // CollectionUtils.isEmpty(row.getSampleRowLog()) - // but it's not initialized by hibernate - return row.getTopiaVersion() > 1; + boolean rowHasHistoric = CollectionUtils.isNotEmpty(row.getSampleRowLog()); + return rowHasHistoric; } }