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>.