Author: bleny Date: 2011-04-29 13:03:57 +0000 (Fri, 29 Apr 2011) New Revision: 1243 Log: add 'add sample row' action in ObsDebSamplingPlan page Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/entity/SampleRowImpl.java trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.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-business/src/test/java/fr/ifremer/wao/service/ServiceSamplingImplTest.java trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SampleRowForm.java trunk/wao-ui/src/main/webapp/ObsDebSamplingPlan.tml Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/entity/SampleRowImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/entity/SampleRowImpl.java 2011-04-28 13:31:00 UTC (rev 1242) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/entity/SampleRowImpl.java 2011-04-29 13:03:57 UTC (rev 1243) @@ -463,4 +463,12 @@ public void setSamplingStrategy(SamplingStrategy samplingStrategy) { setSamplingStrategyOrdinal(samplingStrategy.ordinal()); } + + @Override + public void setCompany(Company company) { + super.setCompany(company); + // clear observers because if the sample row is moved to another company, + // we can't imagine that the observers will remains the same + clearObservers(); + } } 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-04-28 13:31:00 UTC (rev 1242) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java 2011-04-29 13:03:57 UTC (rev 1243) @@ -788,14 +788,26 @@ } @Override - public SampleRow executeGetNewSampleRow() { - SampleRow row = new SampleRowImpl(); - row.setProfession(new ProfessionImpl()); - row.setFishingZone(new ArrayList<FishingZone>()); - //row.setProgram(new ProgramImpl()); - row.setElligibleBoat(new ArrayList<ElligibleBoat>()); - row.setSampleMonth(new ArrayList<SampleMonth>()); - return row; + public SampleRow executeNewSampleRow(ConnectedUser connectedUser) { + SampleRow newSampleRow = new SampleRowImpl(); + newSampleRow.setObsProgram(connectedUser.getProfile().getObsProgram()); + newSampleRow.setElligibleBoat(new ArrayList<ElligibleBoat>()); + + if (connectedUser.isCoordinator()) { + newSampleRow.setCompany(connectedUser.getCompany()); + } + + if (connectedUser.isObsMer()) { + newSampleRow.setObservers(new ArrayList<WaoUser>()); + } else { + newSampleRow.setProfession(new ProfessionImpl()); + newSampleRow.setFishingZone(new ArrayList<FishingZone>()); + newSampleRow.setSampleMonth(new ArrayList<SampleMonth>()); + if (newSampleRow.getObsProgram() == ObsProgram.OBSMER) { + newSampleRow.setSamplingStrategy(SamplingStrategy.SIMULTANEOUS_ALL_SPECIES); + } + } + return newSampleRow; } @Override 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-04-28 13:31:00 UTC (rev 1242) +++ trunk/wao-business/src/main/resources/i18n/wao-business_en_GB.properties 2011-04-29 13:03:57 UTC (rev 1243) @@ -219,6 +219,7 @@ wao.error.serviceSampling.getSampleRowsForEligibility= wao.error.serviceSampling.getSampleRowsOrderedByFishingZone= wao.error.serviceSampling.importSamplingPlanCsv= +wao.error.serviceSampling.newSampleRow= wao.error.serviceSampling.newSamplingFilter= wao.error.serviceSampling.validateSampleRow= wao.error.serviceSynthesis.getAllIndicatorLogs= 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-04-28 13:31:00 UTC (rev 1242) +++ trunk/wao-business/src/main/resources/i18n/wao-business_fr_FR.properties 2011-04-29 13:03:57 UTC (rev 1243) @@ -219,6 +219,7 @@ wao.error.serviceSampling.getSampleRowsForEligibility= wao.error.serviceSampling.getSampleRowsOrderedByFishingZone=Impossible de r\u00E9cup\u00E9rer la liste des lignes du plan d'\u00E9chantillonnage wao.error.serviceSampling.importSamplingPlanCsv=Erreur lors de l'import du plan +wao.error.serviceSampling.newSampleRow= wao.error.serviceSampling.newSamplingFilter= wao.error.serviceSampling.validateSampleRow= wao.error.serviceSynthesis.getAllIndicatorLogs= Modified: trunk/wao-business/src/main/xmi/wao.zargo =================================================================== (Binary files differ) Modified: trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceSamplingImplTest.java =================================================================== --- trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceSamplingImplTest.java 2011-04-28 13:31:00 UTC (rev 1242) +++ trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceSamplingImplTest.java 2011-04-29 13:03:57 UTC (rev 1243) @@ -60,9 +60,7 @@ import fr.ifremer.wao.entity.TargetSpeciesDCFImpl; import fr.ifremer.wao.entity.WaoUser; import fr.ifremer.wao.io.ImportResults; -import org.apache.commons.io.IOUtils; import org.junit.Assert; -import org.junit.Ignore; import org.junit.Test; import org.nuiton.topia.TopiaContext; import org.nuiton.topia.TopiaException; @@ -141,7 +139,7 @@ months.add(month); } - SampleRow row = serviceSampling.getNewSampleRow(); + SampleRow row = serviceSampling.newSampleRow(); row.setCode("2010_03"); row.setNbObservants(3); row.setAverageTideTime(2.5); Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SampleRowForm.java =================================================================== --- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SampleRowForm.java 2011-04-28 13:31:00 UTC (rev 1242) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SampleRowForm.java 2011-04-29 13:03:57 UTC (rev 1243) @@ -33,7 +33,6 @@ import fr.ifremer.wao.bean.SamplingStrategy; import fr.ifremer.wao.bean.UserRole; import fr.ifremer.wao.bean.ValidationResult; -import fr.ifremer.wao.bean.ValidationResultImpl; import fr.ifremer.wao.entity.Boat; import fr.ifremer.wao.entity.Company; import fr.ifremer.wao.entity.DCF5Code; @@ -57,7 +56,6 @@ import fr.ifremer.wao.ui.data.WaoPropertyChangeListener; import fr.ifremer.wao.ui.services.WaoManager; import org.apache.commons.collections.CollectionUtils; -import org.apache.commons.collections.iterators.ArrayListIterator; import org.apache.commons.lang.StringUtils; import org.apache.tapestry5.Block; import org.apache.tapestry5.ComponentResources; @@ -74,20 +72,17 @@ import org.apache.tapestry5.annotations.SessionState; import org.apache.tapestry5.beaneditor.BeanModel; import org.apache.tapestry5.corelib.components.Form; -import org.apache.tapestry5.internal.OptionGroupModelImpl; import org.apache.tapestry5.internal.OptionModelImpl; import org.apache.tapestry5.internal.SelectModelImpl; 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.BeanModelSource; -import org.chenillekit.tapestry.core.internal.GenericSelectionModel; import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.util.PeriodDates; import org.nuiton.util.StringUtil; import org.slf4j.Logger; -import javax.transaction.NotSupportedException; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; @@ -96,8 +91,6 @@ import java.util.LinkedList; import java.util.List; -import static org.nuiton.i18n.I18n.n_; - /** * SampleRowForm * @@ -559,10 +552,7 @@ /************** OBSDEB ***********/ public List<WaoUser> getObservers() { - List<WaoUser> observers = null; - if (getSampleRow().getCompany() != null) { - observers = serviceUser.getObservers(getSampleRow().getCompany(), true); - } + List<WaoUser> observers = serviceUser.getObservers(getSampleRow().getCompany(), true); return observers; } @@ -606,18 +596,14 @@ public SampleRow getSampleRow() throws WaoException { if (sampleRow == null) { - if (!StringUtils.isEmpty(sampleRowId)) { + if (StringUtils.isEmpty(sampleRowId)) { + sampleRow = serviceSampling.newSampleRow(user); + } else { sampleRow = serviceSampling.getSampleRow(sampleRowId); for (SampleMonth month : sampleRow.getSampleMonth()) { month.addPropertyChangeListener( SampleMonth.PROPERTY_EXPECTED_TIDES_VALUE, propertyChange); } - } else { - sampleRow = serviceSampling.getNewSampleRow(); - sampleRow.setObsProgram(user.getProfile().getObsProgram()); - if (sampleRow.getObsProgram() == ObsProgram.OBSMER) { - sampleRow.setSamplingStrategy(SamplingStrategy.SIMULTANEOUS_ALL_SPECIES); - } } propertyChange = new WaoPropertyChangeListener(); } Modified: trunk/wao-ui/src/main/webapp/ObsDebSamplingPlan.tml =================================================================== --- trunk/wao-ui/src/main/webapp/ObsDebSamplingPlan.tml 2011-04-28 13:31:00 UTC (rev 1242) +++ trunk/wao-ui/src/main/webapp/ObsDebSamplingPlan.tml 2011-04-29 13:03:57 UTC (rev 1243) @@ -34,6 +34,11 @@ </li> <t:unless test="connectedUser.observer"> <li> + <a t:type="pagelink" t:page="sampleRowForm" title="${message:wao.ui.samplingPlan.addSampleRow}"> + ${message:wao.ui.samplingPlan.addSampleRow} + </a> + </li> + <li> <t:actionlink t:id="showImport" t:zone="importZone"> ${message:wao.ui.misc.import} </t:actionlink>