[Suiviobsmer-commits] r903 - in trunk: wao-business/src/main/java/fr/ifremer/wao/service wao-business/src/main/xmi wao-ui/src/main/java/fr/ifremer/wao/ui/pages
Author: bleny Date: 2011-01-10 08:39:13 +0000 (Mon, 10 Jan 2011) New Revision: 903 Log: refactor contact creation Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceContactImpl.java trunk/wao-business/src/main/xmi/wao.zargo trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Boats.java trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Contacts.java Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceContactImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceContactImpl.java 2011-01-10 07:18:34 UTC (rev 902) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceContactImpl.java 2011-01-10 08:39:13 UTC (rev 903) @@ -40,6 +40,7 @@ import fr.ifremer.wao.bean.ContactStatus; import fr.ifremer.wao.bean.ContactStatus.NullSampleMonthException; import fr.ifremer.wao.bean.DataReliability; +import fr.ifremer.wao.bean.ObsProgram; import fr.ifremer.wao.bean.SamplingStrategy; import fr.ifremer.wao.bean.UserRole; import fr.ifremer.wao.bean.ValidationResult; @@ -201,14 +202,25 @@ } @Override - public Contact executeGetNewContact(WaoUser user, SampleRow row, Boat boat) { - Contact result = new ContactImpl(); - result.setMainObserver(user); - result.setSampleRow(row); - result.setBoat(boat); - result.setContactState(ContactState.CONTACT_START); - result.setDataReliability(DataReliability.UNKNOWN); - return result; + public Contact executeGetNewContact(ObsProgram obsProgram, WaoUser user, SampleRow row, Boat boat) throws WaoBusinessException { + + if (obsProgram.equals(ObsProgram.OBSMER)) { + if (boat == null) { + throw new NullPointerException("boat can not be null for program " + obsProgram); + } + if ( ! boat.canCreateContact(user.getCompany())) { + throw new WaoBusinessException("Un contact en cours existe déjà pour ce navire"); + } + } + + Contact newContact = new ContactImpl(); + newContact.setDataReliability(DataReliability.UNKNOWN); + newContact.setBoat(boat); + newContact.setMainObserver(user); + newContact.setSampleRow(row); + newContact.setContactState(ContactState.CONTACT_START); + saveContact(newContact, Boolean.FALSE); + return newContact; } @Override Modified: trunk/wao-business/src/main/xmi/wao.zargo =================================================================== (Binary files differ) Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Boats.java =================================================================== --- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Boats.java 2011-01-10 07:18:34 UTC (rev 902) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Boats.java 2011-01-10 08:39:13 UTC (rev 903) @@ -39,6 +39,7 @@ import fr.ifremer.wao.entity.Profession; import fr.ifremer.wao.entity.SampleRow; import fr.ifremer.wao.service.ServiceBoat; +import fr.ifremer.wao.service.ServiceContact; import fr.ifremer.wao.service.ServiceReferential; import fr.ifremer.wao.service.ServiceSampling; import fr.ifremer.wao.service.ServiceUser; @@ -109,6 +110,9 @@ private ServiceBoat serviceBoat; @Inject + private ServiceContact serviceContact; + + @Inject private PropertyAccess propertyAccess; @Property @@ -846,7 +850,12 @@ sampleRow = getSampleRow(); // Get boat from list boat = getBoats().get(boatImmatriculation); - contacts.createNewContact(boat, sampleRow); + //contacts.createNewContact(boat, sampleRow); + Contact newContact = serviceContact.getNewContact(user.getProfile().getObsProgram(), + user.getUser(), + sampleRow, + boat); + contacts.setContactSelectedId(newContact.getTopiaId()); return contacts; } @@ -854,7 +863,12 @@ // Get sampleRow from elligibleBoat list ElligibleBoat elligible = getCompanyBoatInfos().getElligibleBoat(sampleRowCode); sampleRow = elligible.getSampleRow(); - contacts.createNewContact(getBoatSelected(), sampleRow); + Contact newContact = serviceContact.getNewContact(user.getProfile().getObsProgram(), + user.getUser(), + sampleRow, + getBoatSelected()); + // contacts.createNewContact(getBoatSelected(), sampleRow); + contacts.setContactSelectedId(newContact.getTopiaId()); return contacts; } Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Contacts.java =================================================================== --- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Contacts.java 2011-01-10 07:18:34 UTC (rev 902) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Contacts.java 2011-01-10 08:39:13 UTC (rev 903) @@ -333,6 +333,10 @@ @Persist private String contactSelectedId; + public void setContactSelectedId(String contactSelectedId) { + this.contactSelectedId = contactSelectedId; + } + @Property @Persist private String contactUserId; @@ -553,15 +557,4 @@ serviceContact.saveContact(modifiedContact, true); } - public void createNewContact(Boat boat, SampleRow sampleRow) throws WaoException { - contact = serviceContact.getNewContact(user.getUser(), sampleRow, boat); - // Check boat not null and validation for create the new contact - if (boat != null && boat.canCreateContact(user.getCompany())) { - serviceContact.saveContact(contact, Boolean.FALSE); - String contactSelectedId = contact.getTopiaId(); - } else { - layout.addError("Un contact en cours existe déjà pour ce navire"); - } - } - }
participants (1)
-
bleny@users.labs.libre-entreprise.org