branch feature/7017 updated (e5c82ef -> bc1adbe)
This is an automated email from the git hooks/post-receive script. New change to branch feature/7017 in repository observe. See http://git.codelutin.com/observe.git from e5c82ef savegarde des caractéristiques des équipements pour la palangre. fix npe new bc1adbe mise en place des binders pour les référentiels et adaptation des ui (refs #7017) The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit bc1adbef5d25854366e285c2247b37091b2b20ec Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Apr 30 16:37:00 2015 +0200 mise en place des binders pour les référentiels et adaptation des ui (refs #7017) Summary of changes: .../main/java/fr/ird/observe/BinderService.java | 310 +++++++++++++++++++-- .../observe/services/AbstractObserveService.java | 4 + .../services/data/seine/ActivitySeineService.java | 2 - .../data/seine/ActivitySeineServiceImpl.java | 8 - .../services/referential/ReferentialService.java | 10 +- .../referential/ReferentialServiceImpl.java | 104 ++++++- .../list/impl/longline/TripLonglinesUIHandler.java | 5 +- .../list/impl/seine/TripSeinesUIHandler.java | 4 +- .../ui/content/ref/ContentReferenceUIHandler.java | 268 ++++++------------ .../ui/content/ref/ContentReferenceUIModel.java | 153 +--------- .../ref/ReferentialContentUIInitializer.java | 43 ++- .../ui/content/ref/impl/CountryUIModel.java | 4 +- .../ui/content/ref/impl/FpaZoneUIModel.java | 3 +- .../content/ref/impl/GearCaracteristicUIModel.java | 8 +- .../observe/ui/content/ref/impl/GearUIModel.java | 4 +- .../ui/content/ref/impl/HarbourUIModel.java | 18 +- .../ref/impl/LengthWeightParameterUIModel.java | 22 +- .../ui/content/ref/impl/OrganismUIModel.java | 4 +- .../observe/ui/content/ref/impl/PersonUIModel.java | 25 +- .../ui/content/ref/impl/ProgramUIModel.java | 38 +-- .../ui/content/ref/impl/SpeciesListUIModel.java | 4 +- .../ui/content/ref/impl/SpeciesUIModel.java | 35 +-- .../ref/impl/VesselSizeCategoryUIModel.java | 9 +- .../observe/ui/content/ref/impl/VesselUIModel.java | 34 +-- .../impl/longline/BaitSettingStatusUIModel.java | 4 +- .../ref/impl/longline/MaturityStatusUIModel.java | 4 +- .../ref/impl/longline/SensorBrandUIModel.java | 3 +- .../ref/impl/seine/ObservedSystemUIModel.java | 3 +- .../ref/impl/seine/WeightCategoryUIModel.java | 14 +- .../ui/content/ref/impl/seine/WindUIModel.java | 1 - 30 files changed, 612 insertions(+), 536 deletions(-) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/7017 in repository observe. See http://git.codelutin.com/observe.git commit bc1adbef5d25854366e285c2247b37091b2b20ec Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Apr 30 16:37:00 2015 +0200 mise en place des binders pour les référentiels et adaptation des ui (refs #7017) --- .../main/java/fr/ird/observe/BinderService.java | 310 +++++++++++++++++++-- .../observe/services/AbstractObserveService.java | 4 + .../services/data/seine/ActivitySeineService.java | 2 - .../data/seine/ActivitySeineServiceImpl.java | 8 - .../services/referential/ReferentialService.java | 10 +- .../referential/ReferentialServiceImpl.java | 104 ++++++- .../list/impl/longline/TripLonglinesUIHandler.java | 5 +- .../list/impl/seine/TripSeinesUIHandler.java | 4 +- .../ui/content/ref/ContentReferenceUIHandler.java | 268 ++++++------------ .../ui/content/ref/ContentReferenceUIModel.java | 153 +--------- .../ref/ReferentialContentUIInitializer.java | 43 ++- .../ui/content/ref/impl/CountryUIModel.java | 4 +- .../ui/content/ref/impl/FpaZoneUIModel.java | 3 +- .../content/ref/impl/GearCaracteristicUIModel.java | 8 +- .../observe/ui/content/ref/impl/GearUIModel.java | 4 +- .../ui/content/ref/impl/HarbourUIModel.java | 18 +- .../ref/impl/LengthWeightParameterUIModel.java | 22 +- .../ui/content/ref/impl/OrganismUIModel.java | 4 +- .../observe/ui/content/ref/impl/PersonUIModel.java | 25 +- .../ui/content/ref/impl/ProgramUIModel.java | 38 +-- .../ui/content/ref/impl/SpeciesListUIModel.java | 4 +- .../ui/content/ref/impl/SpeciesUIModel.java | 35 +-- .../ref/impl/VesselSizeCategoryUIModel.java | 9 +- .../observe/ui/content/ref/impl/VesselUIModel.java | 34 +-- .../impl/longline/BaitSettingStatusUIModel.java | 4 +- .../ref/impl/longline/MaturityStatusUIModel.java | 4 +- .../ref/impl/longline/SensorBrandUIModel.java | 3 +- .../ref/impl/seine/ObservedSystemUIModel.java | 3 +- .../ref/impl/seine/WeightCategoryUIModel.java | 14 +- .../ui/content/ref/impl/seine/WindUIModel.java | 1 - 30 files changed, 612 insertions(+), 536 deletions(-) diff --git a/observe-business/src/main/java/fr/ird/observe/BinderService.java b/observe-business/src/main/java/fr/ird/observe/BinderService.java index 1596a68..701b12f 100644 --- a/observe-business/src/main/java/fr/ird/observe/BinderService.java +++ b/observe-business/src/main/java/fr/ird/observe/BinderService.java @@ -39,7 +39,67 @@ import fr.ird.observe.entities.longline.SizeMeasure; import fr.ird.observe.entities.longline.Tdr; import fr.ird.observe.entities.longline.TripLongline; import fr.ird.observe.entities.longline.WeightMeasure; +import fr.ird.observe.entities.referentiel.Country; +import fr.ird.observe.entities.referentiel.FpaZone; +import fr.ird.observe.entities.referentiel.Gear; +import fr.ird.observe.entities.referentiel.GearCaracteristic; +import fr.ird.observe.entities.referentiel.GearCaracteristicType; +import fr.ird.observe.entities.referentiel.Harbour; +import fr.ird.observe.entities.referentiel.I18nReferenceEntity; +import fr.ird.observe.entities.referentiel.LengthWeightParameter; +import fr.ird.observe.entities.referentiel.Ocean; +import fr.ird.observe.entities.referentiel.Organism; +import fr.ird.observe.entities.referentiel.Person; import fr.ird.observe.entities.referentiel.Program; +import fr.ird.observe.entities.referentiel.ReferenceEntity; +import fr.ird.observe.entities.referentiel.Sex; +import fr.ird.observe.entities.referentiel.Species; +import fr.ird.observe.entities.referentiel.SpeciesGroup; +import fr.ird.observe.entities.referentiel.SpeciesList; +import fr.ird.observe.entities.referentiel.Vessel; +import fr.ird.observe.entities.referentiel.VesselSizeCategory; +import fr.ird.observe.entities.referentiel.VesselType; +import fr.ird.observe.entities.referentiel.longline.BaitHaulingStatus; +import fr.ird.observe.entities.referentiel.longline.BaitSettingStatus; +import fr.ird.observe.entities.referentiel.longline.BaitType; +import fr.ird.observe.entities.referentiel.longline.CatchFateLongline; +import fr.ird.observe.entities.referentiel.longline.EncounterType; +import fr.ird.observe.entities.referentiel.longline.Healthness; +import fr.ird.observe.entities.referentiel.longline.HookPosition; +import fr.ird.observe.entities.referentiel.longline.HookSize; +import fr.ird.observe.entities.referentiel.longline.HookType; +import fr.ird.observe.entities.referentiel.longline.ItemHorizontalPosition; +import fr.ird.observe.entities.referentiel.longline.ItemVerticalPosition; +import fr.ird.observe.entities.referentiel.longline.LightsticksColor; +import fr.ird.observe.entities.referentiel.longline.LightsticksType; +import fr.ird.observe.entities.referentiel.longline.LineType; +import fr.ird.observe.entities.referentiel.longline.MaturityStatus; +import fr.ird.observe.entities.referentiel.longline.MitigationType; +import fr.ird.observe.entities.referentiel.longline.SensorBrand; +import fr.ird.observe.entities.referentiel.longline.SensorDataFormat; +import fr.ird.observe.entities.referentiel.longline.SensorType; +import fr.ird.observe.entities.referentiel.longline.SettingShape; +import fr.ird.observe.entities.referentiel.longline.SizeMeasureType; +import fr.ird.observe.entities.referentiel.longline.StomacFullness; +import fr.ird.observe.entities.referentiel.longline.TripType; +import fr.ird.observe.entities.referentiel.longline.VesselActivityLongline; +import fr.ird.observe.entities.referentiel.longline.WeightMeasureType; +import fr.ird.observe.entities.referentiel.seine.DetectionMode; +import fr.ird.observe.entities.referentiel.seine.ObjectFate; +import fr.ird.observe.entities.referentiel.seine.ObjectOperation; +import fr.ird.observe.entities.referentiel.seine.ObjectType; +import fr.ird.observe.entities.referentiel.seine.ObservedSystem; +import fr.ird.observe.entities.referentiel.seine.ReasonForDiscard; +import fr.ird.observe.entities.referentiel.seine.ReasonForNoFishing; +import fr.ird.observe.entities.referentiel.seine.ReasonForNullSet; +import fr.ird.observe.entities.referentiel.seine.SpeciesFate; +import fr.ird.observe.entities.referentiel.seine.SpeciesStatus; +import fr.ird.observe.entities.referentiel.seine.SurroundingActivity; +import fr.ird.observe.entities.referentiel.seine.TransmittingBuoyOperation; +import fr.ird.observe.entities.referentiel.seine.TransmittingBuoyType; +import fr.ird.observe.entities.referentiel.seine.VesselActivitySeine; +import fr.ird.observe.entities.referentiel.seine.WeightCategory; +import fr.ird.observe.entities.referentiel.seine.Wind; import fr.ird.observe.entities.seine.ActivitySeine; import fr.ird.observe.entities.seine.FloatingObject; import fr.ird.observe.entities.seine.GearUseFeaturesMeasurementSeine; @@ -127,10 +187,49 @@ public class BinderService { public static final String EDIT_DISCARD_TARGET_CATCH = "editDiscardTargetCatch"; + protected final static String[] DEFAULT_PROPERTIES_WITH_CODE = { + ReferenceEntity.PROPERTY_CODE, + ReferenceEntity.PROPERTY_URI, + ReferenceEntity.PROPERTY_STATUS, + ReferenceEntity.PROPERTY_NEED_COMMENT + }; + + protected final static String[] DEFAULT_PROPERTIES_WITHOUT_CODE = { + ReferenceEntity.PROPERTY_URI, + ReferenceEntity.PROPERTY_STATUS, + ReferenceEntity.PROPERTY_NEED_COMMENT + }; + + protected final static String[] DEFAULT_LENGTH_WEIGHT_PARAMETER_PROPERTIES = { + LengthWeightParameter.PROPERTY_START_DATE, + LengthWeightParameter.PROPERTY_END_DATE, + LengthWeightParameter.PROPERTY_OCEAN, + LengthWeightParameter.PROPERTY_SPECIES, + LengthWeightParameter.PROPERTY_SEX, + LengthWeightParameter.PROPERTY_LENGTH_WEIGHT_FORMULA, + LengthWeightParameter.PROPERTY_WEIGHT_LENGTH_FORMULA, + LengthWeightParameter.PROPERTY_COEFFICIENTS, + LengthWeightParameter.PROPERTY_MEAN_LENGTH, + LengthWeightParameter.PROPERTY_MEAN_WEIGHT + }; + + protected final static String[] DEFAULT_I18N_PROPERTIES = { + I18nReferenceEntity.PROPERTY_LABEL1, + I18nReferenceEntity.PROPERTY_LABEL2, + I18nReferenceEntity.PROPERTY_LABEL3, + I18nReferenceEntity.PROPERTY_LABEL4, + I18nReferenceEntity.PROPERTY_LABEL5, + I18nReferenceEntity.PROPERTY_LABEL6, + I18nReferenceEntity.PROPERTY_LABEL7, + I18nReferenceEntity.PROPERTY_LABEL8 + }; + static { try { + registerReferentialBinders(); + registerSeineBinders(); registerLonglineBinders(); @@ -152,16 +251,26 @@ public class BinderService { } + public <E extends TopiaEntity> void copyExcluding(Class<E> type, String context, E source, E target, String... propertyNames) { + copyExcluding(type, context, source, target, true, propertyNames); + + } + + public <E extends TopiaEntity> void copyExcluding(Class<E> type, String context, E source, E target, boolean bindTechnical, String... propertyNames) { + TopiaEntityBinder<E> binder = getBinder(type, context); binder.copyExcluding(source, target, propertyNames); - /* FIXME sbavencoff 29/04/2015 bind techincal fields */ - target.setTopiaId(source.getTopiaId()); - target.setTopiaVersion(source.getTopiaVersion()); - target.setTopiaCreateDate(source.getTopiaCreateDate()); + if (bindTechnical) { + + target.setTopiaId(source.getTopiaId()); + target.setTopiaVersion(source.getTopiaVersion()); + target.setTopiaCreateDate(source.getTopiaCreateDate()); + + } } @@ -634,23 +743,6 @@ public class BinderService { { - BinderModelBuilder<Program, Program> builder = newBinderBuilder( - Program.class, - Program.PROPERTY_LABEL1, - Program.PROPERTY_LABEL2, - Program.PROPERTY_LABEL3, - Program.PROPERTY_LABEL4, - Program.PROPERTY_LABEL5, - Program.PROPERTY_LABEL6, - Program.PROPERTY_LABEL7, - Program.PROPERTY_LABEL8); - - registerTopiaBinder(Program.class, builder, DISPLAY_LIST); - - } - - { - BinderModelBuilder<NonTargetCatch, NonTargetCatch> builder = newBinderBuilder( NonTargetCatch.class, NonTargetCatch.PROPERTY_SPECIES, @@ -1403,4 +1495,180 @@ public class BinderService { } } + + protected static void registerReferentialBinders() { + + { + + BinderModelBuilder<Program, Program> builder = newBinderBuilder( + Program.class, + Program.PROPERTY_LABEL1, + Program.PROPERTY_LABEL2, + Program.PROPERTY_LABEL3, + Program.PROPERTY_LABEL4, + Program.PROPERTY_LABEL5, + Program.PROPERTY_LABEL6, + Program.PROPERTY_LABEL7, + Program.PROPERTY_LABEL8); + + registerTopiaBinder(Program.class, builder, DISPLAY); + + } + + { + + BinderModelBuilder<Program, Program> builder = newBinderBuilder( + Program.class, + Program.PROPERTY_LABEL1, + Program.PROPERTY_LABEL2, + Program.PROPERTY_LABEL3, + Program.PROPERTY_LABEL4, + Program.PROPERTY_LABEL5, + Program.PROPERTY_LABEL6, + Program.PROPERTY_LABEL7, + Program.PROPERTY_LABEL8); + + registerTopiaBinder(Program.class, builder, DISPLAY_LIST); + + } + + registerReferentialForEditBinder(Country.class, Country.PROPERTY_ISO2_CODE, Country.PROPERTY_ISO3_CODE); + registerReferentialForEditBinder(FpaZone.class, FpaZone.PROPERTY_START_DATE, FpaZone.PROPERTY_END_DATE); + registerReferentialForEditBinder(GearCaracteristicType.class); + registerReferentialForEditBinder(GearCaracteristic.class, GearCaracteristic.PROPERTY_GEAR_CARACTERISTIC_TYPE, + GearCaracteristic.PROPERTY_UNIT); + registerReferentialForEditBinder(Gear.class, Gear.PROPERTY_GEAR_CARACTERISTIC); + registerReferentialForEditBinder(Harbour.class, Harbour.PROPERTY_NAME, + Harbour.PROPERTY_COUNTRY, + Harbour.PROPERTY_LOCODE, + Harbour.PROPERTY_LATITUDE, + Harbour.PROPERTY_LONGITUDE, + Harbour.PROPERTY_QUADRANT); + registerReferentialForEditBinder(LengthWeightParameter.class, LengthWeightParameter.PROPERTY_SEX, + LengthWeightParameter.PROPERTY_OCEAN, + LengthWeightParameter.PROPERTY_SPECIES, + LengthWeightParameter.PROPERTY_START_DATE); + registerReferentialForEditBinder(Ocean.class); + registerReferentialForEditBinder(Organism.class, Organism.PROPERTY_COUNTRY, Organism.PROPERTY_DESCRIPTION); + registerReferentialForEditBinder(Person.class, Person.PROPERTY_CODE, + Person.PROPERTY_LAST_NAME, + Person.PROPERTY_FIRST_NAME, + Person.PROPERTY_CAPTAIN, + Person.PROPERTY_OBSERVER, + Person.PROPERTY_DATA_ENTRY_OPERATOR, + Person.PROPERTY_COUNTRY); + registerReferentialForEditBinder(Program.class, Program.PROPERTY_ORGANISM, + Program.PROPERTY_START_DATE, + Program.PROPERTY_END_DATE, + Program.PROPERTY_DETAILLED_ACTIVITIES_OBSERVATION, + Program.PROPERTY_NON_TARGET_OBSERVATION, + Program.PROPERTY_BAIT_OBSERVATION, + Program.PROPERTY_MAMMALS_OBSERVATION, + Program.PROPERTY_SAMPLES_OBSERVATION, + Program.PROPERTY_OBJECTS_OBSERVATION, + Program.PROPERTY_BIRDS_OBSERVATION, + Program.PROPERTY_TARGET_DISCARDS_OBSERVATION, + Program.PROPERTY_GEAR_TYPE); + registerReferentialForEditBinder(Sex.class); + registerReferentialForEditBinder(SpeciesGroup.class); + registerReferentialForEditBinder(SpeciesList.class, SpeciesList.PROPERTY_SPECIES); + registerReferentialForEditBinder(Species.class, Species.PROPERTY_SPECIES_GROUP, + Species.PROPERTY_OCEAN, + Species.PROPERTY_LENGTH_MEASURE_TYPE, + Species.PROPERTY_MIN_LENGTH, + Species.PROPERTY_MAX_LENGTH, + Species.PROPERTY_MIN_WEIGHT, + Species.PROPERTY_MAX_WEIGHT, + Species.PROPERTY_HOME_ID, + Species.PROPERTY_FAO_CODE, + Species.PROPERTY_WORMS_ID, + Species.PROPERTY_SCIENTIFIC_LABEL); + registerReferentialForEditBinder(VesselSizeCategory.class, VesselSizeCategory.PROPERTY_GAUGE_LABEL, + VesselSizeCategory.PROPERTY_CAPACITY_LABEL); + registerReferentialForEditBinder(VesselType.class); + registerReferentialForEditBinder(Vessel.class, Vessel.PROPERTY_VESSEL_TYPE, + Vessel.PROPERTY_VESSEL_SIZE_CATEGORY, + Vessel.PROPERTY_FLAG_COUNTRY, + Vessel.PROPERTY_KEEL_CODE, + Vessel.PROPERTY_FLEET_COUNTRY, + Vessel.PROPERTY_YEAR_SERVICE, + Vessel.PROPERTY_LENGTH, + Vessel.PROPERTY_CAPACITY, + Vessel.PROPERTY_POWER, + Vessel.PROPERTY_SEARCH_MAXIMUM, + Vessel.PROPERTY_CHANGE_DATE); + + registerReferentialForEditBinder(DetectionMode.class); + registerReferentialForEditBinder(ObjectFate.class); + registerReferentialForEditBinder(ObjectOperation.class); + registerReferentialForEditBinder(ObjectType.class); + registerReferentialForEditBinder(ObservedSystem.class, ObservedSystem.PROPERTY_SCHOOL_TYPE); + registerReferentialForEditBinder(ReasonForDiscard.class); + registerReferentialForEditBinder(ReasonForNoFishing.class); + registerReferentialForEditBinder(ReasonForNullSet.class); + registerReferentialForEditBinder(SpeciesFate.class); + registerReferentialForEditBinder(SpeciesStatus.class); + registerReferentialForEditBinder(SurroundingActivity.class); + registerReferentialForEditBinder(TransmittingBuoyOperation.class); + registerReferentialForEditBinder(TransmittingBuoyType.class); + registerReferentialForEditBinder(VesselActivitySeine.class); + registerReferentialForEditBinder(Wind.class, Wind.PROPERTY_SPEED_RANGE, Wind.PROPERTY_WAVE_HEIGHT); + registerReferentialForEditBinder(WeightCategory.class, WeightCategory.PROPERTY_CODE, WeightCategory.PROPERTY_SPECIES); + + registerReferentialForEditBinder(BaitHaulingStatus.class); + registerReferentialForEditBinder(BaitSettingStatus.class); + registerReferentialForEditBinder(BaitType.class); + registerReferentialForEditBinder(CatchFateLongline.class); + registerReferentialForEditBinder(EncounterType.class); + registerReferentialForEditBinder(Healthness.class); + registerReferentialForEditBinder(HookPosition.class); + registerReferentialForEditBinder(HookSize.class); + registerReferentialForEditBinder(HookType.class); + registerReferentialForEditBinder(ItemHorizontalPosition.class); + registerReferentialForEditBinder(ItemVerticalPosition.class); + registerReferentialForEditBinder(LightsticksColor.class); + registerReferentialForEditBinder(LightsticksType.class); + registerReferentialForEditBinder(LineType.class); + registerReferentialForEditBinder(MaturityStatus.class, MaturityStatus.PROPERTY_LOWER_VALUE, MaturityStatus.PROPERTY_UPPER_VALUE); + registerReferentialForEditBinder(MitigationType.class); + registerReferentialForEditBinder(SensorBrand.class, SensorBrand.PROPERTY_BRAND_NAME); + registerReferentialForEditBinder(SensorDataFormat.class); + registerReferentialForEditBinder(SensorType.class); + registerReferentialForEditBinder(SettingShape.class); + registerReferentialForEditBinder(SizeMeasureType.class); + registerReferentialForEditBinder(StomacFullness.class); + registerReferentialForEditBinder(TripType.class); + registerReferentialForEditBinder(VesselActivityLongline.class); + registerReferentialForEditBinder(WeightMeasureType.class); + + } + + protected static <R extends ReferenceEntity> void registerReferentialForEditBinder(Class<R> entityType, String... extraProperties) { + registerReferentialForEditBinder(entityType, true, extraProperties); + } + + protected static <R extends ReferenceEntity> void registerReferentialForEditBinder(Class<R> entityType, boolean useDefault, String... extraProperties) { + + BinderModelBuilder<R, R> binder = newBinderBuilder(entityType); + + if (useDefault) { + binder.addSimpleProperties(DEFAULT_PROPERTIES_WITH_CODE); + } else { + binder.addSimpleProperties(DEFAULT_PROPERTIES_WITHOUT_CODE); + } + + if (I18nReferenceEntity.class.isAssignableFrom(entityType)) { + binder.addSimpleProperties(DEFAULT_I18N_PROPERTIES); + } + if (LengthWeightParameter.class.isAssignableFrom(entityType)) { + binder.addSimpleProperties(DEFAULT_LENGTH_WEIGHT_PARAMETER_PROPERTIES); + } + + if (extraProperties.length > 0) { + binder.addSimpleProperties(extraProperties); + } + registerTopiaBinder(entityType, binder, EDIT); + + } + } diff --git a/observe-services/src/main/java/fr/ird/observe/services/AbstractObserveService.java b/observe-services/src/main/java/fr/ird/observe/services/AbstractObserveService.java index 7ddc8a3..37c7307 100644 --- a/observe-services/src/main/java/fr/ird/observe/services/AbstractObserveService.java +++ b/observe-services/src/main/java/fr/ird/observe/services/AbstractObserveService.java @@ -141,6 +141,10 @@ public abstract class AbstractObserveService implements ObserveService { getBinderService().copyExcluding(type, context, source, target, propertyNames); } + public <E extends TopiaEntity> void copyExcluding(Class<E> type, String context, E source, E target,boolean bindTechnical, String... propertyNames) { + getBinderService().copyExcluding(type, context, source, target, bindTechnical, propertyNames); + } + public <E extends TopiaEntity> void copy(Class<E> type, String context, E source, E target, boolean bindTechnical) { getBinderService().copy(type, context, source, target, bindTechnical); } diff --git a/observe-services/src/main/java/fr/ird/observe/services/data/seine/ActivitySeineService.java b/observe-services/src/main/java/fr/ird/observe/services/data/seine/ActivitySeineService.java index 6278b0b..2ded71e 100644 --- a/observe-services/src/main/java/fr/ird/observe/services/data/seine/ActivitySeineService.java +++ b/observe-services/src/main/java/fr/ird/observe/services/data/seine/ActivitySeineService.java @@ -20,8 +20,6 @@ public interface ActivitySeineService extends ObserveService { List<ActivitySeine> getActivitySeineStubByRoute(String routeId); - List<ActivitySeine> loadAllByRouteForDisplay(String routeId); - ActivitySeine loadForDisplay(String activitySeineId); ActivitySeine loadForEdit(String activitySeineId); diff --git a/observe-services/src/main/java/fr/ird/observe/services/data/seine/ActivitySeineServiceImpl.java b/observe-services/src/main/java/fr/ird/observe/services/data/seine/ActivitySeineServiceImpl.java index 2dea317..860cc3e 100644 --- a/observe-services/src/main/java/fr/ird/observe/services/data/seine/ActivitySeineServiceImpl.java +++ b/observe-services/src/main/java/fr/ird/observe/services/data/seine/ActivitySeineServiceImpl.java @@ -44,14 +44,6 @@ public class ActivitySeineServiceImpl extends AbstractObserveService implements } @Override - public List<ActivitySeine> loadAllByRouteForDisplay(String routeId) { - - List<ActivitySeine> loaded = getDao().findAllStubByRouteId(routeId, getReferentielLocale()); - return loaded; - - } - - @Override public ActivitySeine loadForDisplay(String activitySeineId) { ActivitySeine loaded = getDao().newInstance(); diff --git a/observe-services/src/main/java/fr/ird/observe/services/referential/ReferentialService.java b/observe-services/src/main/java/fr/ird/observe/services/referential/ReferentialService.java index 4646e30..0a7a418 100644 --- a/observe-services/src/main/java/fr/ird/observe/services/referential/ReferentialService.java +++ b/observe-services/src/main/java/fr/ird/observe/services/referential/ReferentialService.java @@ -3,6 +3,7 @@ package fr.ird.observe.services.referential; import fr.ird.observe.entities.referentiel.Program; import fr.ird.observe.entities.referentiel.ReferenceEntity; import fr.ird.observe.entities.referentiel.Species; +import fr.ird.observe.services.Commit; import fr.ird.observe.services.ObserveService; import java.util.List; @@ -22,6 +23,8 @@ public interface ReferentialService extends ObserveService { Program getProgramStub(String programId); + <E extends ReferenceEntity> List<E> loadListForEdit(Class<E> entityType); + <E extends ReferenceEntity> List<E> loadAndDecorateList(Class<E> entityType); <E extends ReferenceEntity> E loadAndDecorate(Class<E> entityType, String topiaId); @@ -30,6 +33,11 @@ public interface ReferentialService extends ObserveService { Set<String> getSpeciesListSpeciesIds(String speciesListId); - void copyProgramForDisplay(Program source, Program target); + <R extends ReferenceEntity> R preCreate(Class<R> entityType); + + @Commit + <R extends ReferenceEntity> String save(R toSave); + @Commit + <R extends ReferenceEntity> void delete(Class<R> entityType, String referentialId); } diff --git a/observe-services/src/main/java/fr/ird/observe/services/referential/ReferentialServiceImpl.java b/observe-services/src/main/java/fr/ird/observe/services/referential/ReferentialServiceImpl.java index 3e1e86e..63b1078 100644 --- a/observe-services/src/main/java/fr/ird/observe/services/referential/ReferentialServiceImpl.java +++ b/observe-services/src/main/java/fr/ird/observe/services/referential/ReferentialServiceImpl.java @@ -3,19 +3,26 @@ package fr.ird.observe.services.referential; import com.google.common.collect.Lists; import com.google.common.collect.Sets; import fr.ird.observe.BinderService; +import fr.ird.observe.ObserveEntityEnum; import fr.ird.observe.entities.constants.ReferenceLocale; +import fr.ird.observe.entities.constants.ReferenceStatus; +import fr.ird.observe.entities.referentiel.LengthWeightParameter; import fr.ird.observe.entities.referentiel.Program; import fr.ird.observe.entities.referentiel.ProgramDAO; import fr.ird.observe.entities.referentiel.Programs; import fr.ird.observe.entities.referentiel.ReferenceEntity; import fr.ird.observe.entities.referentiel.Species; import fr.ird.observe.entities.referentiel.SpeciesList; +import fr.ird.observe.entities.referentiel.seine.WeightCategory; import fr.ird.observe.services.AbstractObserveService; import org.apache.commons.collections.CollectionUtils; +import org.nuiton.topia.persistence.util.TopiaEntityBinder; import org.nuiton.topia.persistence.util.TopiaEntityHelper; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.Set; /** @@ -60,6 +67,17 @@ public class ReferentialServiceImpl extends AbstractObserveService implements Re } @Override + public <E extends ReferenceEntity> List<E> loadListForEdit(Class<E> entityType) { + + List<E> entities = getDao(entityType).findAll(); + TopiaEntityBinder<E> binder = getBinder(entityType, BinderService.EDIT); + for (E entity : entities) { + binder.obtainProperties(entity); + } + return Lists.newArrayList(entities); + } + + @Override public <E extends ReferenceEntity> List<E> loadAndDecorateList(Class<E> entityType) { List<E> entities = getDao(entityType).findAll(); @@ -77,6 +95,7 @@ public class ReferentialServiceImpl extends AbstractObserveService implements Re } + @Override public List<Species> loadDecoratedSpecies(String speciesListCode) { List<Species> speciess = new ArrayList<Species>(); @@ -91,7 +110,7 @@ public class ReferentialServiceImpl extends AbstractObserveService implements Re } - + @Override public Set<String> getSpeciesListSpeciesIds(String speciesListId) { SpeciesList speciesList = findByTopiaId(SpeciesList.class, speciesListId); @@ -103,10 +122,87 @@ public class ReferentialServiceImpl extends AbstractObserveService implements Re } @Override - public void copyProgramForDisplay(Program source, Program target) { + public <R extends ReferenceEntity> R preCreate(Class<R> entityType) { + + R preCreated = getDao(entityType).newInstance(); + preCreated.setStatus(ReferenceStatus.enabled); + return preCreated; + + } + + @Override + public <R extends ReferenceEntity> String save(R toSave) { + + Class<R> entityType = (Class<R>) ObserveEntityEnum.valueOf(toSave).getContract(); + + String referentialId = doSave(null, toSave, new SaveAction<R, R>(entityType, entityType) { + + @Override + public R onCreate(R parent, R toCreate) { + + R created; + + if (getNaturalIds().containsKey(entityClass)) { + + // utilisation d'un clef naturelle + String[] naturalIdPropertyNames = getNaturalIds().get(entityClass); + TopiaEntityBinder<R> binder = getBinder(entityClass, BinderService.EDIT); + Map<String, Object> naturalIdValue = binder.obtainProperties(toCreate, naturalIdPropertyNames); + + created = getDao(entityClass).create(naturalIdValue); + copyExcluding(entityClass, BinderService.EDIT, toCreate, created, false, naturalIdPropertyNames); + + } else { + + created = getDao(entityClass).create(); + copy(entityClass, BinderService.EDIT, toCreate, created, false); + + } + + return created; + + } + + @Override + public R onUpdate(R parentBean, R toUpdate, R updated) { + + copyExcluding(entityClass, BinderService.EDIT, toUpdate, updated); + return updated; + + } + }); + + return referentialId; + + } + + @Override + public <R extends ReferenceEntity> void delete(Class<R> entityType, String referentialId) { + + doDelete(null, referentialId, new DeleteAction<R, R>(entityType, entityType)); + + } - BinderService binderService = serviceContext.getBinderService(); - binderService.simpleCopy(source, target, true); + protected static Map<Class<? extends ReferenceEntity>, String[]> NATURAL_IDS; + protected static Map<Class<? extends ReferenceEntity>, String[]> getNaturalIds() { + if (NATURAL_IDS == null) { + NATURAL_IDS = new HashMap<Class<? extends ReferenceEntity>, String[]>(); + + NATURAL_IDS.put(LengthWeightParameter.class, new String[]{ + LengthWeightParameter.PROPERTY_SEX, + LengthWeightParameter.PROPERTY_OCEAN, + LengthWeightParameter.PROPERTY_SPECIES, + LengthWeightParameter.PROPERTY_START_DATE, + }); + + NATURAL_IDS.put(WeightCategory.class, new String[]{ + WeightCategory.PROPERTY_CODE, + WeightCategory.PROPERTY_SPECIES + }); + + + } + return NATURAL_IDS; } } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/TripLonglinesUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/TripLonglinesUIHandler.java index b5f58bc..a431838 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/TripLonglinesUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/longline/TripLonglinesUIHandler.java @@ -22,8 +22,8 @@ package fr.ird.observe.ui.content.list.impl.longline; * #L% */ +import fr.ird.observe.BinderService; import fr.ird.observe.db.DataContext; -import fr.ird.observe.db.DataSourceException; import fr.ird.observe.db.constants.DataContextType; import fr.ird.observe.entities.longline.TripLongline; import fr.ird.observe.entities.referentiel.Program; @@ -97,7 +97,8 @@ public class TripLonglinesUIHandler extends ContentListUIHandler<Program, TripLo ReferentialService service = getService(ReferentialService.class); Program loaded = service.loadAndDecorate(Program.class, selectedId); Program bean = getBean(); - service.copyProgramForDisplay(loaded, bean); + + copy(Program.class, BinderService.DISPLAY,loaded, bean); TripLonglineService tripService = getService(TripLonglineService.class); List<TripLongline> tripLonglines = tripService.getTripLonglineStubByProgram(bean.getTopiaId()); diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/TripSeinesUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/TripSeinesUIHandler.java index 3802775..dfece7f 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/TripSeinesUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/list/impl/seine/TripSeinesUIHandler.java @@ -21,8 +21,8 @@ */ package fr.ird.observe.ui.content.list.impl.seine; +import fr.ird.observe.BinderService; import fr.ird.observe.db.DataContext; -import fr.ird.observe.db.DataSourceException; import fr.ird.observe.db.constants.DataContextType; import fr.ird.observe.entities.referentiel.Program; import fr.ird.observe.entities.seine.TripSeine; @@ -94,7 +94,7 @@ public class TripSeinesUIHandler extends ContentListUIHandler<Program, TripSeine ReferentialService service = getService(ReferentialService.class); Program loaded = service.loadAndDecorate(Program.class, selectedId); Program bean = getBean(); - service.copyProgramForDisplay(loaded, bean); + copy(Program.class, BinderService.DISPLAY, loaded, bean); TripSeineService tripService = getService(TripSeineService.class); List<TripSeine> tripSeines = tripService.getTripSeineStubByProgram(bean.getTopiaId()); diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/ContentReferenceUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/ContentReferenceUIHandler.java index 378451f..d597124 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/ContentReferenceUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/ContentReferenceUIHandler.java @@ -21,14 +21,12 @@ */ package fr.ird.observe.ui.content.ref; -import fr.ird.observe.DataService; +import fr.ird.observe.BinderService; import fr.ird.observe.DecoratorService; import fr.ird.observe.ObserveContext; import fr.ird.observe.ObserveServiceHelper; import fr.ird.observe.db.DataContext; import fr.ird.observe.db.DataSource; -import fr.ird.observe.db.DataSourceException; -import fr.ird.observe.db.util.TopiaExecutor2; import fr.ird.observe.entities.EntityMap; import fr.ird.observe.entities.constants.ReferenceLocale; import fr.ird.observe.entities.constants.ReferenceStatus; @@ -46,37 +44,29 @@ import fr.ird.observe.ui.util.SpringUtilities; import fr.ird.observe.validation.ValidationContext; import jaxx.runtime.JAXXContext; import jaxx.runtime.swing.CardLayout2Ext; -import jaxx.runtime.swing.ErrorDialogUI; import jaxx.runtime.swing.editor.bean.BeanListHeader; import jaxx.runtime.validator.swing.SwingValidatorUtil; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.decorator.Decorator; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.persistence.TopiaDAO; import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.topia.persistence.util.Loador; -import org.nuiton.topia.persistence.util.TopiaEntityBinder; import javax.swing.JButton; import javax.swing.JComponent; import javax.swing.JLabel; -import javax.swing.JList; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JPopupMenu; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.JToolBar; -import javax.swing.ListModel; import javax.swing.RowSorter; import javax.swing.SortOrder; import javax.swing.SpringLayout; import javax.swing.SwingUtilities; import javax.swing.border.TitledBorder; import javax.swing.table.DefaultTableCellRenderer; -import javax.swing.table.TableCellRenderer; import java.awt.Container; import java.awt.Dimension; import java.awt.Font; @@ -84,8 +74,7 @@ import java.beans.Introspector; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; +import java.util.Collections; import java.util.List; import java.util.Map; @@ -123,6 +112,18 @@ public class ContentReferenceUIHandler<E extends ReferenceEntity> extends Conten } }; + //TODO Supprimer deleteUI et mettre deleteUI2 a la place + @Override + public final void deleteUI() { + deleteUI2(); + } + + //TODO Supprimer saveUI et mettre saveUI2 a la place + @Override + public final void saveUI(boolean refresh) { + saveUI2(refresh); + } + public ContentReferenceUIHandler(ContentReferenceUI<E> ui) { super(ui, null, null); } @@ -256,7 +257,7 @@ public class ContentReferenceUIHandler<E extends ReferenceEntity> extends Conten data[0] = decorator.toString(e); for (String property : naturalIds) { Object o = values.get(property); - if (ContentReferenceUIModel.DEFAULT_PROPERTIES[0].equals(property) && o == null) { + if (ContentReferenceUIModel.DEFAULT_NATURAL_ID[0].equals(property) && o == null) { // cas special du code à 0, le loador ne retourne pas // de valeur car c'est la valeur par defaut d'un type // primitif, on force donc l'utilisation du zero. @@ -290,8 +291,7 @@ public class ContentReferenceUIHandler<E extends ReferenceEntity> extends Conten JTable table = new JTable(new UniqueKeyTableModel(columns, datas)); table.setAutoCreateRowSorter(true); - table.getRowSorter().setSortKeys(Arrays.asList( - new RowSorter.SortKey(0, SortOrder.ASCENDING))); + table.getRowSorter().setSortKeys(Collections.singletonList(new RowSorter.SortKey(0, SortOrder.ASCENDING))); table.setFillsViewportHeight(true); JScrollPane pane = new JScrollPane(); @@ -301,8 +301,7 @@ public class ContentReferenceUIHandler<E extends ReferenceEntity> extends Conten pane.setVerticalScrollBarPolicy( JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); - String title = t("observe.title.unique.key", - t(DecoratorService.getEntityLabel(beanType))); + String title = t("observe.title.unique.key", t(DecoratorService.getEntityLabel(beanType))); pane.setBorder(new TitledBorder(title)); @@ -491,16 +490,20 @@ public class ContentReferenceUIHandler<E extends ReferenceEntity> extends Conten addInfoMessage(t("observe.message.creating.referentiel")); // creation mode - try { - getDataService().preCreate(getDataSource(), - null, - bean, - getLoadBinder(), - getPreCreateExecutor() - ); - } catch (DataSourceException e) { - ErrorDialogUI.showError(e); - } + + E preCreate = getService(ReferentialService.class).preCreate(model.getBeanType()); + copy(model.getBeanType(), BinderService.EDIT, preCreate, bean, true); + +// try { +// getDataService().preCreate(getDataSource(), +// null, +// bean, +// getLoadBinder(), +// getPreCreateExecutor() +// ); +// } catch (DataSourceException e) { +// ErrorDialogUI.showError(e); +// } } else { addInfoMessage(t("observe.message.updating.referentiel")); @@ -541,11 +544,6 @@ public class ContentReferenceUIHandler<E extends ReferenceEntity> extends Conten validationContext.setEditingReferentielList(data); } -// @Override -// public boolean closeUI() throws Exception { -// return super.closeUI(); -// } - public final void createUI() { ContentReferenceUI<E> ui = getUi(); @@ -557,7 +555,8 @@ public class ContentReferenceUIHandler<E extends ReferenceEntity> extends Conten log.debug("Will create new entity [" + getModel().getBeanType() + "]"); } - getLoadBinder().load(null, getBean(), true); + copy(getModel().getBeanType(), BinderService.EDIT, null, getBean()); +// getLoadBinder().load(null, getBean(), true); // on demarre l'edition ui.startEdit(null); @@ -572,7 +571,8 @@ public class ContentReferenceUIHandler<E extends ReferenceEntity> extends Conten model.setMode(ContentMode.UPDATE); } - getLoadBinder().load(model.getSelectedBean(), getBean(), true); + copy(getModel().getBeanType(), BinderService.EDIT, model.getSelectedBean(), getBean()); +// getLoadBinder().load(model.getSelectedBean(), getBean(), true); getUi().startEdit(null); } @@ -618,24 +618,53 @@ public class ContentReferenceUIHandler<E extends ReferenceEntity> extends Conten } @Override - protected boolean doSave(E bean, - DataService dataService, - DataSource dataSource, - TopiaEntityBinder<E> binder) throws Exception { + protected boolean doSave(E bean) throws Exception { ContentReferenceUIModel<E> model = getModel(); - if (bean.getTopiaId() == null) { + boolean create = bean.getTopiaId() == null; + + ReferentialService service = getService(ReferentialService.class); + + if (!create) { + + // le bean original + E oldBean = model.getSelectedBean(); - if (log.isInfoEnabled()) { - log.info("Create referentiel " + bean); + if (oldBean != null + && oldBean.getStatus() == ReferenceStatus.enabled + && bean.getStatus() == ReferenceStatus.disabled) { + + // l'entite a ete desactive + // on recherche les objets utilisant cette entite + // on indique a l'utilisateur ce changement + if (log.isDebugEnabled()) { + log.debug("entity status was desactivated, looking for usage"); + } + EntityMap usages = service.findAllUsages(bean); + + if (usages.isEmpty()) { + if (log.isInfoEnabled()) { + log.info("No usage found, no warning to display"); + } + } else { + // some usages were found + boolean willsave = showUsagesForDesactivated(getUi(), bean, usages); + if (!willsave) { + if (log.isDebugEnabled()) { + log.debug("User refuses to continue, skip saving..."); + } + return false; + } + } } - dataService.create(dataSource, - null, - bean, - binder, - getCreateExecutor() - ); + + } + + String id = service.save(bean); + bean.setTopiaId(id); + + if (create) { if (bean instanceof Program) { @@ -644,77 +673,22 @@ public class ContentReferenceUIHandler<E extends ReferenceEntity> extends Conten treeHelper.addProgram((Program) bean); } - return true; - } - - if (log.isInfoEnabled()) { - log.info("Will update exisintg entity : " + bean.getTopiaId()); - } - // le bean original - E oldBean = model.getSelectedBean(); - - if (oldBean != null && - oldBean.getStatus() == ReferenceStatus.enabled && - bean.getStatus() == ReferenceStatus.disabled) { + } else { - // l'entite a ete desactive - // on recherche les objets utilisant cette entitee - // on indique a l'utilisateur ce changement - if (log.isDebugEnabled()) { - log.debug("entity status was desactivated, looking " + - "for usage"); - } - ReferentialService service = getService(ReferentialService.class); - EntityMap usages = service.findAllUsages(bean); + if (bean instanceof Program) { - if (usages.isEmpty()) { - if (log.isInfoEnabled()) { - log.info("No usage found, no warning to display"); - } - } else { - // some usages were found - boolean willsave = showUsagesForDesactivated(getUi(), bean, - usages); - if (!willsave) { - if (log.isDebugEnabled()) { - log.debug("User refuses to continue, skip " + - "saving..."); - } - return false; - } + // update the program in tree + ObserveTreeHelper treeHelper = getTreeHelper(getUi()); + treeHelper.updateProgram((Program) bean); } - } - // sauvegarde du bean d'edition dans le bean de la base - bean = dataService.update(dataSource, - null, // pas de parent a sauvegarder - bean, - getUpdateExecutor() - ); - if (bean instanceof Program) { - - // update the program in tree - ObserveTreeHelper treeHelper = getTreeHelper(getUi()); - treeHelper.updateProgram((Program) bean); } return true; } @Override - protected E onUpdate(TopiaContext tx, - Object parentBean, - E beanToSave) throws TopiaException { - - getLoadBinder().copy(getBean(), beanToSave); - return beanToSave; - } - - @Override - protected boolean doDelete(E bean, - DataService dataService, - DataSource dataSource, - TopiaExecutor2<? extends TopiaEntity, E> deletor) throws Exception { + protected boolean doDelete(E bean) { ContentReferenceUI<E> ui = getUi(); ContentReferenceUIModel<E> model = getModel(); @@ -747,8 +721,10 @@ public class ContentReferenceUIHandler<E extends ReferenceEntity> extends Conten } String beanId = bean.getTopiaId(); - dataService.delete(dataSource, null, bean, deletor); + service.delete(model.getBeanType(), beanId); + + //FIXME Move this in afterDelete if (bean instanceof Program) { // remove the program in tree @@ -759,11 +735,9 @@ public class ContentReferenceUIHandler<E extends ReferenceEntity> extends Conten } @Override - protected void onDelete(TopiaContext tx, - Object parentBean, - E beanToDelete) throws TopiaException { - TopiaDAO<E> dao = getDataSource().getDAO(tx, beanToDelete); - dao.delete(beanToDelete); + protected void afterDelete() { + super.afterDelete(); + } @Override @@ -772,75 +746,11 @@ public class ContentReferenceUIHandler<E extends ReferenceEntity> extends Conten getUi().stopEdit(); } - @Override - protected E onPreCreate(TopiaContext tx, - Object parent, - E bean) throws TopiaException { - - // par defaut, les objets en creation sont activés - bean.setTopiaId(null); - bean.setTopiaCreateDate(null); - bean.setTopiaVersion(0); - bean.setStatus(ReferenceStatus.enabled); - return bean; - } - - @Override - protected final E onCreate(TopiaContext tx, - Object parent, - E editBean) throws TopiaException { - - // obtention du dictionnaire de la clef metier - Map<String, Object> properties = - getLoadBinder().obtainProperties(editBean, getModel().getNaturalIds()); - - // creation de l'entite - TopiaDAO<E> dao = getDataSource().getDAO(tx, getModel().getBeanType()); - E beanToSave = dao.create(properties); - - // application du topiaId sur le bean d'édition - editBean.setTopiaId(beanToSave.getTopiaId()); - return beanToSave; - } - - public <I> int[] updateIndices(JList jlist, Collection<I> list) { - if (log.isDebugEnabled()) { - log.debug(list == null ? 0 : list.size()); - } - List<Integer> indices = new ArrayList<Integer>(); - - if (list != null && !list.isEmpty()) { - - ListModel model = jlist.getModel(); - for (int i = 0, max = model.getSize(); i < max; i++) { - I s = (I) model.getElementAt(i); - if (list.contains(s)) { - indices.add(i); - } - } - } - - int[] result = new int[indices.size()]; - int i = 0; - for (Integer indice : indices) { - result[i++] = indice; - } - indices.clear(); - return result; - } - public boolean canSeeI18nTable(E bean) { return bean instanceof I18nReferenceEntity || bean instanceof VesselSizeCategory; } - public void decorateUniqueKeyTable(JTable table, - TableCellRenderer renderer, - JScrollPane pane) { - table.setAutoResizeMode(JTable.AUTO_RESIZE_LAST_COLUMN); - UIHelper.fixTableColumnWidth(table, 1, 70); - } - public String updateView(boolean editing) { if (log.isDebugEnabled()) { log.debug("Editing has changed : " + editing); diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/ContentReferenceUIModel.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/ContentReferenceUIModel.java index 519846b..3a66f17 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/ContentReferenceUIModel.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/ContentReferenceUIModel.java @@ -22,13 +22,11 @@ package fr.ird.observe.ui.content.ref; import fr.ird.observe.BinderService; +import fr.ird.observe.ObserveServiceHelper; import fr.ird.observe.entities.referentiel.I18nReferenceEntity; import fr.ird.observe.entities.referentiel.LengthWeightParameter; import fr.ird.observe.entities.referentiel.ReferenceEntity; import fr.ird.observe.ui.content.ContentUIModel; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.nuiton.util.beans.BinderModelBuilder; import java.util.ArrayList; import java.util.Arrays; @@ -42,8 +40,6 @@ import java.util.List; */ public abstract class ContentReferenceUIModel<E extends ReferenceEntity> extends ContentUIModel<E> { - public static final String PROPERTY_EMPTY = "empty"; - public static final String PROPERTY_SELECTED_BEAN = "selectedBean"; public static final String SUFFIX_TEXT = ".text"; @@ -92,98 +88,29 @@ public abstract class ContentReferenceUIModel<E extends ReferenceEntity> extends I18nReferenceEntity.PROPERTY_LABEL8 + SUFFIX_TEXT }; - /** liste des proprietes present sur tous les ecrans du referentiel */ - protected final static String[] DEFAULT_PROPERTIES = { - ReferenceEntity.PROPERTY_CODE, - ReferenceEntity.PROPERTY_URI, - ReferenceEntity.PROPERTY_STATUS, - ReferenceEntity.PROPERTY_NEED_COMMENT - }; - - /** liste des proprietes presents sur les entites taillePoidsAble */ - protected final static String[] DEFAULT_PARAMETRAGE_TAILLE_POIDS_ABLE_PROPERTIES = { - LengthWeightParameter.PROPERTY_START_DATE, - LengthWeightParameter.PROPERTY_END_DATE, - LengthWeightParameter.PROPERTY_OCEAN, - LengthWeightParameter.PROPERTY_SPECIES, - LengthWeightParameter.PROPERTY_SEX, - LengthWeightParameter.PROPERTY_LENGTH_WEIGHT_FORMULA, - LengthWeightParameter.PROPERTY_WEIGHT_LENGTH_FORMULA, - LengthWeightParameter.PROPERTY_COEFFICIENTS, - LengthWeightParameter.PROPERTY_MEAN_LENGTH, - LengthWeightParameter.PROPERTY_MEAN_WEIGHT - }; - - /** liste des proprietes presents sur les entites i18n */ - protected final static String[] DEFAULT_I18N_PROPERTIES = { - I18nReferenceEntity.PROPERTY_LABEL1, - I18nReferenceEntity.PROPERTY_LABEL2, - I18nReferenceEntity.PROPERTY_LABEL3, - I18nReferenceEntity.PROPERTY_LABEL4, - I18nReferenceEntity.PROPERTY_LABEL5, - I18nReferenceEntity.PROPERTY_LABEL6, - I18nReferenceEntity.PROPERTY_LABEL7, - I18nReferenceEntity.PROPERTY_LABEL8 - }; + protected final static String[] DEFAULT_NATURAL_ID = {ReferenceEntity.PROPERTY_CODE}; private static final long serialVersionUID = 1L; - /** Logger. */ - private static final Log log = LogFactory.getLog(ContentReferenceUIModel.class); - - /** la liste des propriétés du bean a charger */ - protected final String[] properties; - - /** la liste des propriétés faisant partie de la clef metier */ - protected final String[] naturalIds; - /** la liste des bindings à activer lors de l'ouverture de l'ui */ protected final String[] dataBinding; protected E selectedBean; - protected ContentReferenceUIModel(Class<E> beanType) { - - this(beanType, null, null, null); - - } - - protected ContentReferenceUIModel(Class<E> beanType, - String[] extraProperties, - String[] extraBindings) { - - this(beanType, extraProperties, null, extraBindings); - - } - protected ContentReferenceUIModel(Class<E> beanType, - String[] extraProperties, - String[] naturalIds, - String[] extraBindings) { + protected ContentReferenceUIModel(Class<E> beanType, String... extraBindings) { super(beanType); - boolean useDefault = naturalIds == null; - - // la clef naturelle par defaut est la premiere des properties - this.naturalIds = useDefault ? new String[]{DEFAULT_PROPERTIES[0]} : naturalIds; - - List<String> properties = buildProperties(useDefault, extraProperties); - this.properties = properties.toArray(new String[properties.size()]); - - List<String> bindings = buildDataBindings(useDefault, extraBindings); + List<String> bindings = buildDataBindings(extraBindings); this.dataBinding = bindings.toArray(new String[bindings.size()]); -// BinderService binderService = ObserveServiceHelper.get().getBinderService(); - BinderModelBuilder<E, E> builder = BinderService.newBinderBuilder(beanType, this.properties); - this.loadBinder = BinderService.registerTopiaBinder(beanType, builder, BinderService.EDIT); - -// this.loadBinder = binderService.getBinder(beanType, BinderService.EDIT); - + BinderService binderService = ObserveServiceHelper.get().getBinderService(); + this.loadBinder = binderService.getBinder(beanType, BinderService.EDIT); } public String[] getNaturalIds() { - return naturalIds; + return DEFAULT_NATURAL_ID; } public String[] getDataBinding() { @@ -200,70 +127,19 @@ public abstract class ContentReferenceUIModel<E extends ReferenceEntity> extends firePropertyChange(PROPERTY_SELECTED_BEAN, oldvalue, selectedBean); } -// @Override -// protected BinderModelBuilder<E, E> createOpeningBinder(BinderService binderService, String binderName) { -// -// BinderModelBuilder<E, E> builder = binderService.newBinderBuilder(beanType, properties); -// -// if (log.isDebugEnabled()) { -// log.debug("new binder [" + getClass().getName() + "#" + -// beanType.getName() + "] : " + -// Arrays.toString(properties) -// ); -// } -// -// return builder; -// } - - - /** - * construction de la liste des propriétés a binder pour une entite. - * - * @param usedefault un drapeau pour savoir si on doit conserver la premiere valeur par defaut - * @param properties les propriétés supplémentaires a ajouter en plus de - * celles communes - * @return la liste des toutes les proprietes utilises sur l'entite edite dans l'ui - */ - protected final List<String> buildProperties(boolean usedefault, String[] properties) { - - List<String> result = new ArrayList<String>(); - result.addAll(Arrays.asList(DEFAULT_PROPERTIES)); - if (properties != null) { - result.addAll(Arrays.asList(properties)); - } - Class<E> beanType = getBeanType(); - - if (I18nReferenceEntity.class.isAssignableFrom(beanType)) { - result.addAll(Arrays.asList(DEFAULT_I18N_PROPERTIES)); - } - if (LengthWeightParameter.class.isAssignableFrom(beanType)) { - result.addAll(Arrays.asList(DEFAULT_PARAMETRAGE_TAILLE_POIDS_ABLE_PROPERTIES)); - } - if (!usedefault) { - - // on supprime le premiere valeur - result.remove(DEFAULT_PROPERTIES[0]); - } - return result; - - } - /** * construction de la liste des databindings utiliser pour une entite. * - * @param usedefault un drapeau pour savoir si on doit conserver la premiere valeur par defaut - * @param dataBinding les bindings supplémentaires a utiliser en plus de - * ceux communs + * @param dataBinding les bindings supplémentaires a utiliser en plus de ceux communs * @return la liste de tous les databindings utilises sur l'entite edite dans l'ui */ - protected final List<String> buildDataBindings(boolean usedefault, String[] dataBinding) { + protected final List<String> buildDataBindings(String... dataBinding) { List<String> result = new ArrayList<String>(); result.addAll(Arrays.asList(DEFAULT_DATABINDING)); if (dataBinding != null) { result.addAll(Arrays.asList(dataBinding)); } - Class<E> beanType = getBeanType(); if (I18nReferenceEntity.class.isAssignableFrom(beanType)) { result.addAll(Arrays.asList(DEFAULT_I18N_DATABINDING)); @@ -271,11 +147,12 @@ public abstract class ContentReferenceUIModel<E extends ReferenceEntity> extends if (LengthWeightParameter.class.isAssignableFrom(beanType)) { result.addAll(Arrays.asList(DEFAULT_LENGTH_WEIGHT_PARAMETER_ABLE_DATABINDING)); } - if (!usedefault) { - - // on supprime le premier binding - result.remove(DEFAULT_DATABINDING[0]); - } + //FIXME Voir si cela casse quelque chose +// if (!usedefault) { +// +// // on supprime le premier binding +// result.remove(DEFAULT_DATABINDING[0]); +// } return result; } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/ReferentialContentUIInitializer.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/ReferentialContentUIInitializer.java index 7b8a730..f8abdd4 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/ReferentialContentUIInitializer.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/ReferentialContentUIInitializer.java @@ -22,15 +22,14 @@ package fr.ird.observe.ui.content.ref; * #L% */ -import com.google.common.base.Predicate; import fr.ird.observe.DataService; import fr.ird.observe.DecoratorService; import fr.ird.observe.ObserveContext; -import fr.ird.observe.db.DataSource; import fr.ird.observe.db.DataSourceException; import fr.ird.observe.entities.referentiel.ReferenceEntity; +import fr.ird.observe.services.ObserveServiceFactory; +import fr.ird.observe.services.referential.ReferentialService; import fr.ird.observe.ui.content.ContentUIInitializer; -import fr.ird.observe.ui.content.ObserveContentUI; import jaxx.runtime.swing.editor.bean.BeanListHeader; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -38,11 +37,9 @@ import org.nuiton.decorator.Decorator; import org.nuiton.decorator.DecoratorUtil; import org.nuiton.decorator.JXPathDecorator; import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.topia.persistence.util.TopiaEntityBinder; import javax.swing.JList; import javax.swing.ListCellRenderer; -import java.util.ArrayList; import java.util.List; /** @@ -64,7 +61,7 @@ public class ReferentialContentUIInitializer<E extends ReferenceEntity, UI exten * Remplit le modèle d'une liste graphique avec la liste des entités d'un * type donné sur un service de persistance donné. * - * @param storageService le service de persistance à utiliser pour + * @param serviceFactory le service de persistance à utiliser pour * récupérer les entités * @param entityClass le type de l'entité * @param list le component graphique à initialiser @@ -72,30 +69,22 @@ public class ReferentialContentUIInitializer<E extends ReferenceEntity, UI exten * des entités * @since 1.5 */ - public static <E extends TopiaEntity> void prepareEntityList(DataSource storageService, - Class<E> entityClass, - BeanListHeader<E> list, - TopiaEntityBinder<E> loador) throws DataSourceException { + public static <E extends ReferenceEntity> void prepareMainEntityList(ObserveServiceFactory serviceFactory, + Class<E> entityClass, + BeanListHeader<E> list) { - ObserveContext tx = ObserveContext.get(); + ObserveContext context = ObserveContext.get(); // init list - Decorator<E> decorator = tx.getDecorator(entityClass); + Decorator<E> decorator = context.getDecorator(entityClass); if (log.isDebugEnabled()) { log.debug("Will use decorator " + decorator); } list.putClientProperty("decorator", decorator); - List<E> data; + ReferentialService service = serviceFactory.getService(ReferentialService.class); - if (ReferenceEntity.class.isAssignableFrom(entityClass)) { - - Predicate<E> predicate = (Predicate<E>) list.getClientProperty(ObserveContentUI.CLIENT_PROPERTY_LIST_PREDICATE); - data = tx.getDataService().getList(storageService, entityClass, predicate, loador); - - } else { - data = new ArrayList<E>(); - } + List<E> data = service.loadListForEdit(entityClass); // sort data from first decorator context DecoratorUtil.sort((JXPathDecorator<E>) decorator, data, 0); @@ -111,16 +100,16 @@ public class ReferentialContentUIInitializer<E extends ReferenceEntity, UI exten list.putClientProperty("data", data); + //FIXME Remove this!!! // listen on cache modification EntityListPropertyChangeListener<E> listener = new EntityListPropertyChangeListener<E>(entityClass, list); - DataService service = ObserveContext.get().getDataService(); - service.addReferentielPropertyChangeListener(entityClass, listener); + DataService dataService = ObserveContext.get().getDataService(); + dataService.addReferentielPropertyChangeListener(entityClass, listener); } @SuppressWarnings("unchecked") - protected void init(DataSource service, DecoratorService decoratorService, BeanListHeader beanList) - throws DataSourceException { + protected void init(ObserveServiceFactory serviceFactory, DecoratorService decoratorService, BeanListHeader beanList) { beanList.setI18nPrefix("observe.common."); @@ -131,11 +120,11 @@ public class ReferentialContentUIInitializer<E extends ReferenceEntity, UI exten if ("listHeader".equals(beanList.getName())) { // use the binder for loading - prepareEntityList(service, beanList.getBeanType(), beanList, ui.getModel().getLoadBinder()); + prepareMainEntityList(serviceFactory, beanList.getBeanType(), beanList); } else { - prepareEntityList(service, beanList.getBeanType(), beanList, null); + super.init(serviceFactory, decoratorService, beanList); } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/CountryUIModel.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/CountryUIModel.java index afa38a4..221250f 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/CountryUIModel.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/CountryUIModel.java @@ -37,9 +37,7 @@ public class CountryUIModel extends ContentReferenceUIModel<Country> { public CountryUIModel() { super(Country.class, - new String[]{Country.PROPERTY_ISO2_CODE, Country.PROPERTY_ISO3_CODE}, - new String[]{CountryUI.BINDING_ISO2_CODE_TEXT, CountryUI.BINDING_ISO3_CODE_TEXT} - ); + CountryUI.BINDING_ISO2_CODE_TEXT, CountryUI.BINDING_ISO3_CODE_TEXT); } } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/FpaZoneUIModel.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/FpaZoneUIModel.java index 75f8e64..9d04225 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/FpaZoneUIModel.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/FpaZoneUIModel.java @@ -37,8 +37,7 @@ public class FpaZoneUIModel extends ContentReferenceUIModel<FpaZone> { public FpaZoneUIModel() { super(FpaZone.class, - new String[]{FpaZone.PROPERTY_START_DATE, FpaZone.PROPERTY_END_DATE}, - new String[]{FpaZoneUI.BINDING_START_DATE_DATE, FpaZoneUI.BINDING_END_DATE_DATE} + FpaZoneUI.BINDING_START_DATE_DATE, FpaZoneUI.BINDING_END_DATE_DATE ); } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/GearCaracteristicUIModel.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/GearCaracteristicUIModel.java index 7f16da6..f2b945a 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/GearCaracteristicUIModel.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/GearCaracteristicUIModel.java @@ -37,12 +37,8 @@ public class GearCaracteristicUIModel extends ContentReferenceUIModel<GearCaract public GearCaracteristicUIModel() { super(GearCaracteristic.class, - new String[]{ - GearCaracteristic.PROPERTY_GEAR_CARACTERISTIC_TYPE, - GearCaracteristic.PROPERTY_UNIT, - }, - new String[]{GearCaracteristic.PROPERTY_GEAR_CARACTERISTIC_TYPE + SUFFIX_SELECTED_ITEM, - GearCaracteristic.PROPERTY_UNIT + SUFFIX_TEXT} + GearCaracteristic.PROPERTY_GEAR_CARACTERISTIC_TYPE + SUFFIX_SELECTED_ITEM, + GearCaracteristic.PROPERTY_UNIT + SUFFIX_TEXT ); } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/GearUIModel.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/GearUIModel.java index d07a3a0..3c9c633 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/GearUIModel.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/GearUIModel.java @@ -65,8 +65,8 @@ public class GearUIModel extends ContentReferenceUIModel<Gear> { public GearUIModel() { super(Gear.class, - new String[]{Gear.PROPERTY_GEAR_CARACTERISTIC}, - new String[]{Gear.PROPERTY_GEAR_CARACTERISTIC + SUFFIX_SELECTED}); + Gear.PROPERTY_GEAR_CARACTERISTIC + SUFFIX_SELECTED + ); } public boolean isGearCaracteristicTabValid() { diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/HarbourUIModel.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/HarbourUIModel.java index 0b2da20..80c65a7 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/HarbourUIModel.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/HarbourUIModel.java @@ -37,18 +37,12 @@ public class HarbourUIModel extends ContentReferenceUIModel<Harbour> { public HarbourUIModel() { super(Harbour.class, - new String[]{Harbour.PROPERTY_NAME, - Harbour.PROPERTY_COUNTRY, - Harbour.PROPERTY_LOCODE, - Harbour.PROPERTY_LATITUDE, - Harbour.PROPERTY_LONGITUDE, - Harbour.PROPERTY_QUADRANT}, - new String[]{HarbourUI.BINDING_COUNTRY_SELECTED_ITEM, - HarbourUI.BINDING_HARBOUR_NAME_TEXT, - HarbourUI.BINDING_LOCODE_TEXT, - HarbourUI.BINDING_COORDINATES_LATITUDE, - HarbourUI.BINDING_COORDINATES_LONGITUDE, - HarbourUI.BINDING_COORDINATES_QUADRANT} + HarbourUI.BINDING_COUNTRY_SELECTED_ITEM, + HarbourUI.BINDING_HARBOUR_NAME_TEXT, + HarbourUI.BINDING_LOCODE_TEXT, + HarbourUI.BINDING_COORDINATES_LATITUDE, + HarbourUI.BINDING_COORDINATES_LONGITUDE, + HarbourUI.BINDING_COORDINATES_QUADRANT ); } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/LengthWeightParameterUIModel.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/LengthWeightParameterUIModel.java index aeeb862..6e94af7 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/LengthWeightParameterUIModel.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/LengthWeightParameterUIModel.java @@ -62,21 +62,23 @@ public class LengthWeightParameterUIModel extends ContentReferenceUIModel<Length private static final long serialVersionUID = 1L; + public static final String[] NATURAL_ID = new String[]{ + LengthWeightParameter.PROPERTY_SEX, + LengthWeightParameter.PROPERTY_OCEAN, + LengthWeightParameter.PROPERTY_SPECIES, + LengthWeightParameter.PROPERTY_START_DATE, + }; + protected boolean generalTabValid; protected boolean otherTabValid; public LengthWeightParameterUIModel() { - super(LengthWeightParameter.class, - null, - new String[]{ - LengthWeightParameter.PROPERTY_SEX, - LengthWeightParameter.PROPERTY_OCEAN, - LengthWeightParameter.PROPERTY_SPECIES, - LengthWeightParameter.PROPERTY_START_DATE, - }, - null - ); + super(LengthWeightParameter.class); + } + + public String[] getNaturalIds() { + return NATURAL_ID; } public boolean isOtherTabValid() { diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/OrganismUIModel.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/OrganismUIModel.java index 66fbfe6..7f75e16 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/OrganismUIModel.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/OrganismUIModel.java @@ -37,8 +37,8 @@ public class OrganismUIModel extends ContentReferenceUIModel<Organism> { public OrganismUIModel() { super(Organism.class, - new String[]{Organism.PROPERTY_COUNTRY, Organism.PROPERTY_DESCRIPTION}, - new String[]{OrganismUI.BINDING_COUNTRY_SELECTED_ITEM, OrganismUI.BINDING_DESCRIPTION_TEXT} + OrganismUI.BINDING_COUNTRY_SELECTED_ITEM, + OrganismUI.BINDING_DESCRIPTION_TEXT ); } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/PersonUIModel.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/PersonUIModel.java index 71d7817..9b1d7bb 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/PersonUIModel.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/PersonUIModel.java @@ -37,24 +37,13 @@ public class PersonUIModel extends ContentReferenceUIModel<Person> { public PersonUIModel() { super(Person.class, - new String[]{ - Person.PROPERTY_CODE, - Person.PROPERTY_LAST_NAME, - Person.PROPERTY_FIRST_NAME, - Person.PROPERTY_CAPTAIN, - Person.PROPERTY_OBSERVER, - Person.PROPERTY_DATA_ENTRY_OPERATOR, - Person.PROPERTY_COUNTRY - }, - new String[]{Person.PROPERTY_CODE}, - new String[]{PersonUI.BINDING_CODE_TEXT, - PersonUI.BINDING_FIRST_NAME_TEXT, - PersonUI.BINDING_LAST_NAME_TEXT, - PersonUI.BINDING_CAPTAIN_SELECTED, - PersonUI.BINDING_OBSERVER_SELECTED, - PersonUI.BINDING_DATA_ENTRY_OPERATOR_SELECTED, - PersonUI.BINDING_COUNTRY_SELECTED_ITEM, - } + PersonUI.BINDING_CODE_TEXT, + PersonUI.BINDING_FIRST_NAME_TEXT, + PersonUI.BINDING_LAST_NAME_TEXT, + PersonUI.BINDING_CAPTAIN_SELECTED, + PersonUI.BINDING_OBSERVER_SELECTED, + PersonUI.BINDING_DATA_ENTRY_OPERATOR_SELECTED, + PersonUI.BINDING_COUNTRY_SELECTED_ITEM ); } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/ProgramUIModel.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/ProgramUIModel.java index c02b20a..7ac29a7 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/ProgramUIModel.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/ProgramUIModel.java @@ -74,32 +74,18 @@ public class ProgramUIModel extends ContentReferenceUIModel<Program> { public ProgramUIModel() { super(Program.class, - new String[]{ - Program.PROPERTY_ORGANISM, - Program.PROPERTY_START_DATE, - Program.PROPERTY_END_DATE, - Program.PROPERTY_DETAILLED_ACTIVITIES_OBSERVATION, - Program.PROPERTY_NON_TARGET_OBSERVATION, - Program.PROPERTY_BAIT_OBSERVATION, - Program.PROPERTY_MAMMALS_OBSERVATION, - Program.PROPERTY_SAMPLES_OBSERVATION, - Program.PROPERTY_OBJECTS_OBSERVATION, - Program.PROPERTY_BIRDS_OBSERVATION, - Program.PROPERTY_TARGET_DISCARDS_OBSERVATION, - Program.PROPERTY_GEAR_TYPE}, - new String[]{ - ProgramUI.BINDING_ORGANISM_SELECTED_ITEM, - ProgramUI.BINDING_START_DATE_DATE, - ProgramUI.BINDING_END_DATE_DATE, - ProgramUI.BINDING_DETAILLED_ACTIVITIES_OBSERVATION_SELECTED_INDEX, - ProgramUI.BINDING_NON_TARGET_OBSERVATION_SELECTED_INDEX, - ProgramUI.BINDING_BAIT_OBSERVATION_SELECTED_INDEX, - ProgramUI.BINDING_MAMMALS_OBSERVATION_SELECTED_INDEX, - ProgramUI.BINDING_SAMPLES_OBSERVATION_SELECTED_INDEX, - ProgramUI.BINDING_OBJECTS_OBSERVATION_SELECTED_INDEX, - ProgramUI.BINDING_BIRDS_OBSERVATION_SELECTED_INDEX, - ProgramUI.BINDING_TARGET_DISCARDS_OBSERVATION_SELECTED_INDEX, - ProgramUI.BINDING_GEAR_TYPE_SELECTED_ITEM} + ProgramUI.BINDING_ORGANISM_SELECTED_ITEM, + ProgramUI.BINDING_START_DATE_DATE, + ProgramUI.BINDING_END_DATE_DATE, + ProgramUI.BINDING_DETAILLED_ACTIVITIES_OBSERVATION_SELECTED_INDEX, + ProgramUI.BINDING_NON_TARGET_OBSERVATION_SELECTED_INDEX, + ProgramUI.BINDING_BAIT_OBSERVATION_SELECTED_INDEX, + ProgramUI.BINDING_MAMMALS_OBSERVATION_SELECTED_INDEX, + ProgramUI.BINDING_SAMPLES_OBSERVATION_SELECTED_INDEX, + ProgramUI.BINDING_OBJECTS_OBSERVATION_SELECTED_INDEX, + ProgramUI.BINDING_BIRDS_OBSERVATION_SELECTED_INDEX, + ProgramUI.BINDING_TARGET_DISCARDS_OBSERVATION_SELECTED_INDEX, + ProgramUI.BINDING_GEAR_TYPE_SELECTED_ITEM ); } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/SpeciesListUIModel.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/SpeciesListUIModel.java index b6041b7..b6f8871 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/SpeciesListUIModel.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/SpeciesListUIModel.java @@ -65,9 +65,7 @@ public class SpeciesListUIModel extends ContentReferenceUIModel<SpeciesList> { public SpeciesListUIModel() { super(SpeciesList.class, - new String[]{SpeciesList.PROPERTY_SPECIES}, - new String[]{SpeciesList.PROPERTY_SPECIES + SUFFIX_SELECTED}, - null + SpeciesList.PROPERTY_SPECIES + SUFFIX_SELECTED ); } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/SpeciesUIModel.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/SpeciesUIModel.java index 49fef78..b149107 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/SpeciesUIModel.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/SpeciesUIModel.java @@ -72,32 +72,19 @@ public class SpeciesUIModel extends ContentReferenceUIModel<Species> { protected boolean otherTabValid; - public SpeciesUIModel() { super(Species.class, - new String[]{Species.PROPERTY_SPECIES_GROUP, - Species.PROPERTY_OCEAN, - Species.PROPERTY_LENGTH_MEASURE_TYPE, - Species.PROPERTY_MIN_LENGTH, - Species.PROPERTY_MAX_LENGTH, - Species.PROPERTY_MIN_WEIGHT, - Species.PROPERTY_MAX_WEIGHT, - Species.PROPERTY_HOME_ID, - Species.PROPERTY_FAO_CODE, - Species.PROPERTY_WORMS_ID, - Species.PROPERTY_SCIENTIFIC_LABEL}, - new String[]{ - Species.PROPERTY_SPECIES_GROUP + SUFFIX_SELECTED_ITEM, - Species.PROPERTY_LENGTH_MEASURE_TYPE + SUFFIX_TEXT, - Species.PROPERTY_MIN_LENGTH + SUFFIX_MODEL, - Species.PROPERTY_MAX_LENGTH + SUFFIX_MODEL, - Species.PROPERTY_MIN_WEIGHT + SUFFIX_MODEL, - Species.PROPERTY_MAX_WEIGHT + SUFFIX_MODEL, - Species.PROPERTY_HOME_ID + SUFFIX_TEXT, - Species.PROPERTY_FAO_CODE + SUFFIX_TEXT, - Species.PROPERTY_WORMS_ID + SUFFIX_TEXT, - Species.PROPERTY_SCIENTIFIC_LABEL + SUFFIX_TEXT, - Species.PROPERTY_OCEAN + SUFFIX_SELECTED} + Species.PROPERTY_SPECIES_GROUP + SUFFIX_SELECTED_ITEM, + Species.PROPERTY_LENGTH_MEASURE_TYPE + SUFFIX_TEXT, + Species.PROPERTY_MIN_LENGTH + SUFFIX_MODEL, + Species.PROPERTY_MAX_LENGTH + SUFFIX_MODEL, + Species.PROPERTY_MIN_WEIGHT + SUFFIX_MODEL, + Species.PROPERTY_MAX_WEIGHT + SUFFIX_MODEL, + Species.PROPERTY_HOME_ID + SUFFIX_TEXT, + Species.PROPERTY_FAO_CODE + SUFFIX_TEXT, + Species.PROPERTY_WORMS_ID + SUFFIX_TEXT, + Species.PROPERTY_SCIENTIFIC_LABEL + SUFFIX_TEXT, + Species.PROPERTY_OCEAN + SUFFIX_SELECTED ); } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/VesselSizeCategoryUIModel.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/VesselSizeCategoryUIModel.java index 2b747d3..148c068 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/VesselSizeCategoryUIModel.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/VesselSizeCategoryUIModel.java @@ -37,13 +37,8 @@ public class VesselSizeCategoryUIModel extends ContentReferenceUIModel<VesselSiz public VesselSizeCategoryUIModel() { super(VesselSizeCategory.class, - new String[]{ - VesselSizeCategory.PROPERTY_GAUGE_LABEL, - VesselSizeCategory.PROPERTY_CAPACITY_LABEL - }, - new String[]{ - VesselSizeCategoryUI.BINDING_CAPACITY_LABEL_TEXT, - VesselSizeCategoryUI.BINDING_GAUGE_LABEL_TEXT} + VesselSizeCategoryUI.BINDING_CAPACITY_LABEL_TEXT, + VesselSizeCategoryUI.BINDING_GAUGE_LABEL_TEXT ); } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/VesselUIModel.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/VesselUIModel.java index 6104995..3d3ee87 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/VesselUIModel.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/VesselUIModel.java @@ -77,29 +77,17 @@ public class VesselUIModel extends ContentReferenceUIModel<Vessel> { public VesselUIModel() { super(Vessel.class, - new String[]{ - Vessel.PROPERTY_VESSEL_TYPE, - Vessel.PROPERTY_VESSEL_SIZE_CATEGORY, - Vessel.PROPERTY_FLAG_COUNTRY, - Vessel.PROPERTY_KEEL_CODE, - Vessel.PROPERTY_FLEET_COUNTRY, - Vessel.PROPERTY_YEAR_SERVICE, - Vessel.PROPERTY_LENGTH, - Vessel.PROPERTY_CAPACITY, - Vessel.PROPERTY_POWER, - Vessel.PROPERTY_SEARCH_MAXIMUM, - Vessel.PROPERTY_CHANGE_DATE}, - new String[]{VesselUI.BINDING_VESSEL_TYPE_SELECTED_ITEM, - VesselUI.BINDING_VESSEL_SIZE_CATEGORY_SELECTED_ITEM, - VesselUI.BINDING_FLAG_COUNTRY_SELECTED_ITEM, - VesselUI.BINDING_KEEL_CODE_MODEL, - VesselUI.BINDING_FLEET_COUNTRY_MODEL, - VesselUI.BINDING_YEAR_SERVICE_MODEL, - VesselUI.BINDING_LENGTH_MODEL, - VesselUI.BINDING_CAPACITY_MODEL, - VesselUI.BINDING_POWER_MODEL, - VesselUI.BINDING_SEARCH_MAXIMUM_MODEL, - VesselUI.BINDING_CHANGE_DATE_DATE} + VesselUI.BINDING_VESSEL_TYPE_SELECTED_ITEM, + VesselUI.BINDING_VESSEL_SIZE_CATEGORY_SELECTED_ITEM, + VesselUI.BINDING_FLAG_COUNTRY_SELECTED_ITEM, + VesselUI.BINDING_KEEL_CODE_MODEL, + VesselUI.BINDING_FLEET_COUNTRY_MODEL, + VesselUI.BINDING_YEAR_SERVICE_MODEL, + VesselUI.BINDING_LENGTH_MODEL, + VesselUI.BINDING_CAPACITY_MODEL, + VesselUI.BINDING_POWER_MODEL, + VesselUI.BINDING_SEARCH_MAXIMUM_MODEL, + VesselUI.BINDING_CHANGE_DATE_DATE ); } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/longline/BaitSettingStatusUIModel.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/longline/BaitSettingStatusUIModel.java index 098b373..0aab29d 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/longline/BaitSettingStatusUIModel.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/longline/BaitSettingStatusUIModel.java @@ -36,9 +36,7 @@ public class BaitSettingStatusUIModel extends ContentReferenceUIModel<BaitSettin private static final long serialVersionUID = 1L; public BaitSettingStatusUIModel() { - super(BaitSettingStatus.class - - ); + super(BaitSettingStatus.class); } } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/longline/MaturityStatusUIModel.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/longline/MaturityStatusUIModel.java index 7bfb4c2..8830a7c 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/longline/MaturityStatusUIModel.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/longline/MaturityStatusUIModel.java @@ -37,8 +37,8 @@ public class MaturityStatusUIModel extends ContentReferenceUIModel<MaturityStatu public MaturityStatusUIModel() { super(MaturityStatus.class, - new String[]{MaturityStatus.PROPERTY_LOWER_VALUE, MaturityStatus.PROPERTY_UPPER_VALUE}, - new String[]{MaturityStatusUI.BINDING_LOWER_VALUE_TEXT, MaturityStatusUI.BINDING_UPPER_VALUE_TEXT} + MaturityStatusUI.BINDING_LOWER_VALUE_TEXT, + MaturityStatusUI.BINDING_UPPER_VALUE_TEXT ); } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/longline/SensorBrandUIModel.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/longline/SensorBrandUIModel.java index 4be8e0b..6771bf1 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/longline/SensorBrandUIModel.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/longline/SensorBrandUIModel.java @@ -37,8 +37,7 @@ public class SensorBrandUIModel extends ContentReferenceUIModel<SensorBrand> { public SensorBrandUIModel() { super(SensorBrand.class, - new String[]{SensorBrand.PROPERTY_BRAND_NAME}, - new String[]{SensorBrandUI.BINDING_BRAND_NAME_TEXT} + SensorBrandUI.BINDING_BRAND_NAME_TEXT ); } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/seine/ObservedSystemUIModel.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/seine/ObservedSystemUIModel.java index e6ed8da..f223bb2 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/seine/ObservedSystemUIModel.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/seine/ObservedSystemUIModel.java @@ -37,8 +37,7 @@ public class ObservedSystemUIModel extends ContentReferenceUIModel<ObservedSyste public ObservedSystemUIModel() { super(ObservedSystem.class, - new String[]{ObservedSystem.PROPERTY_SCHOOL_TYPE}, - new String[]{ObservedSystemUI.BINDING_SCHOOL_TYPE_SELECTED_ITEM} + ObservedSystemUI.BINDING_SCHOOL_TYPE_SELECTED_ITEM ); } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/seine/WeightCategoryUIModel.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/seine/WeightCategoryUIModel.java index 4cd1290..2e8cdd3 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/seine/WeightCategoryUIModel.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/seine/WeightCategoryUIModel.java @@ -35,12 +35,18 @@ public class WeightCategoryUIModel extends ContentReferenceUIModel<WeightCategor private static final long serialVersionUID = 1L; + public static final String[] NATURAL_ID = new String[]{ + WeightCategory.PROPERTY_CODE, + WeightCategory.PROPERTY_SPECIES + }; + public WeightCategoryUIModel() { super(WeightCategory.class, - new String[]{WeightCategory.PROPERTY_CODE, WeightCategory.PROPERTY_SPECIES}, - new String[]{WeightCategory.PROPERTY_CODE, WeightCategory.PROPERTY_SPECIES}, - new String[]{WeightCategoryUI.BINDING_CODE_TEXT, WeightCategoryUI.BINDING_SPECIES_SELECTED_ITEM} - ); + WeightCategoryUI.BINDING_CODE_TEXT, WeightCategoryUI.BINDING_SPECIES_SELECTED_ITEM); } + @Override + public String[] getNaturalIds() { + return NATURAL_ID; + } } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/seine/WindUIModel.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/seine/WindUIModel.java index b0d50ea..cc74252 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/seine/WindUIModel.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/ref/impl/seine/WindUIModel.java @@ -37,7 +37,6 @@ public class WindUIModel extends ContentReferenceUIModel<Wind> { public WindUIModel() { super(Wind.class, - new String[]{Wind.PROPERTY_SPEED_RANGE, Wind.PROPERTY_WAVE_HEIGHT}, new String[]{WindUI.BINDING_SPEED_RANGE_TEXT, WindUI.BINDING_WAVE_HEIGHT_TEXT} ); } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
participants (1)
-
codelutin.com scm