r668 - in trunk: tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service tutti-persistence/src/main/xmi tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/cruise
Author: tchemit Date: 2013-03-23 20:21:10 +0100 (Sat, 23 Mar 2013) New Revision: 668 Url: http://forge.codelutin.com/projects/tutti/repository/revisions/668 Log: fixes #2186: [CAMPAGNE] Navire - remplacer la double liste par une simple liste Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/TuttiEntities.java trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java trunk/tutti-persistence/src/main/xmi/tutti-persistence.properties trunk/tutti-persistence/src/main/xmi/tutti-persistence.zargo trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceWriteTest.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIModel.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/NewFishingOperationAction.java trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIModel-error-validation.xml Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/TuttiEntities.java =================================================================== --- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/TuttiEntities.java 2013-03-23 18:46:00 UTC (rev 667) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/TuttiEntities.java 2013-03-23 19:21:10 UTC (rev 668) @@ -36,6 +36,7 @@ import fr.ifremer.tutti.persistence.entities.data.FishingOperationAware; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.CaracteristicType; +import fr.ifremer.tutti.persistence.entities.referential.Gear; import fr.ifremer.tutti.persistence.entities.referential.Species; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.logging.Log; @@ -78,6 +79,20 @@ }; + public static final Predicate<Gear> IS_FISHING_GEAR = new Predicate<Gear>() { + + public boolean apply(Gear input) { + return !input.isScientificGear(); + } + }; + + public static final Predicate<Gear> IS_SCIENTIFIC_GEAR = new Predicate<Gear>() { + + public boolean apply(Gear input) { + return input.isScientificGear(); + } + }; + /** Logger. */ private static final Log log = LogFactory.getLog(TuttiEntities.class); Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java =================================================================== --- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java 2013-03-23 18:46:00 UTC (rev 667) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java 2013-03-23 19:21:10 UTC (rev 668) @@ -87,8 +87,6 @@ private static final Log log = LogFactory.getLog(CruisePersistenceServiceImpl.class); - protected static String CRUISE_MISC_DATA_VESSELS_TAG = "#VESSELS="; - protected static String CRUISE_MISC_DATA_MANAGERS_TAG = "#MANAGERS="; protected static String CRUISE_MISC_DATA_SORT_MANAGERS_TAG = "#SORT_MANAGERS="; @@ -193,7 +191,7 @@ String vesselCode = (String) source[8]; Vessel vessel = referentialService.getVessel(vesselCode); - result.setVessel(Lists.newArrayList(vessel)); + result.setVessel(vessel); Integer managerId = (Integer) source[9]; if (managerId != null && managerId.equals(enumeration.PERSON_ID_UNKNOWN_RECORDER_PERSON)) { @@ -207,19 +205,19 @@ String miscData = (String) source[11]; if (miscData != null && miscData.length() > 0) { - // Retrieve secondary vessels : - int vesselTagIndex = miscData.indexOf(CRUISE_MISC_DATA_VESSELS_TAG); - if (vesselTagIndex != -1) { - String vesselCodesStr = miscData.substring(vesselTagIndex + CRUISE_MISC_DATA_VESSELS_TAG.length()).trim(); - miscData = miscData.substring(0, vesselTagIndex); - if (!vesselCodesStr.isEmpty()) { - String[] vesselCodes = vesselCodesStr.split(","); - for (String vesselCode1 : vesselCodes) { - vesselCode = vesselCode1; - result.addVessel(referentialService.getVessel(vesselCode)); - } - } - } +// // Retrieve secondary vessels : +// int vesselTagIndex = miscData.indexOf(CRUISE_MISC_DATA_VESSELS_TAG); +// if (vesselTagIndex != -1) { +// String vesselCodesStr = miscData.substring(vesselTagIndex + CRUISE_MISC_DATA_VESSELS_TAG.length()).trim(); +// miscData = miscData.substring(0, vesselTagIndex); +// if (!vesselCodesStr.isEmpty()) { +// String[] vesselCodes = vesselCodesStr.split(","); +// for (String vesselCode1 : vesselCodes) { +// vesselCode = vesselCode1; +// result.addVessel(referentialService.getVessel(vesselCode)); +// } +// } +// } // Retrieve cruise managers int managersIndex = miscData.indexOf(CRUISE_MISC_DATA_MANAGERS_TAG); @@ -378,20 +376,10 @@ } // Vessel - if (source.getVessel() == null || source.getVessel().size() == 0) { + if (source.getVessel() == null) { target.setProgram(null); - } else if (source.getVessel() != null && source.getVessel().size() > 0) { - List<Vessel> vessels = source.getVessel(); - target.setVessel(vesselDao.load(vessels.get(0).getId())); - - if (vessels.size() > 1) { - //throw new UnsupportedOperationException("Cruise could not yet support more than one vessel."); - miscDataBuffer.append(CRUISE_MISC_DATA_VESSELS_TAG); - for (int i = 1; i < vessels.size(); i++) { - if (i > 1) miscDataBuffer.append(','); - miscDataBuffer.append(vessels.get(i).getId()); - } - } + } else { + target.setVessel(vesselDao.load(source.getVessel().getId())); } // Year @@ -418,11 +406,7 @@ } // Comment - if (source.getComment() == null) { - target.setComments(null); - } else if (source.getComment() != null) { - target.setComments(source.getComment()); - } + target.setComments(source.getComment()); // Manager if (source.getHeadOfMission() == null || source.getHeadOfMission().size() == 0) { Modified: trunk/tutti-persistence/src/main/xmi/tutti-persistence.properties =================================================================== --- trunk/tutti-persistence/src/main/xmi/tutti-persistence.properties 2013-03-23 18:46:00 UTC (rev 667) +++ trunk/tutti-persistence/src/main/xmi/tutti-persistence.properties 2013-03-23 19:21:10 UTC (rev 668) @@ -31,7 +31,6 @@ fr.ifremer.tutti.persistence.entities.data.Cruise.attribute.gear.stereotype=ordered fr.ifremer.tutti.persistence.entities.data.Cruise.attribute.headOfMission.stereotype=ordered fr.ifremer.tutti.persistence.entities.data.Cruise.attribute.headOfSortRoom.stereotype=ordered -fr.ifremer.tutti.persistence.entities.data.Cruise.attribute.vessel.stereotype=ordered fr.ifremer.tutti.persistence.entities.data.FishingOperation.attribute.recorderPerson.stereotype=ordered fr.ifremer.tutti.persistence.entities.data.MacroWasteBatch.attribute.macroWasteCategory.stereotype=ordered Modified: trunk/tutti-persistence/src/main/xmi/tutti-persistence.zargo =================================================================== (Binary files differ) Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceWriteTest.java =================================================================== --- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceWriteTest.java 2013-03-23 18:46:00 UTC (rev 667) +++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceWriteTest.java 2013-03-23 19:21:10 UTC (rev 668) @@ -115,13 +115,10 @@ Person managerPerson = referentialService.getAllPerson().get(0); cruise.setHeadOfMission(Lists.newArrayList(managerPerson)); - List<Vessel> vessels = Lists.newArrayList(); - vessels.add(referentialService.getAllScientificVessel().get(0)); Vessel fishingVessel = new Vessel(); fishingVessel.setId(dbResource.getFixtures().fishingVesselCode()); - vessels.add(fishingVessel); - cruise.setVessel(vessels); + cruise.setVessel(fishingVessel); cruise.setMultirigNumber(2); @@ -178,10 +175,9 @@ assertEquals(1, reloadedCruise.getMultirigNumber(), 0); assertNull(reloadedCruise.getHeadOfMission()); assertNotNull(reloadedCruise.getVessel()); - assertEquals(createdCruise.getVessel().get(0), reloadedCruise.getVessel().get(0)); + assertEquals(createdCruise.getVessel(), reloadedCruise.getVessel()); assertEquals(cruise.getCountry().getId(), reloadedCruise.getCountry().getId()); assertNotNull(reloadedCruise.getVessel()); - assertEquals(vessels.size(), reloadedCruise.getVessel().size()); assertNotNull(reloadedCruise.getGear()); assertEquals(gears.size(), reloadedCruise.getGear().size()); } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css 2013-03-23 18:46:00 UTC (rev 667) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css 2013-03-23 19:21:10 UTC (rev 668) @@ -181,14 +181,19 @@ buttonGroup: "filterVesselType"; } -#vesselList { - property: vessel; - border: {BorderFactory.createTitledBorder(_("tutti.editCruise.field.vessel"))}; - _validatorLabel : {_("tutti.editCruise.field.vessel")}; +#vesselLabel { + text: "tutti.editCruise.field.vessel"; + labelFor: {vesselComboBox}; toolTipText: "tutti.editCruise.field.vessel.tip"; _help: {"tutti.editCruise.field.vessel.help"}; } +#vesselComboBox { + property: vessel; + selectedItem: {model.getVessel()}; + _validatorLabel : {_("tutti.editCruise.field.vessel")}; +} + #gearList { property: gear; border: {BorderFactory.createTitledBorder(_("tutti.editCruise.field.gear"))}; Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx 2013-03-23 18:46:00 UTC (rev 667) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx 2013-03-23 19:21:10 UTC (rev 668) @@ -84,7 +84,7 @@ <field name='country' component='countryComboBox'/> <field name='beginDate' component='beginDateField'/> <field name='endDate' component='endDateField'/> - <field name='vessel' component='vesselList'/> + <field name='vessel' component='vesselComboBox'/> <field name='gear' component='gearList'/> <field name='headOfMission' component='headOfMissionList'/> <field name='headOfSortRoom' component='headOfSortRoomList'/> @@ -191,12 +191,16 @@ </cell> </row> <row weighty='0.3'> - <cell columns='6'> - <JPanel layout='{new GridLayout(1, 0)}'> - <BeanDoubleList id='vesselList' genericType='Vessel'/> - <BeanDoubleList id='gearList' genericType='Gear'/> - </JPanel> + <cell> + <JLabel id='vesselLabel'/> </cell> + <cell weightx='0.3' columns="2"> + <BeanFilterableComboBox id='vesselComboBox' constructorParams='this' + genericType='Vessel'/> + </cell> + <cell columns="3"> + <BeanDoubleList id='gearList' genericType='Gear'/> + </cell> </row> <!-- cruise headOfMission / headOfSortRoom --> Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java 2013-03-23 18:46:00 UTC (rev 667) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java 2013-03-23 19:21:10 UTC (rev 668) @@ -26,6 +26,7 @@ import com.google.common.base.Predicate; import com.google.common.collect.Lists; +import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.data.Attachment; import fr.ifremer.tutti.persistence.entities.data.Cruise; import fr.ifremer.tutti.persistence.entities.data.Program; @@ -124,15 +125,15 @@ EditCruiseUIModel model = getModel(); - final List<Vessel> scientificVesselList = getDataContext().getScientificVessels(); - final List<Vessel> fishingVesselList = getDataContext().getFishingVessels(); - final List<Vessel> allVesselList = Lists.newArrayList(); + List<Vessel> scientificVesselList = getDataContext().getScientificVessels(); + List<Vessel> fishingVesselList = getDataContext().getFishingVessels(); + List<Vessel> allVesselList = Lists.newArrayList(); allVesselList.addAll(scientificVesselList); allVesselList.addAll(fishingVesselList); - final List<Gear> scientificGearList = getDataContext().getScientificGears(); - final List<Gear> fishingGearList = getDataContext().getFishingGears(); - final List<Gear> allGearList = Lists.newArrayList(); + List<Gear> scientificGearList = getDataContext().getScientificGears(); + List<Gear> fishingGearList = getDataContext().getFishingGears(); + List<Gear> allGearList = Lists.newArrayList(); allGearList.addAll(scientificGearList); allGearList.addAll(fishingGearList); @@ -143,47 +144,32 @@ VesselTypeEnum vesselType = (VesselTypeEnum) evt.getNewValue(); - Predicate<Vessel> vesselPredicate = null; Predicate<Gear> gearPredicate = null; - switch (vesselType) { - case FISHING: - vesselPredicate = new Predicate<Vessel>() { + List<Vessel> allVesselList = Lists.newArrayList(); - public boolean apply(Vessel input) { - return !input.isScientificVessel(); - } - }; - gearPredicate = new Predicate<Gear>() { - public boolean apply(Gear input) { - return !input.isScientificGear(); - } - }; + switch (vesselType) { + case FISHING: + gearPredicate = TuttiEntities.IS_FISHING_GEAR; + allVesselList.addAll(getDataContext().getFishingVessels()); break; case SCIENTIFIC: - vesselPredicate = new Predicate<Vessel>() { + gearPredicate = TuttiEntities.IS_SCIENTIFIC_GEAR; - public boolean apply(Vessel input) { - return input.isScientificVessel(); - } - }; - gearPredicate = new Predicate<Gear>() { - - public boolean apply(Gear input) { - return input.isScientificGear(); - } - }; + allVesselList.addAll(getDataContext().getScientificVessels()); break; - + default: { + allVesselList.addAll(getDataContext().getScientificVessels()); + allVesselList.addAll(getDataContext().getFishingVessels()); + } } - ui.getVesselList().getHandler().clearFilters(); + ui.getGearList().getHandler().clearFilters(); + ui.getVesselComboBox().setData(null); + ui.getVesselComboBox().setData(allVesselList); - if (vesselPredicate != null) { - ui.getVesselList().getHandler().addFilter(vesselPredicate); - } if (gearPredicate != null) { ui.getGearList().getHandler().addFilter(gearPredicate); } @@ -199,11 +185,10 @@ persistenceService.getAllCountry(), model.getCountry()); + initBeanFilterableComboBox(ui.getVesselComboBox(), + allVesselList, + model.getVessel()); - initBeanList(ui.getVesselList(), - allVesselList, - model.getVessel()); - initBeanList(ui.getGearList(), allGearList, model.getGear()); @@ -220,7 +205,7 @@ listenValidatorValid(validator, model); model.setVesselType(VesselTypeEnum.SCIENTIFIC); - + // if new fishingOperation can already cancel his creation model.setModify(model.isCreate()); Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIModel.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIModel.java 2013-03-23 18:46:00 UTC (rev 667) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIModel.java 2013-03-23 19:21:10 UTC (rev 668) @@ -97,7 +97,7 @@ protected String surveyPart; - protected List<Vessel> vessel; + protected Vessel vessel; protected List<Gear> gear; @@ -222,13 +222,14 @@ firePropertyChange(PROPERTY_END_DATE, oldValue, endDate); } - public List<Vessel> getVessel() { + public Vessel getVessel() { return vessel; } - public void setVessel(List<Vessel> vessel) { + public void setVessel(Vessel vessel) { + Object oldValue = getVessel(); this.vessel = vessel; - firePropertyChange(PROPERTY_VESSEL, null, vessel); + firePropertyChange(PROPERTY_VESSEL, oldValue, vessel); } public List<Gear> getGear() { Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/NewFishingOperationAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/NewFishingOperationAction.java 2013-03-23 18:46:00 UTC (rev 667) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/NewFishingOperationAction.java 2013-03-23 19:21:10 UTC (rev 668) @@ -27,7 +27,6 @@ import fr.ifremer.tutti.persistence.entities.data.Cruise; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; import fr.ifremer.tutti.persistence.entities.referential.Gear; -import fr.ifremer.tutti.persistence.entities.referential.Vessel; import java.util.List; @@ -65,12 +64,8 @@ FishingOperation newFishingOperation = new FishingOperation(); Cruise cruise = getDataContext().getCruise(); newFishingOperation.setCruise(cruise); + newFishingOperation.setVessel(cruise.getVessel()); - List<Vessel> vessels = cruise.getVessel(); - if (vessels.size() == 1) { - newFishingOperation.setVessel(vessels.get(0)); - } - List<Gear> gears = cruise.getGear(); if (gears.size() == 1) { newFishingOperation.setGear(gears.get(0)); Modified: trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIModel-error-validation.xml =================================================================== --- trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIModel-error-validation.xml 2013-03-23 18:46:00 UTC (rev 667) +++ trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIModel-error-validation.xml 2013-03-23 19:21:10 UTC (rev 668) @@ -55,7 +55,7 @@ <field-validator type="required" short-circuit="true"> <message>tutti.validator.error.cruise.beginDate.required</message> </field-validator> - + <field-validator type="fieldexpression" short-circuit="true"> <param name="expression"> <![CDATA[ endDate == null || beginDate.compareTo(endDate) < 0 ]]> @@ -68,7 +68,7 @@ <field-validator type="required" short-circuit="true"> <message>tutti.validator.error.cruise.endDate.required</message> </field-validator> - + <field-validator type="fieldexpression" short-circuit="true"> <param name="expression"> <![CDATA[ beginDate == null || beginDate.compareTo(endDate) < 0 ]]> @@ -85,10 +85,7 @@ </field> <field name="vessel"> - <field-validator type="fieldexpression" short-circuit="true"> - <param name="expression"> - <![CDATA[ vessel != null && !vessel.empty ]]> - </param> + <field-validator type="required" short-circuit="true"> <message>tutti.validator.error.cruise.vessel.required</message> </field-validator> </field>
participants (1)
-
tchemit@users.forge.codelutin.com