branch feature/7017 updated (9959d33 -> 7354d7a)
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 9959d33 debut de revue des ecrans de type tableau (refs #7017) new 7354d7a reorganisation des controleurs des ecrans de type tableaux + correction des sauvegardes des echantillons seine 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 7354d7a266975f64deb74a9001a5713d7c6c98ab Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat May 2 19:01:14 2015 +0200 reorganisation des controleurs des ecrans de type tableaux + correction des sauvegardes des echantillons seine Summary of changes: .../observe/services/AbstractObserveService.java | 42 ++- .../data/longline/CatchLonglineServiceImpl.java | 18 +- .../GearUseFeaturesLonglineServiceImpl.java | 8 +- .../data/longline/TripLonglineServiceImpl.java | 2 +- .../seine/GearUseFeaturesSeineServiceImpl.java | 11 +- .../data/seine/NonTargetCatchServiceImpl.java | 10 +- .../data/seine/NonTargetLengthService.java | 17 - .../data/seine/NonTargetLengthServiceImpl.java | 77 ---- .../data/seine/NonTargetSampleService.java | 6 +- .../data/seine/NonTargetSampleServiceImpl.java | 66 +++- .../data/seine/TargetCatchServiceImpl.java | 6 +- .../services/data/seine/TargetLengthService.java | 17 - .../data/seine/TargetLengthServiceImpl.java | 96 ----- .../services/data/seine/TargetSampleService.java | 4 +- .../data/seine/TargetSampleServiceImpl.java | 91 ++++- .../services/data/seine/TripSeineServiceImpl.java | 2 +- .../impl/longline/BaitsCompositionUIHandler.java | 66 ++-- .../longline/BranchlinesCompositionUIHandler.java | 27 +- .../impl/longline/CatchLonglineUIHandler.java | 420 ++++++++++----------- .../table/impl/longline/EncounterUIHandler.java | 65 ++-- .../longline/FloatlinesCompositionUIHandler.java | 64 ++-- .../longline/GearUseFeaturesLonglineUIHandler.java | 300 +++++++-------- .../impl/longline/HooksCompositionUIHandler.java | 69 ++-- .../table/impl/longline/SensorUsedUIHandler.java | 62 +-- .../content/table/impl/longline/TdrUIHandler.java | 188 ++++----- .../impl/seine/GearUseFeaturesSeineUIHandler.java | 305 ++++++++------- .../table/impl/seine/NonTargetCatchUIHandler.java | 51 ++- .../table/impl/seine/NonTargetSampleUIHandler.java | 163 ++++---- .../impl/seine/ObjectObservedSpeciesUIHandler.java | 50 +-- .../impl/seine/ObjectSchoolEstimateUIHandler.java | 51 +-- .../table/impl/seine/SchoolEstimateUIHandler.java | 85 +++-- .../table/impl/seine/TargetCatchUIHandler.java | 100 ++--- .../impl/seine/TargetDiscardCatchUIHandler.java | 130 +++---- .../table/impl/seine/TargetSampleUIHandler.java | 250 ++++++------ 34 files changed, 1429 insertions(+), 1490 deletions(-) delete mode 100644 observe-services/src/main/java/fr/ird/observe/services/data/seine/NonTargetLengthService.java delete mode 100644 observe-services/src/main/java/fr/ird/observe/services/data/seine/NonTargetLengthServiceImpl.java delete mode 100644 observe-services/src/main/java/fr/ird/observe/services/data/seine/TargetLengthService.java delete mode 100644 observe-services/src/main/java/fr/ird/observe/services/data/seine/TargetLengthServiceImpl.java -- 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 7354d7a266975f64deb74a9001a5713d7c6c98ab Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat May 2 19:01:14 2015 +0200 reorganisation des controleurs des ecrans de type tableaux + correction des sauvegardes des echantillons seine --- .../observe/services/AbstractObserveService.java | 42 ++- .../data/longline/CatchLonglineServiceImpl.java | 18 +- .../GearUseFeaturesLonglineServiceImpl.java | 8 +- .../data/longline/TripLonglineServiceImpl.java | 2 +- .../seine/GearUseFeaturesSeineServiceImpl.java | 11 +- .../data/seine/NonTargetCatchServiceImpl.java | 10 +- .../data/seine/NonTargetLengthService.java | 17 - .../data/seine/NonTargetLengthServiceImpl.java | 77 ---- .../data/seine/NonTargetSampleService.java | 6 +- .../data/seine/NonTargetSampleServiceImpl.java | 66 +++- .../data/seine/TargetCatchServiceImpl.java | 6 +- .../services/data/seine/TargetLengthService.java | 17 - .../data/seine/TargetLengthServiceImpl.java | 96 ----- .../services/data/seine/TargetSampleService.java | 4 +- .../data/seine/TargetSampleServiceImpl.java | 91 ++++- .../services/data/seine/TripSeineServiceImpl.java | 2 +- .../impl/longline/BaitsCompositionUIHandler.java | 66 ++-- .../longline/BranchlinesCompositionUIHandler.java | 27 +- .../impl/longline/CatchLonglineUIHandler.java | 420 ++++++++++----------- .../table/impl/longline/EncounterUIHandler.java | 65 ++-- .../longline/FloatlinesCompositionUIHandler.java | 64 ++-- .../longline/GearUseFeaturesLonglineUIHandler.java | 300 +++++++-------- .../impl/longline/HooksCompositionUIHandler.java | 69 ++-- .../table/impl/longline/SensorUsedUIHandler.java | 62 +-- .../content/table/impl/longline/TdrUIHandler.java | 188 ++++----- .../impl/seine/GearUseFeaturesSeineUIHandler.java | 305 ++++++++------- .../table/impl/seine/NonTargetCatchUIHandler.java | 51 ++- .../table/impl/seine/NonTargetSampleUIHandler.java | 163 ++++---- .../impl/seine/ObjectObservedSpeciesUIHandler.java | 50 +-- .../impl/seine/ObjectSchoolEstimateUIHandler.java | 51 +-- .../table/impl/seine/SchoolEstimateUIHandler.java | 85 +++-- .../table/impl/seine/TargetCatchUIHandler.java | 100 ++--- .../impl/seine/TargetDiscardCatchUIHandler.java | 130 +++---- .../table/impl/seine/TargetSampleUIHandler.java | 250 ++++++------ 34 files changed, 1429 insertions(+), 1490 deletions(-) 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 9fa8dc1..127fd89 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 @@ -264,7 +264,8 @@ public abstract class AbstractObserveService implements ObserveService { public abstract E onCreate(P parent, E toCreate); - public abstract E onUpdate(P parentBean, E toSave, E beanToSave); + public abstract E onUpdate(P parent, E toSave, E beanToSave); + } public <P extends TopiaEntity, E extends TopiaEntity> void doDelete(String parentId, String idToDelete, DeleteAction<P, E> deleteAction) { @@ -315,9 +316,7 @@ public abstract class AbstractObserveService implements ObserveService { saveCollectionAction.prepareSave(parentToSave, childrenToSave); - P parentSaved = getDao(saveCollectionAction.parentClass).findByTopiaId(parentToSave.getTopiaId()); - - saveCollectionAction.onUpdateParent(parentToSave, parentSaved); + P parentSaved = saveCollectionAction.onUpdateParent(parentToSave); List<E> oldChilds = new ArrayList<E>(saveCollectionAction.listUpdator.getChilds(parentSaved)); @@ -340,11 +339,11 @@ public abstract class AbstractObserveService implements ObserveService { } saveCollectionAction.listUpdator.addToList(parentSaved, childSaved); + } // on donne la main aux implantations pour faire des traitements supplémentaires - saveCollectionAction.onUpdateFinalize(parentToSave, oldChilds); - + saveCollectionAction.onUpdateFinalize(parentSaved, oldChilds); } @@ -361,8 +360,11 @@ public abstract class AbstractObserveService implements ObserveService { protected final TopiaEntityBinder<E> childBinder; - public SaveCollectionAction(Class<P> parentClass, Class<E> entityClass, EntityListUpdator<P, E> listUpdator, - TopiaEntityBinder<P> parentBinder, TopiaEntityBinder<E> childBinder) { + public SaveCollectionAction(Class<P> parentClass, + Class<E> entityClass, + EntityListUpdator<P, E> listUpdator, + TopiaEntityBinder<P> parentBinder, + TopiaEntityBinder<E> childBinder) { this.parentClass = parentClass; this.entityClass = entityClass; this.listUpdator = listUpdator; @@ -370,18 +372,22 @@ public abstract class AbstractObserveService implements ObserveService { this.childBinder = childBinder; } - public void prepareSave(P parent, Collection<E> toSaves) { + public void prepareSave(P parentToSave, Collection<E> toSaves) { // par defaut, rien de specifique a faire avant de faire la sauvegarde } - public void onUpdateFinalize(P parent, Collection<E> oldChilds) throws TopiaException { + public void onUpdateFinalize(P parentSaved, Collection<E> oldChilds) throws TopiaException { // par défaut, rien à faire après la sauvegarde de la liste } - public P onUpdateParent(P parentToSave, P parentSaved) { + public P onUpdateParent(P parentToSave) { + TopiaDAO<P> dao = getDao(parentClass); + + P parentSaved = dao.findByTopiaId(parentToSave.getTopiaId()); parentBinder.copyExcluding(parentToSave, parentSaved, listUpdator.getPropertyName()); - parentSaved = getDao(parentClass).update(parentSaved); + parentSaved = dao.update(parentSaved); + return parentSaved; } @@ -390,20 +396,20 @@ public abstract class AbstractObserveService implements ObserveService { E childCreated = getDao(entityClass).create(); childBinder.load(childToCreate, childCreated, false); + return childCreated; } - public E onUpdateChild(E childToSave) { + public E onUpdateChild(E childToUpdate) { TopiaDAO<E> dao = getDao(entityClass); - E childSaved = dao.findByTopiaId(childToSave.getTopiaId()); - - childBinder.load(childToSave, childSaved, true); - childSaved = dao.update(childSaved); + E childUpdated = dao.findByTopiaId(childToUpdate.getTopiaId()); + childBinder.load(childToUpdate, childUpdated, true); + childUpdated = dao.update(childUpdated); - return childSaved; + return childUpdated; } diff --git a/observe-services/src/main/java/fr/ird/observe/services/data/longline/CatchLonglineServiceImpl.java b/observe-services/src/main/java/fr/ird/observe/services/data/longline/CatchLonglineServiceImpl.java index 2f0c60a..361700e 100644 --- a/observe-services/src/main/java/fr/ird/observe/services/data/longline/CatchLonglineServiceImpl.java +++ b/observe-services/src/main/java/fr/ird/observe/services/data/longline/CatchLonglineServiceImpl.java @@ -94,20 +94,20 @@ public class CatchLonglineServiceImpl extends AbstractObserveService implements @Override public CatchLongline onCreateChild(CatchLongline childToCreate) { - CatchLongline createdChild = super.onCreateChild(childToCreate); - saveSizeMeasures(childToCreate.getSizeMeasure(), createdChild); - saveWeightMeasures(childToCreate.getWeightMeasure(), createdChild); - return createdChild; + CatchLongline childCreated = super.onCreateChild(childToCreate); + saveSizeMeasures(childToCreate.getSizeMeasure(), childCreated); + saveWeightMeasures(childToCreate.getWeightMeasure(), childCreated); + return childCreated; } @Override - public CatchLongline onUpdateChild(CatchLongline childToSave) { + public CatchLongline onUpdateChild(CatchLongline childToUpdate) { - CatchLongline childSaved = super.onUpdateChild(childToSave); - saveSizeMeasures(childToSave.getSizeMeasure(), childSaved); - saveWeightMeasures(childToSave.getWeightMeasure(), childSaved); - return childSaved; + CatchLongline childUpdated = super.onUpdateChild(childToUpdate); + saveSizeMeasures(childToUpdate.getSizeMeasure(), childUpdated); + saveWeightMeasures(childToUpdate.getWeightMeasure(), childUpdated); + return childUpdated; } diff --git a/observe-services/src/main/java/fr/ird/observe/services/data/longline/GearUseFeaturesLonglineServiceImpl.java b/observe-services/src/main/java/fr/ird/observe/services/data/longline/GearUseFeaturesLonglineServiceImpl.java index 541605d..9013750 100644 --- a/observe-services/src/main/java/fr/ird/observe/services/data/longline/GearUseFeaturesLonglineServiceImpl.java +++ b/observe-services/src/main/java/fr/ird/observe/services/data/longline/GearUseFeaturesLonglineServiceImpl.java @@ -153,10 +153,10 @@ public class GearUseFeaturesLonglineServiceImpl extends AbstractObserveService i } @Override - public GearUseFeaturesLongline onUpdateChild(GearUseFeaturesLongline childToSave) { - GearUseFeaturesLongline childSaved = super.onUpdateChild(childToSave); - saveMeasurement(childToSave.getGearUseFeaturesMeasurement(), childSaved); - return childSaved; + public GearUseFeaturesLongline onUpdateChild(GearUseFeaturesLongline childToUpdate) { + GearUseFeaturesLongline childUpdated = super.onUpdateChild(childToUpdate); + saveMeasurement(childToUpdate.getGearUseFeaturesMeasurement(), childUpdated); + return childUpdated; } protected void saveMeasurement(List<GearUseFeaturesMeasurementLongline> measurementsToSave, GearUseFeaturesLongline childSaved) { diff --git a/observe-services/src/main/java/fr/ird/observe/services/data/longline/TripLonglineServiceImpl.java b/observe-services/src/main/java/fr/ird/observe/services/data/longline/TripLonglineServiceImpl.java index 69f9044..6b6df6e 100644 --- a/observe-services/src/main/java/fr/ird/observe/services/data/longline/TripLonglineServiceImpl.java +++ b/observe-services/src/main/java/fr/ird/observe/services/data/longline/TripLonglineServiceImpl.java @@ -107,7 +107,7 @@ public class TripLonglineServiceImpl extends AbstractObserveService implements T } @Override - public TripLongline onUpdate(Program parentBean, TripLongline toUpdate, TripLongline updated) { + public TripLongline onUpdate(Program parent, TripLongline toUpdate, TripLongline updated) { copyExcluding(TripLongline.class, BinderService.EDIT, toUpdate, updated, TripLongline.PROPERTY_ACTIVITY_LONGLINE); return updated; } diff --git a/observe-services/src/main/java/fr/ird/observe/services/data/seine/GearUseFeaturesSeineServiceImpl.java b/observe-services/src/main/java/fr/ird/observe/services/data/seine/GearUseFeaturesSeineServiceImpl.java index 49d0f1c..6118209 100644 --- a/observe-services/src/main/java/fr/ird/observe/services/data/seine/GearUseFeaturesSeineServiceImpl.java +++ b/observe-services/src/main/java/fr/ird/observe/services/data/seine/GearUseFeaturesSeineServiceImpl.java @@ -142,6 +142,7 @@ public class GearUseFeaturesSeineServiceImpl extends AbstractObserveService impl @Override public GearUseFeaturesSeine onCreateChild(GearUseFeaturesSeine childToCreate) { + GearUseFeaturesSeine childCreated = getDao(entityClass).create( GearUseFeaturesSeine.PROPERTY_GEAR, childToCreate.getGear(), GearUseFeaturesSeine.PROPERTY_NUMBER, childToCreate.getNumber()); @@ -152,10 +153,12 @@ public class GearUseFeaturesSeineServiceImpl extends AbstractObserveService impl } @Override - public GearUseFeaturesSeine onUpdateChild(GearUseFeaturesSeine childToSave) { - GearUseFeaturesSeine childSaved = super.onUpdateChild(childToSave); - saveMeasurement(childToSave.getGearUseFeaturesMeasurement(), childSaved); - return childSaved; + public GearUseFeaturesSeine onUpdateChild(GearUseFeaturesSeine childToUpdate) { + + GearUseFeaturesSeine childUpdated = super.onUpdateChild(childToUpdate); + saveMeasurement(childToUpdate.getGearUseFeaturesMeasurement(), childUpdated); + return childUpdated; + } protected void saveMeasurement(List<GearUseFeaturesMeasurementSeine> measurementsToSave, GearUseFeaturesSeine childSaved) { diff --git a/observe-services/src/main/java/fr/ird/observe/services/data/seine/NonTargetCatchServiceImpl.java b/observe-services/src/main/java/fr/ird/observe/services/data/seine/NonTargetCatchServiceImpl.java index 51d5711..b77ea2f 100644 --- a/observe-services/src/main/java/fr/ird/observe/services/data/seine/NonTargetCatchServiceImpl.java +++ b/observe-services/src/main/java/fr/ird/observe/services/data/seine/NonTargetCatchServiceImpl.java @@ -65,7 +65,7 @@ public class NonTargetCatchServiceImpl extends AbstractObserveService implements SetSeine.class, NonTargetCatch.class, getListUpdator(), parentBinder, childbinder) { @Override - public void prepareSave(SetSeine parent, Collection<NonTargetCatch> toSaves) { + public void prepareSave(SetSeine parentToSave, Collection<NonTargetCatch> toSaves) { // mise a jour de la propriete nonTargetDiscarded @@ -77,11 +77,13 @@ public class NonTargetCatchServiceImpl extends AbstractObserveService implements break; } } - parent.setNonTargetDiscarded(hasRejet); + + parentToSave.setNonTargetDiscarded(hasRejet); + } @Override - public void onUpdateFinalize(SetSeine parent, Collection<NonTargetCatch> oldChilds) throws TopiaException { + public void onUpdateFinalize(SetSeine parentSaved, Collection<NonTargetCatch> oldChilds) throws TopiaException { if (CollectionUtils.isNotEmpty(nonTargetLengthsToDelete)) { @@ -91,7 +93,7 @@ public class NonTargetCatchServiceImpl extends AbstractObserveService implements log.info("Will remove " + nonTargetLengthsToDelete.size() + " obsolete nonTargetSample(s)."); } - NonTargetSample echantillon = parent.getNonTargetSample().get(0); + NonTargetSample echantillon = parentSaved.getNonTargetSample().get(0); // on supprime les echantillons obsoletes echantillon.getNonTargetLength().removeAll(nonTargetLengthsToDelete); diff --git a/observe-services/src/main/java/fr/ird/observe/services/data/seine/NonTargetLengthService.java b/observe-services/src/main/java/fr/ird/observe/services/data/seine/NonTargetLengthService.java deleted file mode 100644 index 1423c61..0000000 --- a/observe-services/src/main/java/fr/ird/observe/services/data/seine/NonTargetLengthService.java +++ /dev/null @@ -1,17 +0,0 @@ -package fr.ird.observe.services.data.seine; - -import fr.ird.observe.entities.seine.NonTargetSample; -import fr.ird.observe.services.Commit; -import fr.ird.observe.services.ObserveService; - -/** - * @author Sylvain Bavencoff - bavencoff@codelutin.com - */ -public interface NonTargetLengthService extends ObserveService { - - NonTargetSample loadForEdit(String setId); - - @Commit - void save(NonTargetSample parent); - -} diff --git a/observe-services/src/main/java/fr/ird/observe/services/data/seine/NonTargetLengthServiceImpl.java b/observe-services/src/main/java/fr/ird/observe/services/data/seine/NonTargetLengthServiceImpl.java deleted file mode 100644 index a70b69e..0000000 --- a/observe-services/src/main/java/fr/ird/observe/services/data/seine/NonTargetLengthServiceImpl.java +++ /dev/null @@ -1,77 +0,0 @@ -package fr.ird.observe.services.data.seine; - -import fr.ird.observe.BinderService; -import fr.ird.observe.entities.seine.NonTargetLength; -import fr.ird.observe.entities.seine.NonTargetSample; -import fr.ird.observe.entities.seine.SetSeine; -import fr.ird.observe.services.AbstractObserveService; -import org.nuiton.topia.persistence.TopiaDAO; -import org.nuiton.topia.persistence.util.EntityListUpdator; -import org.nuiton.topia.persistence.util.TopiaEntityBinder; - -import java.util.List; - -/** - * @author Sylvain Bavencoff - bavencoff@codelutin.com - */ -public class NonTargetLengthServiceImpl extends AbstractObserveService implements NonTargetLengthService { - - @Override - public NonTargetSample loadForEdit(String setId) { - - SetSeine setSeine = findByTopiaId(SetSeine.class, setId); - - NonTargetSample toLoad; - - if (setSeine.isNonTargetSampleEmpty()) { - - toLoad = null; - - } else { - - List<NonTargetSample> nonTargetSamples = setSeine.getNonTargetSample(); - toLoad = nonTargetSamples.get(0); - - } - - NonTargetSample loaded = getDao(NonTargetSample.class).newInstance(); - - if (toLoad != null) { - - copyExcluding(NonTargetSample.class, BinderService.EDIT_NON_TARGET_LENGTH, toLoad, loaded, NonTargetSample.PROPERTY_NON_TARGET_LENGTH); - - if (!toLoad.isNonTargetLengthEmpty()) { - - TopiaDAO<NonTargetLength> dao = getDao(NonTargetLength.class); - TopiaEntityBinder<NonTargetLength> binder = getBinder(NonTargetLength.class, BinderService.EDIT); - - for (NonTargetLength childToLoad : toLoad.getNonTargetLength()) { - - NonTargetLength childLoaded = dao.newInstance(); - binder.load(childToLoad, childLoaded, true); - loaded.addNonTargetLength(childLoaded); - - } - } - } - - return loaded; - } - - @Override - public void save(NonTargetSample parent) { - - TopiaEntityBinder<NonTargetSample> parentBinder = getBinder(NonTargetSample.class, BinderService.EDIT_NON_TARGET_LENGTH); - TopiaEntityBinder<NonTargetLength> childbinder = getBinder(NonTargetLength.class, BinderService.EDIT); - - doSaveList(parent, new SaveCollectionAction<NonTargetSample, NonTargetLength>( - NonTargetSample.class, NonTargetLength.class, getListUpdator(), parentBinder, childbinder)); - } - - protected EntityListUpdator<NonTargetSample, NonTargetLength> getListUpdator() { - return EntityListUpdator.newEntityListUpdator( - NonTargetSample.class, - NonTargetLength.class, - NonTargetSample.PROPERTY_NON_TARGET_LENGTH); - } -} diff --git a/observe-services/src/main/java/fr/ird/observe/services/data/seine/NonTargetSampleService.java b/observe-services/src/main/java/fr/ird/observe/services/data/seine/NonTargetSampleService.java index e433ab6..077c23c 100644 --- a/observe-services/src/main/java/fr/ird/observe/services/data/seine/NonTargetSampleService.java +++ b/observe-services/src/main/java/fr/ird/observe/services/data/seine/NonTargetSampleService.java @@ -19,16 +19,16 @@ public interface NonTargetSampleService extends ObserveService { List<Species> getAvailableSpeciesForNonTargetSample(String setSeineId); - NonTargetSample getNonTargetSample(String setSeineId); + NonTargetSample loadForEdit(String setSeineId); boolean canUseNonTargetSample(String setSeineId); List<NonTargetLength> getObsoleteNonTargetLengths(String setSeineId, Set<String> speciesIdsUsed); @Commit - String save(String setId, NonTargetSample editBean); + String save(String setSeineId, NonTargetSample nonTargetSampleToSave); @Commit - void delete(String setId, NonTargetSample editBean); + void delete(String setSeineId, NonTargetSample nonTargetSampleToDelete); } diff --git a/observe-services/src/main/java/fr/ird/observe/services/data/seine/NonTargetSampleServiceImpl.java b/observe-services/src/main/java/fr/ird/observe/services/data/seine/NonTargetSampleServiceImpl.java index d7a0983..caec214 100644 --- a/observe-services/src/main/java/fr/ird/observe/services/data/seine/NonTargetSampleServiceImpl.java +++ b/observe-services/src/main/java/fr/ird/observe/services/data/seine/NonTargetSampleServiceImpl.java @@ -1,6 +1,8 @@ package fr.ird.observe.services.data.seine; +import com.google.common.collect.Lists; import fr.ird.observe.BinderService; +import fr.ird.observe.entities.Entities; import fr.ird.observe.entities.referentiel.Species; import fr.ird.observe.entities.seine.NonTargetCatch; import fr.ird.observe.entities.seine.NonTargetLength; @@ -8,6 +10,7 @@ import fr.ird.observe.entities.seine.NonTargetSample; import fr.ird.observe.entities.seine.NonTargetSampleDAO; import fr.ird.observe.entities.seine.SetSeine; import fr.ird.observe.services.AbstractObserveService; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.topia.persistence.TopiaDAO; @@ -59,7 +62,7 @@ public class NonTargetSampleServiceImpl extends AbstractObserveService implement } @Override - public NonTargetSample getNonTargetSample(String setSeineId) { + public NonTargetSample loadForEdit(String setSeineId) { SetSeine setSeine = findByTopiaId(SetSeine.class, setSeineId); @@ -76,7 +79,7 @@ public class NonTargetSampleServiceImpl extends AbstractObserveService implement } - NonTargetSample loaded = getDao().newInstance(); + NonTargetSample loaded = getDao(NonTargetSample.class).newInstance(); if (toLoad != null) { @@ -97,9 +100,7 @@ public class NonTargetSampleServiceImpl extends AbstractObserveService implement } } - return loaded; - } @Override @@ -111,7 +112,7 @@ public class NonTargetSampleServiceImpl extends AbstractObserveService implement } @Override - public List<NonTargetLength> getObsoleteNonTargetLengths(String setSeineId, Set<String> speciessUsed) { + public List<NonTargetLength> getObsoleteNonTargetLengths(String setSeineId, Set<String> speciesIdsUsed) { SetSeine setSeine = findByTopiaId(SetSeine.class, setSeineId); @@ -126,7 +127,7 @@ public class NonTargetSampleServiceImpl extends AbstractObserveService implement for (NonTargetLength taille : nonTargetSample.getNonTargetLength()) { Species species = taille.getSpecies(); - if (!speciessUsed.contains(species.getTopiaId())) { + if (!speciesIdsUsed.contains(species.getTopiaId())) { // l'espèce n'existe plus dans les rejet faune, on doit le supprimer nonTargetLengthsToDelete.add(taille); @@ -147,9 +148,9 @@ public class NonTargetSampleServiceImpl extends AbstractObserveService implement } @Override - public String save(String setSeineId, NonTargetSample toSave) { + public String save(String setSeineId, NonTargetSample nonTargetSampleToSave) { - String savedId = doSave(setSeineId, toSave, new SaveAction<SetSeine, NonTargetSample>(SetSeine.class, NonTargetSample.class) { + String savedId = doSave(setSeineId, nonTargetSampleToSave, new SaveAction<SetSeine, NonTargetSample>(SetSeine.class, NonTargetSample.class) { @Override public NonTargetSample onCreate(SetSeine parent, NonTargetSample toCreate) { @@ -158,19 +159,62 @@ public class NonTargetSampleServiceImpl extends AbstractObserveService implement NonTargetSample created = dao.create(); copyExcluding(NonTargetSample.class, BinderService.EDIT, toCreate, created, NonTargetSample.PROPERTY_NON_TARGET_LENGTH); parent.addNonTargetSample(created); + + saveTargetLengths(toCreate.getNonTargetLength(), created); + dao.update(created); return created; } @Override - public NonTargetSample onUpdate(SetSeine parentBean, NonTargetSample toUpdate, NonTargetSample updated) { + public NonTargetSample onUpdate(SetSeine parent, NonTargetSample toUpdate, NonTargetSample updated) { copyExcluding(NonTargetSample.class, BinderService.EDIT, toUpdate, updated, NonTargetSample.PROPERTY_NON_TARGET_LENGTH); + + saveTargetLengths(toUpdate.getNonTargetLength(), updated); + getDao().update(updated); return updated; } + + protected void saveTargetLengths(Collection<NonTargetLength> nonTargetLengthsToSave, NonTargetSample childSaved) { + + List<NonTargetLength> nonTargetLengthsSaved = Lists.newArrayList(); + + if (CollectionUtils.isNotEmpty(nonTargetLengthsToSave)) { + + TopiaDAO<NonTargetLength> dao = getDao(NonTargetLength.class); + TopiaEntityBinder<NonTargetLength> binder = getBinder(NonTargetLength.class, BinderService.EDIT); + + for (NonTargetLength nonTargetLengthToSave : nonTargetLengthsToSave) { + + NonTargetLength nonTargetLengthSaved; + + if (Entities.isNew(nonTargetLengthToSave)) { + + nonTargetLengthSaved = dao.create(); + binder.load(nonTargetLengthToSave, nonTargetLengthSaved, false); + + } else { + + nonTargetLengthSaved = dao.findByTopiaId(nonTargetLengthToSave.getTopiaId()); + binder.load(nonTargetLengthToSave, nonTargetLengthSaved, true); + + } + + nonTargetLengthsSaved.add(nonTargetLengthSaved); + + } + + } + + childSaved.clearNonTargetLength(); + childSaved.addAllNonTargetLength(nonTargetLengthsSaved); + + } + }); return savedId; @@ -178,9 +222,9 @@ public class NonTargetSampleServiceImpl extends AbstractObserveService implement } @Override - public void delete(String setId, NonTargetSample toDelete) { + public void delete(String setSeineId, NonTargetSample nonTargetSampleToDelete) { - doDelete(setId, toDelete.getTopiaId(), new DeleteAction<SetSeine, NonTargetSample>(SetSeine.class, NonTargetSample.class) { + doDelete(setSeineId, nonTargetSampleToDelete.getTopiaId(), new DeleteAction<SetSeine, NonTargetSample>(SetSeine.class, NonTargetSample.class) { @Override public void onDelete(SetSeine parent, NonTargetSample toDelete) { diff --git a/observe-services/src/main/java/fr/ird/observe/services/data/seine/TargetCatchServiceImpl.java b/observe-services/src/main/java/fr/ird/observe/services/data/seine/TargetCatchServiceImpl.java index e2155d1..f8d00ee 100644 --- a/observe-services/src/main/java/fr/ird/observe/services/data/seine/TargetCatchServiceImpl.java +++ b/observe-services/src/main/java/fr/ird/observe/services/data/seine/TargetCatchServiceImpl.java @@ -114,7 +114,7 @@ public class TargetCatchServiceImpl extends AbstractObserveService implements Ta SetSeine.class, TargetCatch.class, getListUpdator(), parentBinder, childBinder) { @Override - public void onUpdateFinalize(SetSeine parent, Collection<TargetCatch> oldChilds) throws TopiaException { + public void onUpdateFinalize(SetSeine parentSaved, Collection<TargetCatch> oldChilds) throws TopiaException { if (CollectionUtils.isNotEmpty(oldChilds)) { @@ -131,7 +131,7 @@ public class TargetCatchServiceImpl extends AbstractObserveService implements Ta } - parent.addAllTargetCatch(targetCatchesToReinject); + parentSaved.addAllTargetCatch(targetCatchesToReinject); } @@ -143,7 +143,7 @@ public class TargetCatchServiceImpl extends AbstractObserveService implements Ta log.info("Will remove " + targetLengthsToDelete.size() + " obsolete targetLength(s)."); } - TargetSample targetSample = parent.getTargetSample().get(0); + TargetSample targetSample = parentSaved.getTargetSample().get(0); // on supprime les echantillons obsoletes targetSample.getTargetLength().removeAll(targetLengthsToDelete); diff --git a/observe-services/src/main/java/fr/ird/observe/services/data/seine/TargetLengthService.java b/observe-services/src/main/java/fr/ird/observe/services/data/seine/TargetLengthService.java deleted file mode 100644 index 4201f7f..0000000 --- a/observe-services/src/main/java/fr/ird/observe/services/data/seine/TargetLengthService.java +++ /dev/null @@ -1,17 +0,0 @@ -package fr.ird.observe.services.data.seine; - -import fr.ird.observe.entities.seine.TargetSample; -import fr.ird.observe.services.Commit; -import fr.ird.observe.services.ObserveService; - -/** - * @author Sylvain Bavencoff - bavencoff@codelutin.com - */ -public interface TargetLengthService extends ObserveService { - - TargetSample loadForEdit(String setId, boolean discarded); - - @Commit - void save(TargetSample parent); - -} diff --git a/observe-services/src/main/java/fr/ird/observe/services/data/seine/TargetLengthServiceImpl.java b/observe-services/src/main/java/fr/ird/observe/services/data/seine/TargetLengthServiceImpl.java deleted file mode 100644 index e6fa067..0000000 --- a/observe-services/src/main/java/fr/ird/observe/services/data/seine/TargetLengthServiceImpl.java +++ /dev/null @@ -1,96 +0,0 @@ -package fr.ird.observe.services.data.seine; - -import fr.ird.observe.BinderService; -import fr.ird.observe.entities.seine.SetSeine; -import fr.ird.observe.entities.seine.TargetLength; -import fr.ird.observe.entities.seine.TargetSample; -import fr.ird.observe.services.AbstractObserveService; -import org.nuiton.topia.persistence.TopiaDAO; -import org.nuiton.topia.persistence.util.EntityListUpdator; -import org.nuiton.topia.persistence.util.TopiaEntityBinder; - -import java.util.Collection; -import java.util.List; - -/** - * @author Sylvain Bavencoff - bavencoff@codelutin.com - */ -public class TargetLengthServiceImpl extends AbstractObserveService implements TargetLengthService { - - @Override - public TargetSample loadForEdit(String setId, boolean discarded) { - - SetSeine setSeine = findByTopiaId(SetSeine.class, setId); - - TargetSample toLoad = null; - - if (!setSeine.isNonTargetSampleEmpty()) { - - List<TargetSample> targetSamples = setSeine.getTargetSample(); - for (TargetSample targetSample : targetSamples) { - - Boolean isDiscarded = targetSample.getDiscarded(); - - if (discarded == (isDiscarded != null && isDiscarded)) { - toLoad = targetSample; - } - - } - - } - - TargetSample loaded = getDao(TargetSample.class).newInstance(); - - if (toLoad != null) { - - copyExcluding(TargetSample.class, BinderService.EDIT_TARGET_LENGTH, toLoad, loaded, TargetSample.PROPERTY_TARGET_LENGTH); - - - if (!toLoad.isTargetLengthEmpty()) { - - TopiaEntityBinder<TargetLength> binder = getBinder(TargetLength.class, BinderService.EDIT); - TopiaDAO<TargetLength> dao = getDao(TargetLength.class); - - for (TargetLength childToLoad : toLoad.getTargetLength()) { - - TargetLength childLoaded = dao.newInstance(); - binder.load(childToLoad, childLoaded, true); - loaded.addTargetLength(childLoaded); - - } - } - } - - - return loaded; - } - - @Override - public void save(TargetSample parent) { - - TopiaEntityBinder<TargetSample> parentBinder = getBinder(TargetSample.class, BinderService.EDIT_TARGET_LENGTH); - TopiaEntityBinder<TargetLength> childbinder = getBinder(TargetLength.class, BinderService.EDIT); - - doSaveList(parent, new SaveCollectionAction<TargetSample, TargetLength>( - TargetSample.class, TargetLength.class, getListUpdator(), parentBinder, childbinder) { - - @Override - public void prepareSave(TargetSample parent, Collection<TargetLength> tosaves) { - - for (TargetLength targetLength : tosaves) { - - // on attache a l'echantillon - targetLength.setTargetSample(parent); - } - - } - }); - } - - protected EntityListUpdator<TargetSample, TargetLength> getListUpdator() { - return EntityListUpdator.newEntityListUpdator( - TargetSample.class, - TargetLength.class, - TargetSample.PROPERTY_TARGET_LENGTH); - } -} diff --git a/observe-services/src/main/java/fr/ird/observe/services/data/seine/TargetSampleService.java b/observe-services/src/main/java/fr/ird/observe/services/data/seine/TargetSampleService.java index c1b2d32..40bfd62 100644 --- a/observe-services/src/main/java/fr/ird/observe/services/data/seine/TargetSampleService.java +++ b/observe-services/src/main/java/fr/ird/observe/services/data/seine/TargetSampleService.java @@ -21,7 +21,7 @@ public interface TargetSampleService extends ObserveService { List<TargetLength> getObsoleteTargetLengths(String setSeineId, Set<String> speciesIdsUsed, boolean discarded); - TargetSample getTargetSample(String setSeineId, boolean discarded); + TargetSample loadForEdit(String setSeineId, boolean discarded); boolean canUseTargetSample(String setSeineId, boolean discarded); @@ -29,6 +29,6 @@ public interface TargetSampleService extends ObserveService { String save(String setSeineId, TargetSample toSave); @Commit - void delete(String setId, TargetSample bean); + void delete(String setSeineId, TargetSample bean); } diff --git a/observe-services/src/main/java/fr/ird/observe/services/data/seine/TargetSampleServiceImpl.java b/observe-services/src/main/java/fr/ird/observe/services/data/seine/TargetSampleServiceImpl.java index 8735b1b..67953b1 100644 --- a/observe-services/src/main/java/fr/ird/observe/services/data/seine/TargetSampleServiceImpl.java +++ b/observe-services/src/main/java/fr/ird/observe/services/data/seine/TargetSampleServiceImpl.java @@ -1,6 +1,8 @@ package fr.ird.observe.services.data.seine; +import com.google.common.collect.Lists; import fr.ird.observe.BinderService; +import fr.ird.observe.entities.Entities; import fr.ird.observe.entities.referentiel.Species; import fr.ird.observe.entities.seine.SetSeine; import fr.ird.observe.entities.seine.TargetCatch; @@ -9,8 +11,11 @@ import fr.ird.observe.entities.seine.TargetLengthDAO; import fr.ird.observe.entities.seine.TargetSample; import fr.ird.observe.entities.seine.TargetSampleDAO; import fr.ird.observe.services.AbstractObserveService; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.topia.persistence.TopiaDAO; +import org.nuiton.topia.persistence.util.EntityListUpdator; import org.nuiton.topia.persistence.util.TopiaEntityBinder; import java.util.ArrayList; @@ -29,14 +34,6 @@ public class TargetSampleServiceImpl extends AbstractObserveService implements T /** Logger. */ private static final Log log = LogFactory.getLog(TargetSampleServiceImpl.class); - protected TargetSampleDAO getDao() { - return (TargetSampleDAO) getDao(TargetSample.class); - } - - protected TargetLengthDAO getChildDao() { - return (TargetLengthDAO) getDao(TargetLength.class); - } - @Override public List<Species> getAvailableSpeciesForTargetSample(String setSeineId, boolean discarded) { @@ -79,9 +76,8 @@ public class TargetSampleServiceImpl extends AbstractObserveService implements T } - @Override - public TargetSample getTargetSample(String setSeineId, boolean discarded) { + public TargetSample loadForEdit(String setSeineId, boolean discarded) { SetSeine setSeine = findByTopiaId(SetSeine.class, setSeineId); @@ -108,14 +104,15 @@ public class TargetSampleServiceImpl extends AbstractObserveService implements T copyExcluding(TargetSample.class, BinderService.EDIT_TARGET_LENGTH, toLoad, loaded, TargetSample.PROPERTY_TARGET_LENGTH); + if (!toLoad.isTargetLengthEmpty()) { - TargetLengthDAO childDao = getChildDao(); TopiaEntityBinder<TargetLength> binder = getBinder(TargetLength.class, BinderService.EDIT); + TopiaDAO<TargetLength> dao = getDao(TargetLength.class); for (TargetLength childToLoad : toLoad.getTargetLength()) { - TargetLength childLoaded = childDao.newInstance(); + TargetLength childLoaded = dao.newInstance(); binder.load(childToLoad, childLoaded, true); loaded.addTargetLength(childLoaded); @@ -125,7 +122,6 @@ public class TargetSampleServiceImpl extends AbstractObserveService implements T return loaded; - } @Override @@ -180,18 +176,63 @@ public class TargetSampleServiceImpl extends AbstractObserveService implements T TargetSample created = getDao().create(); copyExcluding(TargetSample.class, BinderService.EDIT, toCreate, created, TargetSample.PROPERTY_TARGET_LENGTH); parent.addTargetSample(created); + + saveTargetLengths(toCreate.getTargetLength(), created); + getDao().update(created); return created; + } @Override - public TargetSample onUpdate(SetSeine parentBean, TargetSample toUpdate, TargetSample updated) { + public TargetSample onUpdate(SetSeine parent, TargetSample toUpdate, TargetSample updated) { copyExcluding(TargetSample.class, BinderService.EDIT, toUpdate, updated, TargetSample.PROPERTY_TARGET_LENGTH); + + saveTargetLengths(toUpdate.getTargetLength(), updated); + getDao().update(updated); return updated; } + + protected void saveTargetLengths(Collection<TargetLength> targetLengthsToSave, TargetSample childSaved) { + + List<TargetLength> targetLengthsSaved = Lists.newArrayList(); + + if (CollectionUtils.isNotEmpty(targetLengthsToSave)) { + + TopiaDAO<TargetLength> dao = getDao(TargetLength.class); + TopiaEntityBinder<TargetLength> binder = getBinder(TargetLength.class, BinderService.EDIT); + + for (TargetLength targetLengthToSave : targetLengthsToSave) { + + TargetLength targetLengthSaved; + + if (Entities.isNew(targetLengthToSave)) { + + targetLengthSaved = dao.create(); + binder.load(targetLengthToSave, targetLengthSaved, false); + + } else { + + targetLengthSaved = dao.findByTopiaId(targetLengthToSave.getTopiaId()); + binder.load(targetLengthToSave, targetLengthSaved, true); + + } + + targetLengthsSaved.add(targetLengthSaved); + + } + + } + + childSaved.clearTargetLength(); + childSaved.addAllTargetLength(targetLengthsSaved); + + } + + }); return savedId; @@ -199,15 +240,33 @@ public class TargetSampleServiceImpl extends AbstractObserveService implements T } @Override - public void delete(String setId, TargetSample bean) { - doDelete(setId, bean.getTopiaId(), new DeleteAction<SetSeine, TargetSample>(SetSeine.class, TargetSample.class) { + public void delete(String setSeineId, TargetSample bean) { + + doDelete(setSeineId, bean.getTopiaId(), new DeleteAction<SetSeine, TargetSample>(SetSeine.class, TargetSample.class) { @Override public void onDelete(SetSeine parent, TargetSample toDelete) { + super.onDelete(parent, toDelete); parent.removeTargetSample(toDelete); + } }); } + protected TargetSampleDAO getDao() { + return (TargetSampleDAO) getDao(TargetSample.class); + } + + protected TargetLengthDAO getChildDao() { + return (TargetLengthDAO) getDao(TargetLength.class); + } + + protected EntityListUpdator<TargetSample, TargetLength> getListUpdator() { + return EntityListUpdator.newEntityListUpdator( + TargetSample.class, + TargetLength.class, + TargetSample.PROPERTY_TARGET_LENGTH); + } + } diff --git a/observe-services/src/main/java/fr/ird/observe/services/data/seine/TripSeineServiceImpl.java b/observe-services/src/main/java/fr/ird/observe/services/data/seine/TripSeineServiceImpl.java index f910d1f..4f59498 100644 --- a/observe-services/src/main/java/fr/ird/observe/services/data/seine/TripSeineServiceImpl.java +++ b/observe-services/src/main/java/fr/ird/observe/services/data/seine/TripSeineServiceImpl.java @@ -110,7 +110,7 @@ public class TripSeineServiceImpl extends AbstractObserveService implements Trip } @Override - public TripSeine onUpdate(Program parentBean, TripSeine toUpdate, TripSeine updated) { + public TripSeine onUpdate(Program parent, TripSeine toUpdate, TripSeine updated) { copyExcluding(TripSeine.class, BinderService.EDIT, toUpdate, updated, TripSeine.PROPERTY_ROUTE); return updated; } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/BaitsCompositionUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/BaitsCompositionUIHandler.java index f25ad5d..0112839 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/BaitsCompositionUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/BaitsCompositionUIHandler.java @@ -63,39 +63,6 @@ public class BaitsCompositionUIHandler extends ContentTableUIHandler<SetLongline } @Override - protected void onOpenUI(ContentMode mode) { - - String setLonglineId = getDataContext().getSelectedSetId(); - - BaitsCompositionService service = getService(BaitsCompositionService.class); - - SetLongline loaded = service.loadForEdit(setLonglineId); - - copy(SetLongline.class, BinderService.EDIT_BAITS_COMPOSITION, loaded, getBean()); - - } - - @Override - protected void doPersist(SetLongline editBean) { - - BaitsCompositionService service = getService(BaitsCompositionService.class); - service.save(editBean); - - } - - @Override - protected void onSelectedRowChanged(int editingRow, BaitsComposition bean, boolean create) { - - if (getTableModel().isEditable()) { - if (log.isDebugEnabled()) { - log.debug("Row has changed to " + editingRow); - } - getUi().getBaitType().requestFocus(); - } - - } - - @Override protected void initTableUI(DefaultTableCellRenderer renderer) { JTable table = getUi().getTable(); @@ -131,6 +98,39 @@ public class BaitsCompositionUIHandler extends ContentTableUIHandler<SetLongline } @Override + protected void onOpenUI(ContentMode mode) { + + String setLonglineId = getDataContext().getSelectedSetId(); + + BaitsCompositionService service = getService(BaitsCompositionService.class); + + SetLongline loaded = service.loadForEdit(setLonglineId); + + copy(SetLongline.class, BinderService.EDIT_BAITS_COMPOSITION, loaded, getBean()); + + } + + @Override + protected void onSelectedRowChanged(int editingRow, BaitsComposition bean, boolean create) { + + if (getTableModel().isEditable()) { + if (log.isDebugEnabled()) { + log.debug("Row has changed to " + editingRow); + } + getUi().getBaitType().requestFocus(); + } + + } + + @Override + protected void doPersist(SetLongline editBean) { + + BaitsCompositionService service = getService(BaitsCompositionService.class); + service.save(editBean); + + } + + @Override public void afterSave(boolean refresh) { super.afterSave(refresh); } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/BranchlinesCompositionUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/BranchlinesCompositionUIHandler.java index 8911e36..c65d4bb 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/BranchlinesCompositionUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/BranchlinesCompositionUIHandler.java @@ -63,18 +63,6 @@ public class BranchlinesCompositionUIHandler extends ContentTableUIHandler<SetLo } @Override - protected void onSelectedRowChanged(int editingRow, BranchlinesComposition bean, boolean create) { - - if (getTableModel().isEditable()) { - if (log.isDebugEnabled()) { - log.debug("Row has changed to " + editingRow); - } - getUi().getTopType().requestFocus(); - } - - } - - @Override protected void initTableUI(DefaultTableCellRenderer renderer) { JTable table = getUi().getTable(); @@ -120,6 +108,21 @@ public class BranchlinesCompositionUIHandler extends ContentTableUIHandler<SetLo } @Override + protected void onSelectedRowChanged(int editingRow, BranchlinesComposition bean, boolean create) { + + if (log.isDebugEnabled()) { + log.debug("Row has changed to " + editingRow); + } + + if (getTableModel().isEditable()) { + + getUi().getTopType().requestFocus(); + + } + + } + + @Override protected void doPersist(SetLongline editBean) { BranchlinesCompositionService service = getService(BranchlinesCompositionService.class); diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/CatchLonglineUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/CatchLonglineUIHandler.java index 030c1fe..62818c6 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/CatchLonglineUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/CatchLonglineUIHandler.java @@ -148,86 +148,212 @@ public class CatchLonglineUIHandler extends ContentTableUIHandler<SetLongline, C } @Override - protected void onOpenUI(ContentMode mode) { + protected CatchLonglineTableModel getTableModel() { + return (CatchLonglineTableModel) super.getTableModel(); + } - String setLonglineId = getDataContext().getSelectedSetId(); + @Override + public void initUI() throws Exception { - CatchLonglineService service = getService(CatchLonglineService.class); + // add a listPredicate to get only species from the correct configured speciesList + ObserveConfig config = getUi().getContextValue(ObserveConfig.class); - SetLongline loaded = service.loadForEdit(setLonglineId); + { + String speciesListId = config.getSpeciesListLonglineCatchId(); + prepareSpeciesList(speciesListId, getUi().getSpeciesCatch(), n("observe.error.speciesList.longline.catch.notFound")); + } - copy(SetLongline.class, BinderService.EDIT_CATCH_LONGLINE, loaded, getBean()); + { + String speciesListId = config.getSpeciesListLonglineDepredatorId(); + prepareSpeciesList(speciesListId, getUi().getPredator(), n("observe.error.speciesList.longline.depredator.notFound")); + } - // reset size measures - getModel().getSizeMeasuresTableModel().clear(); + CatchLonglineContentTableUIInitializer uiInitializer = new CatchLonglineContentTableUIInitializer(getUi()); + uiInitializer.initUI(ObserveContext.get().getServices()); - // reset weight measures - getModel().getWeightMeasuresTableModel().clear(); + getModel().addPropertyChangeListener(CatchLonglineUIModel.PROPERTY_SHOW_INDIVIDUAL_TABS, new PropertyChangeListener() { + @Override + public void propertyChange(PropertyChangeEvent evt) { + Boolean newValue = (Boolean) evt.getNewValue(); + showIndividualTabs(newValue); + } + }); - // load sections (and baskets and branchlines) - SetLonglineService setLonglineService = getService(SetLonglineService.class); - List<Section> sections = setLonglineService.getSections(setLonglineId); + getModel().addPropertyChangeListener(CatchLonglineUIModel.PROPERTY_EDITABLE, new PropertyChangeListener() { + @Override + public void propertyChange(PropertyChangeEvent evt) { + Boolean newValue = (Boolean) evt.getNewValue(); + setTableModelEditable(newValue); + } + }); - LonglinePositionHelper<CatchLongline> positionHelper = POSITION_HELPER_ENTRY.getContextValue(getUi()); - positionHelper.initSections(sections, getTableModel().getData()); + setTableModelEditable(getModel().isEditable()); + + LonglinePositionHelper<CatchLongline> positionHelper = new LonglinePositionHelper<CatchLongline>( + getUi().getSection(), + getUi().getBasket(), + getUi().getBranchline(), + getTableEditBean()); + + POSITION_HELPER_ENTRY.setContextValue(getUi(), positionHelper); } @Override - protected void doPersist(SetLongline editBean) { - - List<CatchLongline> catchLonglines = editBean.getCatchLongline(); + protected void initTableUI(DefaultTableCellRenderer renderer) { { - SizeMeasuresTableModel tableModel = getModel().getSizeMeasuresTableModel(); + // init main table - Set<Integer> rowsChanged = tableModel.getCacheRowsChanged(); + JTable table = getUi().getTable(); - for (Integer row : rowsChanged) { + UIHelper.setI18nTableHeaderRenderer( + table, + n("observe.catchlongline.table.sectionHaulingId"), + n("observe.catchlongline.table.sectionHaulingId.tip"), + n("observe.catchlongline.table.basketHaulingId"), + n("observe.catchlongline.table.basketHaulingId.tip"), + n("observe.catchlongline.table.branchlineHaulingId"), + n("observe.catchlongline.table.branchlineHaulingId.tip"), - CatchLongline catchLongline = catchLonglines.get(row); + n("observe.catchlongline.table.speciesCatch"), + n("observe.catchlongline.table.speciesCatch.tip"), + n("observe.catchlongline.table.acquisitionMode"), + n("observe.catchlongline.table.acquisitionMode.tip"), + n("observe.catchlongline.table.count"), + n("observe.catchlongline.table.count.tip"), + n("observe.catchlongline.table.catchHealthness"), + n("observe.catchlongline.table.catchHealthness.tip"), + n("observe.catchlongline.table.catchFateLongline"), + n("observe.catchlongline.table.catchFateLongline.tip"), + n("observe.catchlongline.table.discardHealthness"), + n("observe.catchlongline.table.discardHealthness.tip"), + n("observe.catchlongline.table.depredated"), + n("observe.catchlongline.table.depredated.tip"), + n("observe.catchlongline.table.comment"), + n("observe.catchlongline.table.comment.tip")); - List<SizeMeasure> measurements = tableModel.getCacheForRowNotEmpty(row); - catchLongline.clearSizeMeasure(); - catchLongline.addAllSizeMeasure(measurements); + UIHelper.setTableColumnRenderer(table, 0, UIHelper.newDecorateTableCellRenderer(renderer, Section.class, DecoratorService.HAULING_IDENTIFIER)); + UIHelper.setTableColumnRenderer(table, 1, UIHelper.newDecorateTableCellRenderer(renderer, Basket.class, DecoratorService.HAULING_IDENTIFIER)); + UIHelper.setTableColumnRenderer(table, 2, UIHelper.newDecorateTableCellRenderer(renderer, Branchline.class, DecoratorService.HAULING_IDENTIFIER)); + + UIHelper.setTableColumnRenderer(table, 3, UIHelper.newDecorateTableCellRenderer(renderer, Species.class)); + UIHelper.setTableColumnRenderer(table, 4, UIHelper.newEnumTableCellRenderer(renderer, CatchAcquisitionModeEnum.class)); + UIHelper.setTableColumnRenderer(table, 5, UIHelper.newEmptyNumberTableCellRenderer(renderer)); + UIHelper.setTableColumnRenderer(table, 6, UIHelper.newDecorateTableCellRenderer(renderer, Healthness.class)); + UIHelper.setTableColumnRenderer(table, 7, UIHelper.newDecorateTableCellRenderer(renderer, CatchFateLongline.class)); + UIHelper.setTableColumnRenderer(table, 8, UIHelper.newDecorateTableCellRenderer(renderer, Healthness.class)); + UIHelper.setTableColumnRenderer(table, 9, UIHelper.newBooleanTableCellRenderer(renderer)); + UIHelper.setTableColumnRenderer(table, 10, UIHelper.newStringTableCellRenderer(renderer, 10, true)); - } } + ReferentialService service = getService(ReferentialService.class); { - WeightMeasuresTableModel tableModel = getModel().getWeightMeasuresTableModel(); + // init size measures table + JTable table = getUi().getSizeMeasuresTable(); - Set<Integer> rowsChanged = tableModel.getCacheRowsChanged(); + UIHelper.setI18nTableHeaderRenderer(table, + n("observe.catchlongline.table.sizeMeasureType"), + n("observe.catchlongline.table.sizeMeasureType.tip"), + n("observe.catchlongline.table.size"), + n("observe.catchlongline.table.size.tip")); - for (Integer row : rowsChanged) { + UIHelper.setTableColumnRenderer(table, 0, UIHelper.newDecorateTableCellRenderer(renderer, SizeMeasureType.class)); + UIHelper.setTableColumnRenderer(table, 1, UIHelper.newEmptyNumberTableCellRenderer(renderer)); - CatchLongline catchLongline = catchLonglines.get(row); + Decorator<SizeMeasureType> decorator = ObserveContext.get().getDecorator(SizeMeasureType.class); - List<WeightMeasure> measurements = tableModel.getCacheForRowNotEmpty(row); - catchLongline.clearWeightMeasure(); - catchLongline.addAllWeightMeasure(measurements); + List<SizeMeasureType> list = service.loadAndDecorateList(SizeMeasureType.class); + UIHelper.setTableColumnEditor(table, 0, ContentUIInitializer.newDataColumnEditor(list, decorator)); + UIHelper.setTableColumnEditor(table, 1, ContentUIInitializer.newFloatColumnEditor(table)); + + SizeMeasuresTableModel tableModel = getModel().getSizeMeasuresTableModel(); + tableModel.installTableKeyListener(getUi().getSizeMeasuresTable()); + tableModel.addPropertyChangeListener(SizeMeasuresTableModel.MODIFIED_PROPERTY, sizeTableModelModified); - } } - CatchLonglineService service = getService(CatchLonglineService.class); - service.save(editBean); + { + // init weight measures table + JTable table = getUi().getWeightMeasuresTable(); + + UIHelper.setI18nTableHeaderRenderer(table, + n("observe.catchlongline.table.weightMeasureType"), + n("observe.catchlongline.table.weightMeasureType.tip"), + n("observe.catchlongline.table.weight"), + n("observe.catchlongline.table.weight.tip")); + + UIHelper.setTableColumnRenderer(table, 0, UIHelper.newDecorateTableCellRenderer(renderer, WeightMeasureType.class)); + UIHelper.setTableColumnRenderer(table, 1, UIHelper.newEmptyNumberTableCellRenderer(renderer)); + + Decorator<WeightMeasureType> decorator = ObserveContext.get().getDecorator(WeightMeasureType.class); + List<WeightMeasureType> list = service.loadAndDecorateList(WeightMeasureType.class); + UIHelper.setTableColumnEditor(table, 0, ContentUIInitializer.newDataColumnEditor(list, decorator)); + UIHelper.setTableColumnEditor(table, 1, ContentUIInitializer.newFloatColumnEditor(table)); + + WeightMeasuresTableModel tableModel = getModel().getWeightMeasuresTableModel(); + tableModel.installTableKeyListener(getUi().getWeightMeasuresTable()); + tableModel.addPropertyChangeListener(WeightMeasuresTableModel.MODIFIED_PROPERTY, weightTableModelModified); + + } + + getTableModel().addPropertyChangeListener(ContentTableModel.CREATE_PROPERTY, new PropertyChangeListener() { + @Override + public void propertyChange(PropertyChangeEvent evt) { + Boolean oldValue = (Boolean) evt.getOldValue(); + Boolean newValue = (Boolean) evt.getNewValue(); + setTableModelCreate(oldValue, newValue); + } + }); } - public void saveBranchline() { + @Override + public void openUI() throws Exception { if (log.isInfoEnabled()) { - log.info("Saved modified branchline"); + log.info("OpenUI: " + getModel()); } - Branchline branchline = getTableEditBean().getBranchline(); + super.openUI(); + + // Reset all sections + LonglinePositionHelper<CatchLongline> positionHelper = POSITION_HELPER_ENTRY.getContextValue(getUi()); + getUi().getSection().setData(positionHelper.getSectionUniverse()); + + SwingValidatorMessageTableModel errorTableModel = getUi().getErrorTableModel(); + + // listen messages to see if required to add + reloadTableModelListener(errorTableModel, computeTabValidStateListener); + + computeTabValidState(errorTableModel); + + } + + @Override + protected void onOpenUI(ContentMode mode) { + + String setLonglineId = getDataContext().getSelectedSetId(); CatchLonglineService service = getService(CatchLonglineService.class); - Branchline beanSaved = service.saveBranchline(branchline); - getTableEditBean().setBranchline(beanSaved); - getUi().getBranchlineValidator().setChanged(false); + SetLongline loaded = service.loadForEdit(setLonglineId); + + copy(SetLongline.class, BinderService.EDIT_CATCH_LONGLINE, loaded, getBean()); + + // reset size measures + getModel().getSizeMeasuresTableModel().clear(); + + // reset weight measures + getModel().getWeightMeasuresTableModel().clear(); + + // load sections (and baskets and branchlines) + SetLonglineService setLonglineService = getService(SetLonglineService.class); + List<Section> sections = setLonglineService.getSections(setLonglineId); + + LonglinePositionHelper<CatchLongline> positionHelper = POSITION_HELPER_ENTRY.getContextValue(getUi()); + positionHelper.initSections(sections, getTableModel().getData()); } @@ -386,208 +512,87 @@ public class CatchLonglineUIHandler extends ContentTableUIHandler<SetLongline, C } @Override - protected void initTableUI(DefaultTableCellRenderer renderer) { - - { - // init main table - - JTable table = getUi().getTable(); - - UIHelper.setI18nTableHeaderRenderer( - table, - n("observe.catchlongline.table.sectionHaulingId"), - n("observe.catchlongline.table.sectionHaulingId.tip"), - n("observe.catchlongline.table.basketHaulingId"), - n("observe.catchlongline.table.basketHaulingId.tip"), - n("observe.catchlongline.table.branchlineHaulingId"), - n("observe.catchlongline.table.branchlineHaulingId.tip"), - - n("observe.catchlongline.table.speciesCatch"), - n("observe.catchlongline.table.speciesCatch.tip"), - n("observe.catchlongline.table.acquisitionMode"), - n("observe.catchlongline.table.acquisitionMode.tip"), - n("observe.catchlongline.table.count"), - n("observe.catchlongline.table.count.tip"), - n("observe.catchlongline.table.catchHealthness"), - n("observe.catchlongline.table.catchHealthness.tip"), - n("observe.catchlongline.table.catchFateLongline"), - n("observe.catchlongline.table.catchFateLongline.tip"), - n("observe.catchlongline.table.discardHealthness"), - n("observe.catchlongline.table.discardHealthness.tip"), - n("observe.catchlongline.table.depredated"), - n("observe.catchlongline.table.depredated.tip"), - n("observe.catchlongline.table.comment"), - n("observe.catchlongline.table.comment.tip")); - - UIHelper.setTableColumnRenderer(table, 0, UIHelper.newDecorateTableCellRenderer(renderer, Section.class, DecoratorService.HAULING_IDENTIFIER)); - UIHelper.setTableColumnRenderer(table, 1, UIHelper.newDecorateTableCellRenderer(renderer, Basket.class, DecoratorService.HAULING_IDENTIFIER)); - UIHelper.setTableColumnRenderer(table, 2, UIHelper.newDecorateTableCellRenderer(renderer, Branchline.class, DecoratorService.HAULING_IDENTIFIER)); - - UIHelper.setTableColumnRenderer(table, 3, UIHelper.newDecorateTableCellRenderer(renderer, Species.class)); - UIHelper.setTableColumnRenderer(table, 4, UIHelper.newEnumTableCellRenderer(renderer, CatchAcquisitionModeEnum.class)); - UIHelper.setTableColumnRenderer(table, 5, UIHelper.newEmptyNumberTableCellRenderer(renderer)); - UIHelper.setTableColumnRenderer(table, 6, UIHelper.newDecorateTableCellRenderer(renderer, Healthness.class)); - UIHelper.setTableColumnRenderer(table, 7, UIHelper.newDecorateTableCellRenderer(renderer, CatchFateLongline.class)); - UIHelper.setTableColumnRenderer(table, 8, UIHelper.newDecorateTableCellRenderer(renderer, Healthness.class)); - UIHelper.setTableColumnRenderer(table, 9, UIHelper.newBooleanTableCellRenderer(renderer)); - UIHelper.setTableColumnRenderer(table, 10, UIHelper.newStringTableCellRenderer(renderer, 10, true)); - - } - - ReferentialService service = getService(ReferentialService.class); - { - // init size measures table - JTable table = getUi().getSizeMeasuresTable(); - - UIHelper.setI18nTableHeaderRenderer(table, - n("observe.catchlongline.table.sizeMeasureType"), - n("observe.catchlongline.table.sizeMeasureType.tip"), - n("observe.catchlongline.table.size"), - n("observe.catchlongline.table.size.tip")); - - UIHelper.setTableColumnRenderer(table, 0, UIHelper.newDecorateTableCellRenderer(renderer, SizeMeasureType.class)); - UIHelper.setTableColumnRenderer(table, 1, UIHelper.newEmptyNumberTableCellRenderer(renderer)); - - Decorator<SizeMeasureType> decorator = ObserveContext.get().getDecorator(SizeMeasureType.class); - - List<SizeMeasureType> list = service.loadAndDecorateList(SizeMeasureType.class); - UIHelper.setTableColumnEditor(table, 0, ContentUIInitializer.newDataColumnEditor(list, decorator)); - UIHelper.setTableColumnEditor(table, 1, ContentUIInitializer.newFloatColumnEditor(table)); - - SizeMeasuresTableModel tableModel = getModel().getSizeMeasuresTableModel(); - tableModel.installTableKeyListener(getUi().getSizeMeasuresTable()); - tableModel.addPropertyChangeListener(SizeMeasuresTableModel.MODIFIED_PROPERTY, sizeTableModelModified); + protected void closeSafeUI() { + if (log.isInfoEnabled()) { + log.info("CloseUI: " + getModel()); } + super.closeSafeUI(); - { - // init weight measures table - JTable table = getUi().getWeightMeasuresTable(); + // remove listener + getUi().getErrorTableModel().removeTableModelListener(computeTabValidStateListener); - UIHelper.setI18nTableHeaderRenderer(table, - n("observe.catchlongline.table.weightMeasureType"), - n("observe.catchlongline.table.weightMeasureType.tip"), - n("observe.catchlongline.table.weight"), - n("observe.catchlongline.table.weight.tip")); + } - UIHelper.setTableColumnRenderer(table, 0, UIHelper.newDecorateTableCellRenderer(renderer, WeightMeasureType.class)); - UIHelper.setTableColumnRenderer(table, 1, UIHelper.newEmptyNumberTableCellRenderer(renderer)); + @Override + protected void resetEditBean() { - Decorator<WeightMeasureType> decorator = ObserveContext.get().getDecorator(WeightMeasureType.class); + UIHelper.stopEditing(getUi().getSizeMeasuresTable()); + UIHelper.stopEditing(getUi().getWeightMeasuresTable()); - List<WeightMeasureType> list = service.loadAndDecorateList(WeightMeasureType.class); - UIHelper.setTableColumnEditor(table, 0, ContentUIInitializer.newDataColumnEditor(list, decorator)); - UIHelper.setTableColumnEditor(table, 1, ContentUIInitializer.newFloatColumnEditor(table)); + onBranchlineChanged(null); - WeightMeasuresTableModel tableModel = getModel().getWeightMeasuresTableModel(); - tableModel.installTableKeyListener(getUi().getWeightMeasuresTable()); - tableModel.addPropertyChangeListener(WeightMeasuresTableModel.MODIFIED_PROPERTY, weightTableModelModified); + super.resetEditBean(); - } + onBranchlineChanged(getTableEditBean().getBranchline()); - getTableModel().addPropertyChangeListener(ContentTableModel.CREATE_PROPERTY, new PropertyChangeListener() { - @Override - public void propertyChange(PropertyChangeEvent evt) { - Boolean oldValue = (Boolean) evt.getOldValue(); - Boolean newValue = (Boolean) evt.getNewValue(); - setTableModelCreate(oldValue, newValue); - } - }); } @Override - public void initUI() throws Exception { + protected void doPersist(SetLongline editBean) { - // add a listPredicate to get only species from the correct configured speciesList - ObserveConfig config = getUi().getContextValue(ObserveConfig.class); + List<CatchLongline> catchLonglines = editBean.getCatchLongline(); { - String speciesListId = config.getSpeciesListLonglineCatchId(); - prepareSpeciesList(speciesListId, getUi().getSpeciesCatch(), n("observe.error.speciesList.longline.catch.notFound")); - } + SizeMeasuresTableModel tableModel = getModel().getSizeMeasuresTableModel(); - { - String speciesListId = config.getSpeciesListLonglineDepredatorId(); - prepareSpeciesList(speciesListId, getUi().getPredator(), n("observe.error.speciesList.longline.depredator.notFound")); - } + Set<Integer> rowsChanged = tableModel.getCacheRowsChanged(); - CatchLonglineContentTableUIInitializer uiInitializer = new CatchLonglineContentTableUIInitializer(getUi()); - uiInitializer.initUI(ObserveContext.get().getServices()); + for (Integer row : rowsChanged) { - getModel().addPropertyChangeListener(CatchLonglineUIModel.PROPERTY_SHOW_INDIVIDUAL_TABS, new PropertyChangeListener() { - @Override - public void propertyChange(PropertyChangeEvent evt) { - Boolean newValue = (Boolean) evt.getNewValue(); - showIndividualTabs(newValue); - } - }); + CatchLongline catchLongline = catchLonglines.get(row); + + List<SizeMeasure> measurements = tableModel.getCacheForRowNotEmpty(row); + catchLongline.clearSizeMeasure(); + catchLongline.addAllSizeMeasure(measurements); - getModel().addPropertyChangeListener(CatchLonglineUIModel.PROPERTY_EDITABLE, new PropertyChangeListener() { - @Override - public void propertyChange(PropertyChangeEvent evt) { - Boolean newValue = (Boolean) evt.getNewValue(); - setTableModelEditable(newValue); } - }); + } - setTableModelEditable(getModel().isEditable()); + { + WeightMeasuresTableModel tableModel = getModel().getWeightMeasuresTableModel(); - LonglinePositionHelper<CatchLongline> positionHelper = new LonglinePositionHelper<CatchLongline>( - getUi().getSection(), - getUi().getBasket(), - getUi().getBranchline(), - getTableEditBean()); + Set<Integer> rowsChanged = tableModel.getCacheRowsChanged(); - POSITION_HELPER_ENTRY.setContextValue(getUi(), positionHelper); + for (Integer row : rowsChanged) { - } + CatchLongline catchLongline = catchLonglines.get(row); - @Override - public void openUI() throws Exception { + List<WeightMeasure> measurements = tableModel.getCacheForRowNotEmpty(row); + catchLongline.clearWeightMeasure(); + catchLongline.addAllWeightMeasure(measurements); - if (log.isInfoEnabled()) { - log.info("OpenUI: " + getModel()); + } } - super.openUI(); - - // Reset all sections - LonglinePositionHelper<CatchLongline> positionHelper = POSITION_HELPER_ENTRY.getContextValue(getUi()); - getUi().getSection().setData(positionHelper.getSectionUniverse()); - - SwingValidatorMessageTableModel errorTableModel = getUi().getErrorTableModel(); - - // listen messages to see if required to add - reloadTableModelListener(errorTableModel, computeTabValidStateListener); - - computeTabValidState(errorTableModel); + CatchLonglineService service = getService(CatchLonglineService.class); + service.save(editBean); } - @Override - protected void closeSafeUI() { + public void saveBranchline() { if (log.isInfoEnabled()) { - log.info("CloseUI: " + getModel()); + log.info("Saved modified branchline"); } - super.closeSafeUI(); - - // remove listener - getUi().getErrorTableModel().removeTableModelListener(computeTabValidStateListener); - - } - - @Override - protected void resetEditBean() { - - UIHelper.stopEditing(getUi().getSizeMeasuresTable()); - UIHelper.stopEditing(getUi().getWeightMeasuresTable()); - onBranchlineChanged(null); + Branchline branchline = getTableEditBean().getBranchline(); - super.resetEditBean(); + CatchLonglineService service = getService(CatchLonglineService.class); - onBranchlineChanged(getTableEditBean().getBranchline()); + Branchline beanSaved = service.saveBranchline(branchline); + getTableEditBean().setBranchline(beanSaved); + getUi().getBranchlineValidator().setChanged(false); } @@ -842,9 +847,4 @@ public class CatchLonglineUIHandler extends ContentTableUIHandler<SetLongline, C } - @Override - protected CatchLonglineTableModel getTableModel() { - return (CatchLonglineTableModel) super.getTableModel(); - } - } \ No newline at end of file diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/EncounterUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/EncounterUIHandler.java index 7d335cb..9652fa7 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/EncounterUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/EncounterUIHandler.java @@ -62,34 +62,15 @@ public class EncounterUIHandler extends ContentTableUIHandler<ActivityLongline, } @Override - protected void onOpenUI(ContentMode mode) { - - String activityLonglineId = getDataContext().getSelectedActivityId(); - - EncounterService service = getService(EncounterService.class); - - ActivityLongline loaded = service.loadForEdit(activityLonglineId); - - copy(ActivityLongline.class, BinderService.EDIT_ENCOUNTER, loaded, getBean()); - - } - - @Override - protected void doPersist(ActivityLongline editBean) { + public void initUI() throws Exception { - EncounterService service = getService(EncounterService.class); - service.save(editBean); + // add a listPredicate to get only species from the correct configured speciesList + ObserveConfig config = getUi().getContextValue(ObserveConfig.class); + String speciesListId = config.getSpeciesListLonglineEncounterId(); + prepareSpeciesList(speciesListId, getUi().getSpecies(), n("observe.error.speciesList.longline.encounter.notFound")); - } + super.initUI(); - @Override - protected void onSelectedRowChanged(int editingRow, Encounter bean, boolean create) { - if (getTableModel().isEditable()) { - if (log.isDebugEnabled()) { - log.debug("Row has changed to " + editingRow); - } - getUi().getEncounterType().requestFocus(); - } } @Override @@ -113,14 +94,36 @@ public class EncounterUIHandler extends ContentTableUIHandler<ActivityLongline, } @Override - public void initUI() throws Exception { + protected void onOpenUI(ContentMode mode) { - // add a listPredicate to get only species from the correct configured speciesList - ObserveConfig config = getUi().getContextValue(ObserveConfig.class); - String speciesListId = config.getSpeciesListLonglineEncounterId(); - prepareSpeciesList(speciesListId, getUi().getSpecies(), n("observe.error.speciesList.longline.encounter.notFound")); + String activityLonglineId = getDataContext().getSelectedActivityId(); - super.initUI(); + EncounterService service = getService(EncounterService.class); + + ActivityLongline loaded = service.loadForEdit(activityLonglineId); + + copy(ActivityLongline.class, BinderService.EDIT_ENCOUNTER, loaded, getBean()); + + } + + @Override + protected void onSelectedRowChanged(int editingRow, Encounter bean, boolean create) { + + if (log.isDebugEnabled()) { + log.debug("Row has changed to " + editingRow); + } + + if (getTableModel().isEditable()) { + getUi().getEncounterType().requestFocus(); + } + + } + + @Override + protected void doPersist(ActivityLongline editBean) { + + EncounterService service = getService(EncounterService.class); + service.save(editBean); } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/FloatlinesCompositionUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/FloatlinesCompositionUIHandler.java index 48926bd..bfc9366 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/FloatlinesCompositionUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/FloatlinesCompositionUIHandler.java @@ -62,23 +62,45 @@ public class FloatlinesCompositionUIHandler extends ContentTableUIHandler<SetLon } @Override - protected void onOpenUI(ContentMode mode) { + protected void initTableUI(DefaultTableCellRenderer renderer) { - String setLonglineId = getDataContext().getSelectedSetId(); + JTable table = getUi().getTable(); - FloatlinesCompositionService service = getService(FloatlinesCompositionService.class); + UIHelper.setI18nTableHeaderRenderer( + table, + n("observe.floatlinesComposition.table.lineType"), + n("observe.floatlinesComposition.table.lineType.tip"), + n("observe.floatlinesComposition.table.length"), + n("observe.floatlinesComposition.table.length.tip"), + n("observe.floatlinesComposition.table.proportion"), + n("observe.floatlinesComposition.table.proportion.tip")); - SetLongline loaded = service.loadForEdit(setLonglineId); + UIHelper.setTableColumnRenderer(table, 0, UIHelper.newDecorateTableCellRenderer(renderer, LineType.class)); + UIHelper.setTableColumnRenderer(table, 1, UIHelper.newEmptyNumberTableCellRenderer(renderer)); + UIHelper.setTableColumnRenderer(table, 2, UIHelper.newEmptyNumberTableCellRenderer(renderer)); - copy(SetLongline.class, BinderService.EDIT_FLOATLINES_COMPOSITION, loaded, getBean()); + // when model change in table, let's recompute the proportion sum + table.getModel().addTableModelListener(new TableModelListener() { + @Override + public void tableChanged(TableModelEvent e) { + + int proportionSum = getBean().getFloatlinesCompositionProportionSum(); + getBean().setFloatlinesCompositionProportionSum(proportionSum); + } + }); } @Override - protected void doPersist(SetLongline editBean) { + protected void onOpenUI(ContentMode mode) { + + String setLonglineId = getDataContext().getSelectedSetId(); FloatlinesCompositionService service = getService(FloatlinesCompositionService.class); - service.save(editBean); + + SetLongline loaded = service.loadForEdit(setLonglineId); + + copy(SetLongline.class, BinderService.EDIT_FLOATLINES_COMPOSITION, loaded, getBean()); } @@ -95,32 +117,10 @@ public class FloatlinesCompositionUIHandler extends ContentTableUIHandler<SetLon } @Override - protected void initTableUI(DefaultTableCellRenderer renderer) { - - JTable table = getUi().getTable(); - - UIHelper.setI18nTableHeaderRenderer( - table, - n("observe.floatlinesComposition.table.lineType"), - n("observe.floatlinesComposition.table.lineType.tip"), - n("observe.floatlinesComposition.table.length"), - n("observe.floatlinesComposition.table.length.tip"), - n("observe.floatlinesComposition.table.proportion"), - n("observe.floatlinesComposition.table.proportion.tip")); - - UIHelper.setTableColumnRenderer(table, 0, UIHelper.newDecorateTableCellRenderer(renderer, LineType.class)); - UIHelper.setTableColumnRenderer(table, 1, UIHelper.newEmptyNumberTableCellRenderer(renderer)); - UIHelper.setTableColumnRenderer(table, 2, UIHelper.newEmptyNumberTableCellRenderer(renderer)); - - // when model change in table, let's recompute the proportion sum - table.getModel().addTableModelListener(new TableModelListener() { - @Override - public void tableChanged(TableModelEvent e) { + protected void doPersist(SetLongline editBean) { - int proportionSum = getBean().getFloatlinesCompositionProportionSum(); - getBean().setFloatlinesCompositionProportionSum(proportionSum); - } - }); + FloatlinesCompositionService service = getService(FloatlinesCompositionService.class); + service.save(editBean); } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/GearUseFeaturesLonglineUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/GearUseFeaturesLonglineUIHandler.java index 89cde36..001e0a2 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/GearUseFeaturesLonglineUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/GearUseFeaturesLonglineUIHandler.java @@ -116,6 +116,115 @@ public class GearUseFeaturesLonglineUIHandler extends ContentTableUIHandler<Trip } @Override + protected GearUseFeaturesLonglineTableModel getTableModel() { + return (GearUseFeaturesLonglineTableModel) super.getTableModel(); + } + + @Override + public void initUI() throws Exception { + + super.initUI(); + + getModel().addPropertyChangeListener(GearUseFeaturesLonglineUIModel.PROPERTY_EDITABLE, new PropertyChangeListener() { + @Override + public void propertyChange(PropertyChangeEvent evt) { + Boolean newValue = (Boolean) evt.getNewValue(); + setTableModelEditable(newValue); + } + }); + + setTableModelEditable(getModel().isEditable()); + + getTableModel().setGearUseFeaturesLonglineUIHandler(this); + + } + + @Override + protected void initTableUI(DefaultTableCellRenderer renderer) { + + { + JTable table = getUi().getTable(); + + UIHelper.setI18nTableHeaderRenderer(table, + n("observe.gearUseFeaturesLongline.table.gear"), + n("observe.gearUseFeaturesLongline.table.gear.tip"), + n("observe.gearUseFeaturesLongline.table.number"), + n("observe.gearUseFeaturesLongline.table.number.tip"), + n("observe.gearUseFeaturesLongline.table.usedInTrip"), + n("observe.gearUseFeaturesLongline.table.usedInTrip.tip"), + n("observe.gearUseFeaturesLongline.table.comment"), + n("observe.gearUseFeaturesLongline.table.comment.tip")); + + UIHelper.setTableColumnRenderer(table, 0, UIHelper.newDecorateTableCellRenderer(renderer, Gear.class)); + UIHelper.setTableColumnRenderer(table, 1, UIHelper.newEmptyNumberTableCellRenderer(renderer)); + UIHelper.setTableColumnRenderer(table, 2, UIHelper.newBooleanTableCellRenderer(renderer)); + UIHelper.setTableColumnRenderer(table, 3, UIHelper.newStringTableCellRenderer(renderer, 10, true)); + } + + { + // init measurements table + JTable table = getUi().getMeasurementsTable(); + + UIHelper.setI18nTableHeaderRenderer(table, + n("observe.gearUseFeaturesLongline.table.gearCaracteristic"), + n("observe.gearUseFeaturesLongline.table.gearCaracteristic.tip"), + n("observe.gearUseFeaturesLongline.table.value"), + n("observe.gearUseFeaturesLongline.table.value.tip")); + + UIHelper.setTableColumnRenderer(table, 0, UIHelper.newDecorateTableCellRenderer(renderer, GearCaracteristic.class)); + UIHelper.setTableColumnRenderer(table, 1, new GearUseFeatureMeasurementCellRenderer(0, renderer)); + + table.getTableHeader().setReorderingAllowed(false); + + Decorator<GearCaracteristic> decorator = ObserveContext.get().getDecorator(GearCaracteristic.class); + + GearUseFeaturesLonglineService service = getService(GearUseFeaturesLonglineService.class); + List<GearCaracteristic> list = service.getList(GearCaracteristic.class); + UIHelper.setTableColumnEditor(table, 0, ContentUIInitializer.newDataColumnEditor(list, decorator)); + UIHelper.setTableColumnEditor(table, 1, new GearUseFeatureMeasurementCellEditor(0)); + + GearUseFeaturesMeasurementLonglinesTableModel tableModel = getModel().getMeasurementsTableModel(); + tableModel.installTableKeyListener(getUi().getMeasurementsTable()); + tableModel.addPropertyChangeListener(GearUseFeaturesMeasurementLonglinesTableModel.MODIFIED_PROPERTY, measurementsTableModelModified); + + ListSelectionModel selectionModel = table.getSelectionModel(); + selectionModel.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + tableModel.installSelectionListener(table); + + new SectionTemplatesAutotSelectRowAndShowPopupAction(getUi(), getUi().getMeasurementsScrollPane(), table, getUi().getMeasurementsTablePopup()); + + } + + // Adapt layout to let more place for the editor + + getUi().getShowForm().remove(1); + getUi().getShowForm().add(SwingUtil.boxComponentWithJxLayer(getUi().getEditor()), new GridBagConstraints(0, 1, 1, 1, 1.0, 0.3, 10, 1, new Insets(0, 0, 0, 0), 0, 0), 1); + getUi().getEditor().remove(0); + getUi().getEditor().add(SwingUtil.boxComponentWithJxLayer(getUi().getEditorPanel()), new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0, 10, 1, new Insets(0, 0, 0, 0), 0, 0), 0); + + + } + + @Override + public void openUI() throws Exception { + + if (log.isInfoEnabled()) { + log.info("OpenUI: " + getModel()); + } + + super.openUI(); + + // To be sure always remove listener (could prevent some leaks) + getUi().getErrorTableModel().removeTableModelListener(computeTabValidStateListener); + // listen messages to see if required to add + getUi().getErrorTableModel().addTableModelListener(computeTabValidStateListener); + + SwingValidatorMessageTableModel errorTableModel = getUi().getErrorTableModel(); + computeTabValidState(errorTableModel); + + } + + @Override protected void onOpenUI(ContentMode mode) { String activityLonglineId = getDataContext().getSelectedTripLonglineId(); @@ -132,31 +241,32 @@ public class GearUseFeaturesLonglineUIHandler extends ContentTableUIHandler<Trip } @Override - protected void doPersist(TripLongline editBean) { + protected ContentMode getContentMode(DataContext dataContext) { - List<GearUseFeaturesLongline> gearUseFeatures = editBean.getGearUseFeaturesLongline(); + // par defaut, on suppose qu'on peut afficher les données + getModel().setShowData(true); - GearUseFeaturesLonglineUIModel model = getModel(); + String selectedTripId = dataContext.getSelectedTripId(); - GearUseFeaturesMeasurementLonglinesTableModel measurementsTableModel = model.getMeasurementsTableModel(); + if (selectedTripId.equals(dataContext.getOpenTripId())) { - Set<Integer> rowsChanged = measurementsTableModel.getCacheRowsChanged(); + // mode mise a jour + return ContentMode.UPDATE; + } - for (Integer row : rowsChanged) { + // mode lecture - GearUseFeaturesLongline gearUseFeaturesLongline = gearUseFeatures.get(row); + if (dataContext.isSelectedTripLongline()) { - List<GearUseFeaturesMeasurementLongline> measurements = measurementsTableModel.getCacheForRowNotEmpty(row); + addInfoMessage(t("observe.tripLongline.message.not.open")); - gearUseFeaturesLongline.clearGearUseFeaturesMeasurement(); + } else { - gearUseFeaturesLongline.addAllGearUseFeaturesMeasurement(measurements); + addInfoMessage(t("observe.tripLongline.message.not.open")); } - GearUseFeaturesLonglineService service = getService(GearUseFeaturesLonglineService.class); - service.save(editBean); - + return ContentMode.READ; } @Override @@ -247,128 +357,61 @@ public class GearUseFeaturesLonglineUIHandler extends ContentTableUIHandler<Trip } @Override - protected void initTableUI(DefaultTableCellRenderer renderer) { - - { - JTable table = getUi().getTable(); - - UIHelper.setI18nTableHeaderRenderer(table, - n("observe.gearUseFeaturesLongline.table.gear"), - n("observe.gearUseFeaturesLongline.table.gear.tip"), - n("observe.gearUseFeaturesLongline.table.number"), - n("observe.gearUseFeaturesLongline.table.number.tip"), - n("observe.gearUseFeaturesLongline.table.usedInTrip"), - n("observe.gearUseFeaturesLongline.table.usedInTrip.tip"), - n("observe.gearUseFeaturesLongline.table.comment"), - n("observe.gearUseFeaturesLongline.table.comment.tip")); + protected void closeSafeUI() { - UIHelper.setTableColumnRenderer(table, 0, UIHelper.newDecorateTableCellRenderer(renderer, Gear.class)); - UIHelper.setTableColumnRenderer(table, 1, UIHelper.newEmptyNumberTableCellRenderer(renderer)); - UIHelper.setTableColumnRenderer(table, 2, UIHelper.newBooleanTableCellRenderer(renderer)); - UIHelper.setTableColumnRenderer(table, 3, UIHelper.newStringTableCellRenderer(renderer, 10, true)); + if (log.isInfoEnabled()) { + log.info("CloseUI: " + getModel()); } + super.closeSafeUI(); - { - // init measurements table - JTable table = getUi().getMeasurementsTable(); - - UIHelper.setI18nTableHeaderRenderer(table, - n("observe.gearUseFeaturesLongline.table.gearCaracteristic"), - n("observe.gearUseFeaturesLongline.table.gearCaracteristic.tip"), - n("observe.gearUseFeaturesLongline.table.value"), - n("observe.gearUseFeaturesLongline.table.value.tip")); - - UIHelper.setTableColumnRenderer(table, 0, UIHelper.newDecorateTableCellRenderer(renderer, GearCaracteristic.class)); - UIHelper.setTableColumnRenderer(table, 1, new GearUseFeatureMeasurementCellRenderer(0, renderer)); - - table.getTableHeader().setReorderingAllowed(false); - - Decorator<GearCaracteristic> decorator = ObserveContext.get().getDecorator(GearCaracteristic.class); - - GearUseFeaturesLonglineService service = getService(GearUseFeaturesLonglineService.class); - List<GearCaracteristic> list = service.getList(GearCaracteristic.class); - UIHelper.setTableColumnEditor(table, 0, ContentUIInitializer.newDataColumnEditor(list, decorator)); - UIHelper.setTableColumnEditor(table, 1, new GearUseFeatureMeasurementCellEditor(0)); - - GearUseFeaturesMeasurementLonglinesTableModel tableModel = getModel().getMeasurementsTableModel(); - tableModel.installTableKeyListener(getUi().getMeasurementsTable()); - tableModel.addPropertyChangeListener(GearUseFeaturesMeasurementLonglinesTableModel.MODIFIED_PROPERTY, measurementsTableModelModified); - - ListSelectionModel selectionModel = table.getSelectionModel(); - selectionModel.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); - tableModel.installSelectionListener(table); - - new SectionTemplatesAutotSelectRowAndShowPopupAction(getUi(), getUi().getMeasurementsScrollPane(), table, getUi().getMeasurementsTablePopup()); + // remove listener + getUi().getErrorTableModel().removeTableModelListener(computeTabValidStateListener); - } + } - // Adapt layout to let more place for the editor + @Override + public void startEditUI(String... binding) { - getUi().getShowForm().remove(1); - getUi().getShowForm().add(SwingUtil.boxComponentWithJxLayer(getUi().getEditor()), new GridBagConstraints(0, 1, 1, 1, 1.0, 0.3, 10, 1, new Insets(0, 0, 0, 0), 0, 0), 1); - getUi().getEditor().remove(0); - getUi().getEditor().add(SwingUtil.boxComponentWithJxLayer(getUi().getEditorPanel()), new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0, 10, 1, new Insets(0, 0, 0, 0), 0, 0), 0); + getModel().getMeasurementsTableModel().setEditable(true); + super.startEditUI(binding); } @Override - public void initUI() throws Exception { - - super.initUI(); - - getModel().addPropertyChangeListener(GearUseFeaturesLonglineUIModel.PROPERTY_EDITABLE, new PropertyChangeListener() { - @Override - public void propertyChange(PropertyChangeEvent evt) { - Boolean newValue = (Boolean) evt.getNewValue(); - setTableModelEditable(newValue); - } - }); + protected void resetEditBean() { - setTableModelEditable(getModel().isEditable()); + UIHelper.stopEditing(getUi().getMeasurementsTable()); - getTableModel().setGearUseFeaturesLonglineUIHandler(this); + super.resetEditBean(); } @Override - public void openUI() throws Exception { - - if (log.isInfoEnabled()) { - log.info("OpenUI: " + getModel()); - } + protected void doPersist(TripLongline editBean) { - super.openUI(); + List<GearUseFeaturesLongline> gearUseFeatures = editBean.getGearUseFeaturesLongline(); - // To be sure always remove listener (could prevent some leaks) - getUi().getErrorTableModel().removeTableModelListener(computeTabValidStateListener); - // listen messages to see if required to add - getUi().getErrorTableModel().addTableModelListener(computeTabValidStateListener); + GearUseFeaturesLonglineUIModel model = getModel(); - SwingValidatorMessageTableModel errorTableModel = getUi().getErrorTableModel(); - computeTabValidState(errorTableModel); + GearUseFeaturesMeasurementLonglinesTableModel measurementsTableModel = model.getMeasurementsTableModel(); - } + Set<Integer> rowsChanged = measurementsTableModel.getCacheRowsChanged(); - @Override - protected void closeSafeUI() { + for (Integer row : rowsChanged) { - if (log.isInfoEnabled()) { - log.info("CloseUI: " + getModel()); - } - super.closeSafeUI(); + GearUseFeaturesLongline gearUseFeaturesLongline = gearUseFeatures.get(row); - // remove listener - getUi().getErrorTableModel().removeTableModelListener(computeTabValidStateListener); + List<GearUseFeaturesMeasurementLongline> measurements = measurementsTableModel.getCacheForRowNotEmpty(row); - } + gearUseFeaturesLongline.clearGearUseFeaturesMeasurement(); - @Override - public void startEditUI(String... binding) { + gearUseFeaturesLongline.addAllGearUseFeaturesMeasurement(measurements); - getModel().getMeasurementsTableModel().setEditable(true); + } - super.startEditUI(binding); + GearUseFeaturesLonglineService service = getService(GearUseFeaturesLonglineService.class); + service.save(editBean); } @@ -407,49 +450,6 @@ public class GearUseFeaturesLonglineUIHandler extends ContentTableUIHandler<Trip } - @Override - protected void resetEditBean() { - - UIHelper.stopEditing(getUi().getMeasurementsTable()); - - super.resetEditBean(); - - } - - @Override - protected ContentMode getContentMode(DataContext dataContext) { - - // par defaut, on suppose qu'on peut afficher les données - getModel().setShowData(true); - - String selectedTripId = dataContext.getSelectedTripId(); - - if (selectedTripId.equals(dataContext.getOpenTripId())) { - - // mode mise a jour - return ContentMode.UPDATE; - } - - // mode lecture - - if (dataContext.isSelectedTripLongline()) { - - addInfoMessage(t("observe.tripLongline.message.not.open")); - - } else { - - addInfoMessage(t("observe.tripLongline.message.not.open")); - - } - - return ContentMode.READ; - } - - @Override - protected GearUseFeaturesLonglineTableModel getTableModel() { - return (GearUseFeaturesLonglineTableModel) super.getTableModel(); - } - protected void setTableModelEditable(Boolean newValue) { getModel().getMeasurementsTableModel().setEditable(newValue); diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/HooksCompositionUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/HooksCompositionUIHandler.java index ca49581..d29cfc2 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/HooksCompositionUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/HooksCompositionUIHandler.java @@ -63,39 +63,6 @@ public class HooksCompositionUIHandler extends ContentTableUIHandler<SetLongline } @Override - protected void onOpenUI(ContentMode mode) { - - String setLonglineId = getDataContext().getSelectedSetId(); - - HooksCompositionService service = getService(HooksCompositionService.class); - - SetLongline loaded = service.loadForEdit(setLonglineId); - - copy(SetLongline.class, BinderService.EDIT_HOOKS_COMPOSITION, loaded, getBean()); - - } - - @Override - protected void doPersist(SetLongline editBean) { - - HooksCompositionService service = getService(HooksCompositionService.class); - service.save(editBean); - - } - - @Override - protected void onSelectedRowChanged(int editingRow, HooksComposition bean, boolean create) { - - if (getTableModel().isEditable()) { - if (log.isDebugEnabled()) { - log.debug("Row has changed to " + editingRow); - } - getUi().getHookType().requestFocus(); - } - - } - - @Override protected void initTableUI(DefaultTableCellRenderer renderer) { JTable table = getUi().getTable(); @@ -128,6 +95,42 @@ public class HooksCompositionUIHandler extends ContentTableUIHandler<SetLongline } @Override + protected void onOpenUI(ContentMode mode) { + + String setLonglineId = getDataContext().getSelectedSetId(); + + HooksCompositionService service = getService(HooksCompositionService.class); + + SetLongline loaded = service.loadForEdit(setLonglineId); + + copy(SetLongline.class, BinderService.EDIT_HOOKS_COMPOSITION, loaded, getBean()); + + } + + @Override + protected void onSelectedRowChanged(int editingRow, HooksComposition bean, boolean create) { + + if (log.isDebugEnabled()) { + log.debug("Row has changed to " + editingRow); + } + + if (getTableModel().isEditable()) { + + getUi().getHookType().requestFocus(); + + } + + } + + @Override + protected void doPersist(SetLongline editBean) { + + HooksCompositionService service = getService(HooksCompositionService.class); + service.save(editBean); + + } + + @Override public void afterSave(boolean refresh) { super.afterSave(refresh); } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/SensorUsedUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/SensorUsedUIHandler.java index dd46581..a074cf4 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/SensorUsedUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/SensorUsedUIHandler.java @@ -80,37 +80,6 @@ public class SensorUsedUIHandler extends ContentTableUIHandler<ActivityLongline, } @Override - protected void onOpenUI(ContentMode mode) { - - String activityLonglineId = getDataContext().getSelectedActivityId(); - - SensorUsedService service = getService(SensorUsedService.class); - - ActivityLongline loaded = service.loadForEdit(activityLonglineId); - - copy(ActivityLongline.class, BinderService.EDIT_SENSOR_USED, loaded, getBean()); - - } - - @Override - protected void doPersist(ActivityLongline editBean) { - - SensorUsedService service = getService(SensorUsedService.class); - service.save(editBean); - - } - - @Override - protected void onSelectedRowChanged(int editingRow, SensorUsed bean, boolean create) { - if (getTableModel().isEditable()) { - if (log.isDebugEnabled()) { - log.debug("Row has changed to " + editingRow); - } - getUi().getSensorType().requestFocus(); - } - } - - @Override protected void initTableUI(DefaultTableCellRenderer renderer) { JTable table = getUi().getTable(); @@ -141,6 +110,37 @@ public class SensorUsedUIHandler extends ContentTableUIHandler<ActivityLongline, UIHelper.setTableColumnRenderer(table, 5, UIHelper.newStringTableCellRenderer(renderer, 10, true)); } + @Override + protected void onOpenUI(ContentMode mode) { + + String activityLonglineId = getDataContext().getSelectedActivityId(); + + SensorUsedService service = getService(SensorUsedService.class); + + ActivityLongline loaded = service.loadForEdit(activityLonglineId); + + copy(ActivityLongline.class, BinderService.EDIT_SENSOR_USED, loaded, getBean()); + + } + + @Override + protected void onSelectedRowChanged(int editingRow, SensorUsed bean, boolean create) { + if (getTableModel().isEditable()) { + if (log.isDebugEnabled()) { + log.debug("Row has changed to " + editingRow); + } + getUi().getSensorType().requestFocus(); + } + } + + @Override + protected void doPersist(ActivityLongline editBean) { + + SensorUsedService service = getService(SensorUsedService.class); + service.save(editBean); + + } + public void importData() { File file = UIHelper.chooseFile((Component) ui, diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/TdrUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/TdrUIHandler.java index ac05514..016e344 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/TdrUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/longline/TdrUIHandler.java @@ -121,80 +121,27 @@ public class TdrUIHandler extends ContentTableUIHandler<SetLongline, Tdr> { } @Override - protected void onOpenUI(ContentMode mode) { - - String setLonglineId = getDataContext().getSelectedSetId(); - - TdrService service = getService(TdrService.class); - - SetLongline loaded = service.loadForEdit(setLonglineId); - - copy(SetLongline.class, BinderService.EDIT_TDR, loaded, getBean()); - - // load sections (and baskets and branchlines) - SetLonglineService setLonglineService = getService(SetLonglineService.class); - List<Section> sections = setLonglineService.getSections(setLonglineId); - - LonglinePositionHelper<Tdr> positionHelper = POSITION_HELPER_ENTRY.getContextValue(getUi()); - positionHelper.initSections(sections, getTableModel().getData()); - - } - - @Override - protected void doPersist(SetLongline editBean) { - - TdrService service = getService(TdrService.class); - service.save(editBean); - - } - - @Override - protected void onSelectedRowChanged(int editingRow, Tdr bean, boolean create) { - - ContentTableModel<SetLongline, Tdr> model = getTableModel(); - - TdrUI ui = getUi(); - - boolean withTimestamp = bean.getFishingStart() != null; - ui.getEnableTimestamp().setSelected(withTimestamp); - - if (!model.isEditable()) { - return; - } - - String homeId = bean.getHomeId(); - - if (log.isDebugEnabled()) { - log.debug("selected tdr " + homeId); - } - JComponent requestFocus = ui.getHomeId(); - - if (create) { - - // set date - time - - SetLongline setLongline = getBean(); - - Date settingStartTimeStamp = setLongline.getSettingStartTimeStamp(); - setTimestamp(bean, settingStartTimeStamp); - - // go back to first tab - ui.getEditTabPane().setSelectedIndex(0); - - // enable timestamps - ui.getEnableTimestamp().setSelected(true); + public void initUI() throws Exception { - } else if (!withTimestamp) { + // add a listPredicate to get only species from the correct configured speciesList + ObserveConfig config = getUi().getContextValue(ObserveConfig.class); + String speciesListId = config.getSpeciesListLonglineCatchId(); + prepareSpeciesList(speciesListId, getUi().getSpecies(), n("observe.error.speciesList.longline.catch.notFound")); - // clean timestamps - setTimestamp(bean, null); + super.initUI(); - } + LonglinePositionHelper<Tdr> positionHelper = new LonglinePositionHelper<Tdr>( + getUi().getSection(), + getUi().getBasket(), + getUi().getBranchline(), + getTableEditBean()); - LonglinePositionHelper<Tdr> positionHelper = POSITION_HELPER_ENTRY.getContextValue(ui); - positionHelper.resetPosition(bean); + POSITION_HELPER_ENTRY.setContextValue(getUi(), positionHelper); - requestFocus.requestFocus(); + getUi().getDeployementStart().getSliderHidor().addPropertyChangeListener(HidorButton.PROPERTY_TARGET_VISIBLE, onToogleTimeEditorSliderChangedListener); + getUi().getDeployementEnd().getSliderHidor().addPropertyChangeListener(HidorButton.PROPERTY_TARGET_VISIBLE, onToogleTimeEditorSliderChangedListener); + getUi().getFishingStart().getSliderHidor().addPropertyChangeListener(HidorButton.PROPERTY_TARGET_VISIBLE, onToogleTimeEditorSliderChangedListener); + getUi().getFishingEnd().getSliderHidor().addPropertyChangeListener(HidorButton.PROPERTY_TARGET_VISIBLE, onToogleTimeEditorSliderChangedListener); } @@ -226,31 +173,6 @@ public class TdrUIHandler extends ContentTableUIHandler<SetLongline, Tdr> { } @Override - public void initUI() throws Exception { - - // add a listPredicate to get only species from the correct configured speciesList - ObserveConfig config = getUi().getContextValue(ObserveConfig.class); - String speciesListId = config.getSpeciesListLonglineCatchId(); - prepareSpeciesList(speciesListId, getUi().getSpecies(), n("observe.error.speciesList.longline.catch.notFound")); - - super.initUI(); - - LonglinePositionHelper<Tdr> positionHelper = new LonglinePositionHelper<Tdr>( - getUi().getSection(), - getUi().getBasket(), - getUi().getBranchline(), - getTableEditBean()); - - POSITION_HELPER_ENTRY.setContextValue(getUi(), positionHelper); - - getUi().getDeployementStart().getSliderHidor().addPropertyChangeListener(HidorButton.PROPERTY_TARGET_VISIBLE, onToogleTimeEditorSliderChangedListener); - getUi().getDeployementEnd().getSliderHidor().addPropertyChangeListener(HidorButton.PROPERTY_TARGET_VISIBLE, onToogleTimeEditorSliderChangedListener); - getUi().getFishingStart().getSliderHidor().addPropertyChangeListener(HidorButton.PROPERTY_TARGET_VISIBLE, onToogleTimeEditorSliderChangedListener); - getUi().getFishingEnd().getSliderHidor().addPropertyChangeListener(HidorButton.PROPERTY_TARGET_VISIBLE, onToogleTimeEditorSliderChangedListener); - - } - - @Override public void openUI() throws Exception { if (log.isInfoEnabled()) { @@ -272,6 +194,76 @@ public class TdrUIHandler extends ContentTableUIHandler<SetLongline, Tdr> { } @Override + protected void onOpenUI(ContentMode mode) { + + String setLonglineId = getDataContext().getSelectedSetId(); + + TdrService service = getService(TdrService.class); + + SetLongline loaded = service.loadForEdit(setLonglineId); + + copy(SetLongline.class, BinderService.EDIT_TDR, loaded, getBean()); + + // load sections (and baskets and branchlines) + SetLonglineService setLonglineService = getService(SetLonglineService.class); + List<Section> sections = setLonglineService.getSections(setLonglineId); + + LonglinePositionHelper<Tdr> positionHelper = POSITION_HELPER_ENTRY.getContextValue(getUi()); + positionHelper.initSections(sections, getTableModel().getData()); + + } + + @Override + protected void onSelectedRowChanged(int editingRow, Tdr bean, boolean create) { + + ContentTableModel<SetLongline, Tdr> model = getTableModel(); + + TdrUI ui = getUi(); + + boolean withTimestamp = bean.getFishingStart() != null; + ui.getEnableTimestamp().setSelected(withTimestamp); + + if (model.isEditable()) { + + String homeId = bean.getHomeId(); + + if (log.isDebugEnabled()) { + log.debug("selected tdr " + homeId); + } + JComponent requestFocus = ui.getHomeId(); + + if (create) { + + // set date - time + + SetLongline setLongline = getBean(); + + Date settingStartTimeStamp = setLongline.getSettingStartTimeStamp(); + setTimestamp(bean, settingStartTimeStamp); + + // go back to first tab + ui.getEditTabPane().setSelectedIndex(0); + + // enable timestamps + ui.getEnableTimestamp().setSelected(true); + + } else if (!withTimestamp) { + + // clean timestamps + setTimestamp(bean, null); + + } + + LonglinePositionHelper<Tdr> positionHelper = POSITION_HELPER_ENTRY.getContextValue(ui); + positionHelper.resetPosition(bean); + + requestFocus.requestFocus(); + + } + + } + + @Override protected void closeSafeUI() { if (log.isInfoEnabled()) { log.info("CloseUI: " + getModel()); @@ -284,6 +276,14 @@ public class TdrUIHandler extends ContentTableUIHandler<SetLongline, Tdr> { } @Override + protected void doPersist(SetLongline editBean) { + + TdrService service = getService(TdrService.class); + service.save(editBean); + + } + + @Override protected void resetEditBean() { super.resetEditBean(); diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/GearUseFeaturesSeineUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/GearUseFeaturesSeineUIHandler.java index ad6c5b1..1bb029c 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/GearUseFeaturesSeineUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/GearUseFeaturesSeineUIHandler.java @@ -114,88 +114,26 @@ public class GearUseFeaturesSeineUIHandler extends ContentTableUIHandler<TripSei } @Override - protected void onSelectedRowChanged(int editingRow, GearUseFeaturesSeine bean, boolean create) { - - if (log.isInfoEnabled()) { - log.info("Selected row changed: " + editingRow + ", create? " + create); - } - - GearUseFeaturesSeineUI ui = getUi(); - - UIHelper.stopEditing(ui.getMeasurementsTable()); - - GearUseFeaturesSeineTableModel tableModel = getTableModel(); - GearUseFeaturesSeineUIModel model = getModel(); - - boolean emptySelection = editingRow == -1; - - // load size measures - - GearUseFeaturesMeasurementSeinesTableModel measurementsTableModel = model.getMeasurementsTableModel(); - List<GearUseFeaturesMeasurementSeine> measurements = emptySelection ? Collections.<GearUseFeaturesMeasurementSeine>emptyList() : measurementsTableModel.getCacheForRow(editingRow); - if (measurements == null) { - - if (log.isInfoEnabled()) { - log.info("init measurements for row " + editingRow); - } - - // first time coming on this row - - if (tableModel.isCreate()) { - - // create mode: just init with empty list - measurements = Collections.emptyList(); - - if (log.isInfoEnabled()) { - log.info("create mode, use an empty list"); - } - - } else { - - // updating mode: loading from db - GearUseFeaturesSeineService service = getService(GearUseFeaturesSeineService.class); - measurements = service.loadGearUseFeaturesMeasurementSeineForEdit(bean.getTopiaId()); - if (log.isInfoEnabled()) { - log.info("Loaded measurements (" + bean.getTopiaId() + "): " + measurements.size()); - } - - } + protected GearUseFeaturesSeineTableModel getTableModel() { + return (GearUseFeaturesSeineTableModel) super.getTableModel(); + } - // init measurements - measurementsTableModel.initCacheForRow(editingRow, measurements); + @Override + public void initUI() throws Exception { - } else { + super.initUI(); - if (log.isInfoEnabled()) { - log.info("Using existing measurements for row " + editingRow + " : " + measurements.size()); + getModel().addPropertyChangeListener(GearUseFeaturesSeineUIModel.PROPERTY_EDITABLE, new PropertyChangeListener() { + @Override + public void propertyChange(PropertyChangeEvent evt) { + Boolean newValue = (Boolean) evt.getNewValue(); + setTableModelEditable(newValue); } - } - - measurementsTableModel.setData(measurements); - - measurementsTableModel.setModified(false); - measurementsTableModel.setEditable(tableModel.isEditable()); - - if (!tableModel.isEditable()) { - return; - } - - JComponent requestFocus; - - if (tableModel.isCreate()) { - - // go back to first pane - ui.getGearUseFeaturesTabPane().setSelectedIndex(0); - - requestFocus = ui.getGear(); - - } else { - - requestFocus = ui.getGear(); + }); - } + setTableModelEditable(getModel().isEditable()); - requestFocus.requestFocus(); + getTableModel().setGearUseFeaturesSeineUIHandler(this); } @@ -266,25 +204,6 @@ public class GearUseFeaturesSeineUIHandler extends ContentTableUIHandler<TripSei } @Override - public void initUI() throws Exception { - - super.initUI(); - - getModel().addPropertyChangeListener(GearUseFeaturesSeineUIModel.PROPERTY_EDITABLE, new PropertyChangeListener() { - @Override - public void propertyChange(PropertyChangeEvent evt) { - Boolean newValue = (Boolean) evt.getNewValue(); - setTableModelEditable(newValue); - } - }); - - setTableModelEditable(getModel().isEditable()); - - getTableModel().setGearUseFeaturesSeineUIHandler(this); - - } - - @Override public void openUI() throws Exception { if (log.isInfoEnabled()) { @@ -297,7 +216,7 @@ public class GearUseFeaturesSeineUIHandler extends ContentTableUIHandler<TripSei // listen messages to see to compute tab valid states reloadTableModelListener(errorTableModel, computeTabValidStateListener); - + computeTabValidState(errorTableModel); } @@ -317,62 +236,148 @@ public class GearUseFeaturesSeineUIHandler extends ContentTableUIHandler<TripSei } @Override - protected void closeSafeUI() { + protected ContentMode getContentMode(DataContext dataContext) { - if (log.isInfoEnabled()) { - log.info("CloseUI: " + getModel()); + // par defaut, on suppose qu'on peut afficher les données + getModel().setShowData(true); + + String selectedTripId = dataContext.getSelectedTripId(); + + if (selectedTripId.equals(dataContext.getOpenTripId())) { + + // mode mise a jour + return ContentMode.UPDATE; } - super.closeSafeUI(); - // remove listener - getUi().getErrorTableModel().removeTableModelListener(computeTabValidStateListener); + // mode lecture - } + if (dataContext.isSelectedTripLongline()) { - @Override - public void startEditUI(String... binding) { + addInfoMessage(t("observe.tripLongline.message.not.open")); - getModel().getMeasurementsTableModel().setEditable(true); + } else { - super.startEditUI(binding); + addInfoMessage(t("observe.tripSeine.message.not.open")); + + } + return ContentMode.READ; } - public void deleteSelectedMeasurement() { + @Override + protected void onSelectedRowChanged(int editingRow, GearUseFeaturesSeine bean, boolean create) { - GearUseFeaturesMeasurementSeinesTableModel tableModel = getUi().getMeasurementsTableModel(); + if (log.isInfoEnabled()) { + log.info("Selected row changed: " + editingRow + ", create? " + create); + } - boolean selectionEmpty = tableModel.isSelectionEmpty(); + GearUseFeaturesSeineUI ui = getUi(); - if (!selectionEmpty) { + UIHelper.stopEditing(ui.getMeasurementsTable()); - GearUseFeaturesMeasurementSeine data = tableModel.getSelectedRow(); + GearUseFeaturesSeineTableModel tableModel = getTableModel(); + GearUseFeaturesSeineUIModel model = getModel(); + + boolean emptySelection = editingRow == -1; + + // load size measures + + GearUseFeaturesMeasurementSeinesTableModel measurementsTableModel = model.getMeasurementsTableModel(); + List<GearUseFeaturesMeasurementSeine> measurements = emptySelection ? Collections.<GearUseFeaturesMeasurementSeine>emptyList() : measurementsTableModel.getCacheForRow(editingRow); + if (measurements == null) { if (log.isInfoEnabled()) { - log.info("Delete: " + data); + log.info("init measurements for row " + editingRow); } - ObserveMainUI mainUI = ObserveContext.get().getObserveMainUI(); - int response = UIHelper.askUser(mainUI, - t("observe.title.delete"), - t("observe.measurement.delete.message"), - JOptionPane.WARNING_MESSAGE, - new Object[]{t("observe.choice.confirm.delete"), - t("observe.choice.cancel")}, - 1); + // first time coming on this row - if (response != 0) { + if (tableModel.isCreate()) { + + // create mode: just init with empty list + measurements = Collections.emptyList(); + + if (log.isInfoEnabled()) { + log.info("create mode, use an empty list"); + } + + } else { + + // updating mode: loading from db + GearUseFeaturesSeineService service = getService(GearUseFeaturesSeineService.class); + measurements = service.loadGearUseFeaturesMeasurementSeineForEdit(bean.getTopiaId()); + if (log.isInfoEnabled()) { + log.info("Loaded measurements (" + bean.getTopiaId() + "): " + measurements.size()); + } - // user cancel - return; } - tableModel.removeSelectedRow(); + // init measurements + measurementsTableModel.initCacheForRow(editingRow, measurements); + + } else { + + if (log.isInfoEnabled()) { + log.info("Using existing measurements for row " + editingRow + " : " + measurements.size()); + } + } + + measurementsTableModel.setData(measurements); + + measurementsTableModel.setModified(false); + measurementsTableModel.setEditable(tableModel.isEditable()); + + if (!tableModel.isEditable()) { + return; + } + + JComponent requestFocus; + + if (tableModel.isCreate()) { + + // go back to first pane + ui.getGearUseFeaturesTabPane().setSelectedIndex(0); + + requestFocus = ui.getGear(); + + } else { + + requestFocus = ui.getGear(); + + } + + requestFocus.requestFocus(); + } + + @Override + protected void closeSafeUI() { + + if (log.isInfoEnabled()) { + log.info("CloseUI: " + getModel()); } + super.closeSafeUI(); + + // remove listener + getUi().getErrorTableModel().removeTableModelListener(computeTabValidStateListener); + + } + + @Override + public void startEditUI(String... binding) { + + getModel().getMeasurementsTableModel().setEditable(true); + super.startEditUI(binding); } + @Override + protected void resetEditBean() { + + UIHelper.stopEditing(getUi().getMeasurementsTable()); + super.resetEditBean(); + + } @Override protected void doPersist(TripSeine editBean) { @@ -401,47 +406,39 @@ public class GearUseFeaturesSeineUIHandler extends ContentTableUIHandler<TripSei } - @Override - protected void resetEditBean() { - - UIHelper.stopEditing(getUi().getMeasurementsTable()); - - super.resetEditBean(); - - } - - @Override - protected ContentMode getContentMode(DataContext dataContext) { + public void deleteSelectedMeasurement() { - // par defaut, on suppose qu'on peut afficher les données - getModel().setShowData(true); + GearUseFeaturesMeasurementSeinesTableModel tableModel = getUi().getMeasurementsTableModel(); - String selectedTripId = dataContext.getSelectedTripId(); + boolean selectionEmpty = tableModel.isSelectionEmpty(); - if (selectedTripId.equals(dataContext.getOpenTripId())) { + if (!selectionEmpty) { - // mode mise a jour - return ContentMode.UPDATE; - } + GearUseFeaturesMeasurementSeine data = tableModel.getSelectedRow(); - // mode lecture + if (log.isInfoEnabled()) { + log.info("Delete: " + data); + } - if (dataContext.isSelectedTripLongline()) { + ObserveMainUI mainUI = ObserveContext.get().getObserveMainUI(); + int response = UIHelper.askUser(mainUI, + t("observe.title.delete"), + t("observe.measurement.delete.message"), + JOptionPane.WARNING_MESSAGE, + new Object[]{t("observe.choice.confirm.delete"), + t("observe.choice.cancel")}, + 1); - addInfoMessage(t("observe.tripLongline.message.not.open")); + if (response != 0) { - } else { + // user cancel + return; + } - addInfoMessage(t("observe.tripSeine.message.not.open")); + tableModel.removeSelectedRow(); } - return ContentMode.READ; - } - - @Override - protected GearUseFeaturesSeineTableModel getTableModel() { - return (GearUseFeaturesSeineTableModel) super.getTableModel(); } protected void setTableModelEditable(Boolean newValue) { diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetCatchUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetCatchUIHandler.java index 482db1f..9ed6a04 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetCatchUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetCatchUIHandler.java @@ -43,6 +43,7 @@ import fr.ird.observe.ui.content.ContentMode; import fr.ird.observe.ui.content.table.ContentTableModel; import fr.ird.observe.ui.content.table.ContentTableUIHandler; import jaxx.runtime.context.JAXXContextEntryDef; +import jaxx.runtime.swing.editor.bean.BeanComboBox; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.decorator.Decorator; @@ -74,7 +75,7 @@ public class NonTargetCatchUIHandler extends ContentTableUIHandler<SetSeine, Non /** * L'entrée dans le contexte pour récupérer la liste complete des espèces. */ - protected final JAXXContextEntryDef<List<Species>> ALL_ESPECES_ENTRY = + protected final JAXXContextEntryDef<List<Species>> ALL_SPECIES_ENTRY = UIHelper.newListContextEntryDef("NonTargetCatchUI-all-speciess"); /** @@ -219,7 +220,7 @@ public class NonTargetCatchUIHandler extends ContentTableUIHandler<SetSeine, Non speciesList = new ArrayList<Species>(); } - ALL_ESPECES_ENTRY.setContextValue(getUi(), speciesList); + ALL_SPECIES_ENTRY.setContextValue(getUi(), speciesList); if (log.isDebugEnabled()) { log.debug("speciesList = " + speciesList.size()); } @@ -235,40 +236,38 @@ public class NonTargetCatchUIHandler extends ContentTableUIHandler<SetSeine, Non @Override protected void onSelectedRowChanged(int editingRow, NonTargetCatch bean, boolean create) { - NonTargetCatchUI ui = getUi(); - ContentTableModel<SetSeine, NonTargetCatch> model = getTableModel(); if (!model.isEditable()) { - // rien a faire - return; - } + List<Species> availableSpecies; + JComponent requestFocus; - List<Species> availableSpecies; - JComponent requestFocus; + BeanComboBox<Species> speciesComboBox = getUi().getSpecies(); - if (create) { + if (create) { - availableSpecies = new ArrayList<Species>(ALL_ESPECES_ENTRY.getContextValue(ui)); - requestFocus = ui.getSpecies(); + availableSpecies = new ArrayList<Species>(ALL_SPECIES_ENTRY.getContextValue(ui)); + requestFocus = speciesComboBox; - } else { + } else { - Species species = bean.getSpecies(); - availableSpecies = Collections.singletonList(species); - requestFocus = ui.getTable(); + Species species = bean.getSpecies(); + availableSpecies = Collections.singletonList(species); + requestFocus = getUi().getTable(); - } + } + + speciesComboBox.setData(availableSpecies); + requestFocus.requestFocus(); - ui.getSpecies().setData(availableSpecies); - requestFocus.requestFocus(); + NonTargetCatch tableEditBean = getTableEditBean(); + reloadPropertyChangeListener(tableEditBean, NonTargetCatch.PROPERTY_TOTAL_COUNT, totalCountChanged); + reloadPropertyChangeListener(tableEditBean, NonTargetCatch.PROPERTY_CATCH_WEIGHT, catchWeightChanged); + reloadPropertyChangeListener(tableEditBean, NonTargetCatch.PROPERTY_MEAN_WEIGHT, meanWeightChanged); + reloadPropertyChangeListener(tableEditBean, NonTargetCatch.PROPERTY_MEAN_LENGTH, meanLengthChanged); - NonTargetCatch tableEditBean = getTableEditBean(); - reloadPropertyChangeListener(tableEditBean, NonTargetCatch.PROPERTY_TOTAL_COUNT, totalCountChanged); - reloadPropertyChangeListener(tableEditBean, NonTargetCatch.PROPERTY_CATCH_WEIGHT, catchWeightChanged); - reloadPropertyChangeListener(tableEditBean, NonTargetCatch.PROPERTY_MEAN_WEIGHT, meanWeightChanged); - reloadPropertyChangeListener(tableEditBean, NonTargetCatch.PROPERTY_MEAN_LENGTH, meanLengthChanged); + } } @@ -339,12 +338,12 @@ public class NonTargetCatchUIHandler extends ContentTableUIHandler<SetSeine, Non @Override protected void doPersist(SetSeine editBean) { - List<NonTargetLength> tailleToDelete = ALL_NON_TARGET_LENGTH_TO_DELETE_ENTRY.getContextValue(getUi()); + List<NonTargetLength> lengthsToDelete = ALL_NON_TARGET_LENGTH_TO_DELETE_ENTRY.getContextValue(getUi()); try { NonTargetCatchService service = getService(NonTargetCatchService.class); - service.save(editBean, tailleToDelete); + service.save(editBean, lengthsToDelete); } finally { diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetSampleUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetSampleUIHandler.java index 58f949c..5d15a06 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetSampleUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetSampleUIHandler.java @@ -24,19 +24,21 @@ package fr.ird.observe.ui.content.table.impl.seine; import fr.ird.observe.BinderService; import fr.ird.observe.db.DataContext; import fr.ird.observe.db.constants.DataContextType; +import fr.ird.observe.entities.Entities; import fr.ird.observe.entities.referentiel.Sex; import fr.ird.observe.entities.referentiel.Species; import fr.ird.observe.entities.seine.NonTargetLength; import fr.ird.observe.entities.seine.NonTargetSample; import fr.ird.observe.entities.seine.SetSeine; -import fr.ird.observe.services.data.seine.NonTargetLengthService; import fr.ird.observe.services.data.seine.NonTargetSampleService; import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.content.ContentMode; import fr.ird.observe.ui.content.table.ContentTableModel; import fr.ird.observe.ui.content.table.ContentTableUIHandler; import jaxx.runtime.context.JAXXContextEntryDef; +import jaxx.runtime.swing.JAXXButtonGroup; import jaxx.runtime.swing.editor.NumberEditor; +import jaxx.runtime.swing.editor.bean.BeanComboBox; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.validator.NuitonValidatorScope; @@ -141,58 +143,43 @@ public class NonTargetSampleUIHandler extends ContentTableUIHandler<NonTargetSam String setId = getDataContext().getSelectedSetId(); - NonTargetSample nonTargetSample = getService(NonTargetLengthService.class).loadForEdit(setId); + NonTargetSampleService service = getService(NonTargetSampleService.class); + NonTargetSample nonTargetSample = service.loadForEdit(setId); copy(NonTargetSample.class, BinderService.EDIT_NON_TARGET_LENGTH, nonTargetSample, getBean()); - List<Species> speciesList; - if (ContentMode.UPDATE == mode) { - NonTargetSampleService service = getService(NonTargetSampleService.class); - speciesList = service.getAvailableSpeciesForNonTargetSample(setId); - + List<Species> speciesList = service.getAvailableSpeciesForNonTargetSample(setId); ALL_SPECIES_ENTRY.setContextValue(getUi(), speciesList); + } } @Override - protected void doPersist(NonTargetSample editBean) { + protected ContentMode getContentMode(DataContext dataContext) { - String setId = getDataContext().getSelectedSetId(); + ContentMode mode = super.getContentMode(dataContext); + String setId = getDataContext().getSelectedSetId(); NonTargetSampleService service = getService(NonTargetSampleService.class); + boolean showData = service.canUseNonTargetSample(setId); - if (editBean.getTopiaId() != null && editBean.isNonTargetLengthEmpty()) { - - // remove orphan target sample - if (log.isInfoEnabled()) { - log.info("Remove obsolete nonTargetSample " + editBean.getTopiaId() + " from Set: " + setId); - } - - //FIXME Non, la sauvegarde doit être faite par un seul appel au service (sinon fait dans 2 transactions) - service.delete(setId, editBean); + getUi().getModel().setShowData(showData); - } else { + if (ContentMode.UPDATE == mode && !showData) { - //FIXME Non, la sauvegarde doit être faite par un seul appel au service (sinon fait dans 2 transactions) - String savedId = service.save(setId, editBean); - editBean.setTopiaId(savedId); + // on repasse en mode resteint car on ne peut pas éditer l'écran + mode = ContentMode.READ; - getService(NonTargetLengthService.class).save(editBean); + addMessage(getUi(), + NuitonValidatorScope.INFO, + getEntityLabel(SetSeine.class), + t("observe.setSeine.message.no.nonTargetDiscarded")); } - } - - public void resetWeightSource() { - getTableEditBean().setWeightSource(false); - getUi().getWeight().grabFocus(); - } - - public void resetLengthSource() { - getTableEditBean().setLengthSource(false); - getUi().getLength().grabFocus(); + return mode; } @Override @@ -200,78 +187,90 @@ public class NonTargetSampleUIHandler extends ContentTableUIHandler<NonTargetSam ContentTableModel<NonTargetSample, NonTargetLength> model = getTableModel(); - if (!model.isEditable()) { - return; - } + if (model.isEditable()) { - Species species = bean.getSpecies(); - NonTargetSampleUI ui = getUi(); - if (log.isDebugEnabled()) { - log.debug("selected species " + species); - } - List<Species> availableEspeces; - JComponent requestFocus; + Species species = bean.getSpecies(); + if (log.isDebugEnabled()) { + log.debug("selected species " + species); + } - if (create) { + NonTargetSampleUI ui = getUi(); - if (model.isCreate()) { + JAXXButtonGroup acquisitionModeGroup = ui.getAcquisitionModeGroup(); + BeanComboBox<Species> speciesComboBox = ui.getSpecies(); - // on passe le mode de saisie en count - ui.getAcquisitionModeGroup().setSelectedValue(null); - ui.getAcquisitionModeGroup().setSelectedValue(ModeSaisieEchantillonEnum.byEffectif); - } + List<Species> availableSpecies; + JComponent requestFocus; - availableEspeces = new ArrayList<Species>(ALL_SPECIES_ENTRY.getContextValue(ui)); - requestFocus = ui.getSpecies(); + if (create) { - } else { + if (model.isCreate()) { - // on passe le mode de saisie - int acquisitionMode = bean.getAcquisitionMode(); - ModeSaisieEchantillonEnum enumValue = - ModeSaisieEchantillonEnum.valueOf(acquisitionMode); - ui.getAcquisitionModeGroup().setSelectedValue(null); - ui.getAcquisitionModeGroup().setSelectedValue(enumValue); + // on passe le mode de saisie en count + acquisitionModeGroup.setSelectedValue(null); + acquisitionModeGroup.setSelectedValue(ModeSaisieEchantillonEnum.byEffectif); + } - availableEspeces = Collections.singletonList(species); - requestFocus = ui.getCount(); + availableSpecies = new ArrayList<Species>(ALL_SPECIES_ENTRY.getContextValue(ui)); + requestFocus = speciesComboBox; - } + } else { + + // on passe le mode de saisie + int acquisitionMode = bean.getAcquisitionMode(); + ModeSaisieEchantillonEnum enumValue = ModeSaisieEchantillonEnum.valueOf(acquisitionMode); - ui.getSpecies().setData(availableEspeces); - requestFocus.requestFocus(); + acquisitionModeGroup.setSelectedValue(null); + acquisitionModeGroup.setSelectedValue(enumValue); + + availableSpecies = Collections.singletonList(species); + requestFocus = ui.getCount(); + + } - NonTargetLength tableEditBean = getTableEditBean(); - tableEditBean.removePropertyChangeListener(NonTargetLength.PROPERTY_WEIGHT, weightChanged); - tableEditBean.addPropertyChangeListener(NonTargetLength.PROPERTY_WEIGHT, weightChanged); + speciesComboBox.setData(availableSpecies); + requestFocus.requestFocus(); - tableEditBean.removePropertyChangeListener(NonTargetLength.PROPERTY_LENGTH, lengthChanged); - tableEditBean.addPropertyChangeListener(NonTargetLength.PROPERTY_LENGTH, lengthChanged); + NonTargetLength tableEditBean = getTableEditBean(); + reloadPropertyChangeListener(tableEditBean, NonTargetLength.PROPERTY_WEIGHT, weightChanged); + reloadPropertyChangeListener(tableEditBean, NonTargetLength.PROPERTY_LENGTH, lengthChanged); + + } } @Override - protected ContentMode getContentMode(DataContext dataContext) { - - ContentMode mode = super.getContentMode(dataContext); + protected void doPersist(NonTargetSample editBean) { String setId = getDataContext().getSelectedSetId(); + NonTargetSampleService service = getService(NonTargetSampleService.class); - boolean showData = service.canUseNonTargetSample(setId); - getUi().getModel().setShowData(showData); + if (!Entities.isNew(editBean) && editBean.isNonTargetLengthEmpty()) { - if (mode == ContentMode.UPDATE && !showData) { + // remove orphan target sample + if (log.isInfoEnabled()) { + log.info("Remove obsolete nonTargetSample " + editBean.getTopiaId() + " from Set: " + setId); + } - // on repasse en mode resteint car on ne peut pas éditer l'écran - mode = ContentMode.READ; + service.delete(setId, editBean); + + } else { + + String savedId = service.save(setId, editBean); + editBean.setTopiaId(savedId); - addMessage(getUi(), - NuitonValidatorScope.INFO, - getEntityLabel(SetSeine.class), - t("observe.setSeine.message.no.nonTargetDiscarded")); } - return mode; + } + + public void resetWeightSource() { + getTableEditBean().setWeightSource(false); + getUi().getWeight().grabFocus(); + } + + public void resetLengthSource() { + getTableEditBean().setLengthSource(false); + getUi().getLength().grabFocus(); } /** @@ -313,6 +312,7 @@ public class NonTargetSampleUIHandler extends ContentTableUIHandler<NonTargetSam editBean.setWeight(null); // on supprime aussi l'count (pour forcer la saisie) editBean.setCount(null); + } break; @@ -328,6 +328,7 @@ public class NonTargetSampleUIHandler extends ContentTableUIHandler<NonTargetSam // on positionne l'count à 1 (seule valeur possible) editBean.setCount(1); + } break; } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/ObjectObservedSpeciesUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/ObjectObservedSpeciesUIHandler.java index b1369e3..cf5fe8f 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/ObjectObservedSpeciesUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/ObjectObservedSpeciesUIHandler.java @@ -59,30 +59,20 @@ public class ObjectObservedSpeciesUIHandler extends ContentTableUIHandler<Floati } @Override - protected void onOpenUI(ContentMode mode) { - - String floatingObjectId = getDataContext().getSelectedFloatingObjectId(); - - ObjectObservedSpeciesService service = getService(ObjectObservedSpeciesService.class); - - FloatingObject loaded = service.loadForEdit(floatingObjectId); + public void initUI() throws Exception { - copy(FloatingObject.class, BinderService.EDIT_OBJECT_OBSERVED_SPECIES, loaded, getBean()); + // add a listPredicate to get only species from the correct configured speciesList + ObserveConfig config = getUi().getContextValue(ObserveConfig.class); + String speciesListId = config.getSpeciesListSeineObjectObservedSpeciesId(); + prepareSpeciesList(speciesListId, getUi().getSpecies(), n("observe.error.speciesList.seine.objectObservedSpecies.notFound")); - } + super.initUI(); - @Override - protected void onSelectedRowChanged(int editingRow, ObjectObservedSpecies bean, boolean create) { - if (log.isDebugEnabled()) { - log.debug("Row has changed to " + editingRow); - } - if (getTableModel().isEditable()) { - getUi().getSpecies().requestFocus(); - } } @Override protected void initTableUI(DefaultTableCellRenderer renderer) { + JTable table = getUi().getTable(); UIHelper.setI18nTableHeaderRenderer(table, @@ -96,17 +86,31 @@ public class ObjectObservedSpeciesUIHandler extends ContentTableUIHandler<Floati UIHelper.setTableColumnRenderer(table, 0, UIHelper.newDecorateTableCellRenderer(renderer, Species.class)); UIHelper.setTableColumnRenderer(table, 1, UIHelper.newDecorateTableCellRenderer(renderer, SpeciesStatus.class)); UIHelper.setTableColumnRenderer(table, 2, UIHelper.newEmptyNumberTableCellRenderer(renderer)); + } @Override - public void initUI() throws Exception { + protected void onOpenUI(ContentMode mode) { - // add a listPredicate to get only species from the correct configured speciesList - ObserveConfig config = getUi().getContextValue(ObserveConfig.class); - String speciesListId = config.getSpeciesListSeineObjectObservedSpeciesId(); - prepareSpeciesList(speciesListId, getUi().getSpecies(), n("observe.error.speciesList.seine.objectObservedSpecies.notFound")); + String floatingObjectId = getDataContext().getSelectedFloatingObjectId(); - super.initUI(); + ObjectObservedSpeciesService service = getService(ObjectObservedSpeciesService.class); + + FloatingObject loaded = service.loadForEdit(floatingObjectId); + + copy(FloatingObject.class, BinderService.EDIT_OBJECT_OBSERVED_SPECIES, loaded, getBean()); + + } + + @Override + protected void onSelectedRowChanged(int editingRow, ObjectObservedSpecies bean, boolean create) { + + if (log.isDebugEnabled()) { + log.debug("Row has changed to " + editingRow); + } + if (getTableModel().isEditable()) { + getUi().getSpecies().requestFocus(); + } } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/ObjectSchoolEstimateUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/ObjectSchoolEstimateUIHandler.java index 8c6b3b8..63d2f59 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/ObjectSchoolEstimateUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/ObjectSchoolEstimateUIHandler.java @@ -57,32 +57,21 @@ public class ObjectSchoolEstimateUIHandler extends ContentTableUIHandler<Floatin return (ObjectSchoolEstimateUI) super.getUi(); } - @Override - protected void onOpenUI(ContentMode mode) { - - String floatingObjectId = getDataContext().getSelectedFloatingObjectId(); - - ObjectSchoolEstimateService service = getService(ObjectSchoolEstimateService.class); - - FloatingObject loaded = service.loadForEdit(floatingObjectId); + public void initUI() throws Exception { - copy(FloatingObject.class, BinderService.EDIT_OBJECT_SCHOOL_ESTIMATE, loaded, getBean()); + // add a listPredicate to get only species from the correct configured speciesList + ObserveConfig config = getUi().getContextValue(ObserveConfig.class); + String speciesListId = config.getSpeciesListSeineObjectSchoolEstimateId(); + prepareSpeciesList(speciesListId, getUi().getSpecies(), n("observe.error.speciesList.seine.objectSchoolEstimate.notFound")); - } + super.initUI(); - @Override - protected void onSelectedRowChanged(int editingRow, ObjectSchoolEstimate bean, boolean create) { - if (getTableModel().isEditable()) { - if (log.isDebugEnabled()) { - log.debug("Row has changed to " + editingRow); - } - getUi().getSpecies().requestFocus(); - } } @Override protected void initTableUI(DefaultTableCellRenderer renderer) { + JTable table = getUi().getTable(); UIHelper.setI18nTableHeaderRenderer(table, @@ -93,17 +82,31 @@ public class ObjectSchoolEstimateUIHandler extends ContentTableUIHandler<Floatin UIHelper.setTableColumnRenderer(table, 0, UIHelper.newDecorateTableCellRenderer(renderer, Species.class)); UIHelper.setTableColumnRenderer(table, 1, UIHelper.newEmptyNumberTableCellRenderer(renderer)); + } @Override - public void initUI() throws Exception { + protected void onOpenUI(ContentMode mode) { - // add a listPredicate to get only species from the correct configured speciesList - ObserveConfig config = getUi().getContextValue(ObserveConfig.class); - String speciesListId = config.getSpeciesListSeineObjectSchoolEstimateId(); - prepareSpeciesList(speciesListId, getUi().getSpecies(), n("observe.error.speciesList.seine.objectSchoolEstimate.notFound")); + String floatingObjectId = getDataContext().getSelectedFloatingObjectId(); - super.initUI(); + ObjectSchoolEstimateService service = getService(ObjectSchoolEstimateService.class); + + FloatingObject loaded = service.loadForEdit(floatingObjectId); + + copy(FloatingObject.class, BinderService.EDIT_OBJECT_SCHOOL_ESTIMATE, loaded, getBean()); + + } + + @Override + protected void onSelectedRowChanged(int editingRow, ObjectSchoolEstimate bean, boolean create) { + + if (log.isDebugEnabled()) { + log.debug("Row has changed to " + editingRow); + } + if (getTableModel().isEditable()) { + getUi().getSpecies().requestFocus(); + } } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/SchoolEstimateUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/SchoolEstimateUIHandler.java index 663544d..ec76626 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/SchoolEstimateUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/SchoolEstimateUIHandler.java @@ -38,6 +38,7 @@ import fr.ird.observe.ui.content.ContentMode; import fr.ird.observe.ui.content.table.ContentTableModel; import fr.ird.observe.ui.content.table.ContentTableUIHandler; import jaxx.runtime.context.JAXXContextEntryDef; +import jaxx.runtime.swing.editor.bean.BeanComboBox; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -45,7 +46,7 @@ import javax.swing.JComponent; import javax.swing.JTable; import javax.swing.table.DefaultTableCellRenderer; import java.util.ArrayList; -import java.util.Arrays; +import java.util.Collections; import java.util.List; import static org.nuiton.i18n.I18n.n; @@ -72,6 +73,26 @@ public class SchoolEstimateUIHandler extends ContentTableUIHandler<SetSeine, Sch } @Override + protected void initTableUI(DefaultTableCellRenderer renderer) { + + JTable table = getUi().getTable(); + + UIHelper.setI18nTableHeaderRenderer( + table, + n("observe.schoolEstimate.table.speciesThon"), + n("observe.schoolEstimate.table.speciesThon.tip"), + n("observe.schoolEstimate.table.weight"), + n("observe.schoolEstimate.table.weight.tip"), + n("observe.schoolEstimate.table.meanWeight"), + n("observe.schoolEstimate.table.meanWeight.tip")); + + UIHelper.setTableColumnRenderer(table, 0, UIHelper.newDecorateTableCellRenderer(renderer, Species.class)); + UIHelper.setTableColumnRenderer(table, 1, UIHelper.newEmptyNumberTableCellRenderer(renderer)); + UIHelper.setTableColumnRenderer(table, 2, UIHelper.newEmptyNumberTableCellRenderer(renderer)); + + } + + @Override protected void onOpenUI(ContentMode mode) { String setSeineId = getDataContext().getSelectedSetId(); @@ -118,55 +139,43 @@ public class SchoolEstimateUIHandler extends ContentTableUIHandler<SetSeine, Sch ContentTableModel<SetSeine, SchoolEstimate> model = getTableModel(); - if (!model.isEditable()) { + if (model.isEditable()) { - // rien a faire - return; - } + BeanComboBox<Species> speciesComboBox = getUi().getSpecies(); - SchoolEstimateUI ui = getUi(); - List<Species> availableEspeces; - JComponent requestFocus; + List<Species> availableSpecies; + JComponent requestFocus; - if (create) { - availableEspeces = new ArrayList<Species>( - ALL_SPECIES_ENTRY.getContextValue(ui)); + if (create) { - List<Species> list = model.getColumnValues(0); - availableEspeces.removeAll(list); - list.clear(); + availableSpecies = new ArrayList<Species>(ALL_SPECIES_ENTRY.getContextValue(ui)); - requestFocus = ui.getSpecies(); - } else { - Species species = bean.getSpecies(); - availableEspeces = Arrays.asList(species); - requestFocus = ui.getTotalWeight(); - } - ui.getSpecies().setData(availableEspeces); - requestFocus.requestFocus(); - } + List<Species> list = model.getColumnValues(0); + availableSpecies.removeAll(list); + list.clear(); + requestFocus = speciesComboBox; - @Override - protected void initTableUI(DefaultTableCellRenderer renderer) { - JTable table = getUi().getTable(); + } else { - UIHelper.setI18nTableHeaderRenderer( - table, - n("observe.schoolEstimate.table.speciesThon"), - n("observe.schoolEstimate.table.speciesThon.tip"), - n("observe.schoolEstimate.table.weight"), - n("observe.schoolEstimate.table.weight.tip"), - n("observe.schoolEstimate.table.meanWeight"), - n("observe.schoolEstimate.table.meanWeight.tip")); + Species species = bean.getSpecies(); + availableSpecies= Collections.singletonList(species); + requestFocus = getUi().getTotalWeight(); + + } + + speciesComboBox.setData(availableSpecies); + requestFocus.requestFocus(); + + } - UIHelper.setTableColumnRenderer(table, 0, UIHelper.newDecorateTableCellRenderer(renderer, Species.class)); - UIHelper.setTableColumnRenderer(table, 1, UIHelper.newEmptyNumberTableCellRenderer(renderer)); - UIHelper.setTableColumnRenderer(table, 2, UIHelper.newEmptyNumberTableCellRenderer(renderer)); } @Override protected void doPersist(SetSeine editBean) { - getService(SchoolEstimateService.class).save(editBean); + + SchoolEstimateService service = getService(SchoolEstimateService.class); + service.save(editBean); + } } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetCatchUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetCatchUIHandler.java index 39a8e98..9e89625 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetCatchUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetCatchUIHandler.java @@ -211,6 +211,54 @@ public class TargetCatchUIHandler extends ContentTableUIHandler<SetSeine, Target } @Override + protected void onSelectedRowChanged(int editingRow, TargetCatch bean, boolean create) { + + TargetCatchUI ui = getUi(); + + WeightCategory weightCategory = bean.getWeightCategory(); + Species species = weightCategory == null ? null : weightCategory.getSpecies(); + + BeanComboBox<Species> speciesComboBox = ui.getSpecies(); + BeanComboBox<WeightCategory> weightCategoryComboBox = ui.getWeightCategory(); + + JComponent requestFocus; + if (create) { + + // on reinitilise toujours l'espèce (pour reinitialiser la liste des categories) + speciesComboBox.setSelectedItem(null); + + if (!getTableModel().isCreate()) { + // on repositionne l'espèce (cela reconstruira la liste des categories) + speciesComboBox.setSelectedItem(species); + // on repositionne la categorie + weightCategoryComboBox.setSelectedItem(weightCategory); + } + + requestFocus = speciesComboBox; + + } else { + + // en mode mise a jour, on restreint la liste des categories + // au singleton de sa valeur correspondante dans le bean + // puisque dans ce mode, pas possibilite de modifier de cette + // valeur (clef metier) + speciesComboBox.setSelectedItem(species); + weightCategoryComboBox.setData(Collections.singletonList(weightCategory)); + weightCategoryComboBox.setSelectedItem(weightCategory); + + requestFocus = ui.getCatchWeight(); + + } + + if (log.isDebugEnabled()) { + log.debug("selected categoriePoid " + weightCategory); + log.debug("selected species " + species); + } + requestFocus.requestFocus(); + + } + + @Override protected boolean prepareSave(SetSeine bean, List<TargetCatch> objets) { // on recupere les espèces acceptables pour des echantillonnages @@ -289,12 +337,12 @@ public class TargetCatchUIHandler extends ContentTableUIHandler<SetSeine, Target @Override protected void doPersist(SetSeine editBean) { - List<TargetLength> tailleToDelete = ALL_TARGET_LENGTH_TO_DELETE_ENTRY.getContextValue(getUi()); + List<TargetLength> targetLengthsToDelete = ALL_TARGET_LENGTH_TO_DELETE_ENTRY.getContextValue(getUi()); try { TargetCatchService service = getService(TargetCatchService.class); - service.save(editBean, tailleToDelete); + service.save(editBean, targetLengthsToDelete); } finally { @@ -305,54 +353,6 @@ public class TargetCatchUIHandler extends ContentTableUIHandler<SetSeine, Target } - @Override - protected void onSelectedRowChanged(int editingRow, TargetCatch bean, boolean create) { - - TargetCatchUI ui = getUi(); - - WeightCategory weightCategory = bean.getWeightCategory(); - Species species = weightCategory == null ? null : weightCategory.getSpecies(); - - BeanComboBox<Species> speciesComboBox = ui.getSpecies(); - BeanComboBox<WeightCategory> weightCategoryComboBox = ui.getWeightCategory(); - - JComponent requestFocus; - if (create) { - - // on reinitilise toujours l'espèce (pour reinitialiser la liste des categories) - speciesComboBox.setSelectedItem(null); - - if (!getTableModel().isCreate()) { - // on repositionne l'espèce (cela reconstruira la liste des categories) - speciesComboBox.setSelectedItem(species); - // on repositionne la categorie - weightCategoryComboBox.setSelectedItem(weightCategory); - } - - requestFocus = speciesComboBox; - - } else { - - // en mode mise a jour, on restreint la liste des categories - // au singleton de sa valeur correspondante dans le bean - // puisque dans ce mode, pas possibilite de modifier de cette - // valeur (clef metier) - speciesComboBox.setSelectedItem(species); - weightCategoryComboBox.setData(Collections.singletonList(weightCategory)); - weightCategoryComboBox.setSelectedItem(weightCategory); - - requestFocus = ui.getCatchWeight(); - - } - - if (log.isDebugEnabled()) { - log.debug("selected categoriePoid " + weightCategory); - log.debug("selected species " + species); - } - requestFocus.requestFocus(); - - } - @SuppressWarnings("unchecked") protected void onSpeciesChanged(Species species) { diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetDiscardCatchUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetDiscardCatchUIHandler.java index 739fcc5..22333ea 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetDiscardCatchUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetDiscardCatchUIHandler.java @@ -247,6 +247,73 @@ public class TargetDiscardCatchUIHandler extends ContentTableUIHandler<SetSeine, } @Override + protected void onSelectedRowChanged(int editingRow, TargetCatch bean, boolean create) { + + WeightCategory beanWeightCategory = bean.getWeightCategory(); + Species beanEspece = beanWeightCategory == null ? null : beanWeightCategory.getSpecies(); + ReasonForDiscard beanReasonForDiscard = bean.getReasonForDiscard(); + + if (log.isDebugEnabled()) { + log.debug("selected categoriePoid " + beanWeightCategory); + log.debug("selected species " + beanEspece); + log.debug("selected reasonForDiscard " + beanReasonForDiscard); + } + + TargetDiscardCatchUI ui = getUi(); + + BeanComboBox<Species> speciesComboBox = ui.getSpecies(); + BeanComboBox<WeightCategory> weightCategoryComboBox = ui.getWeightCategory(); + BeanComboBox<ReasonForDiscard> reasonForDiscardComboBox = ui.getReasonForDiscard(); + + JComponent requestFocus; + if (create) { + + ContentTableModel<SetSeine, TargetCatch> model = getTableModel(); + if (model.isCreate()) { + // par défaut, on considère que l'espèce a été monté sur le pont + // c'est le cas le plus fréquent. + bean.setBroughtOnDeck(true); + } + + // on recalcule la liste des speciess disponibles + List<Species> availableEspeces = buildSpeciesList(beanEspece, beanWeightCategory); + speciesComboBox.setData(availableEspeces); + + // on reinitilise toujours la liste des espèces (pour reinitialiser la liste des categories) + speciesComboBox.setSelectedItem(null); + + if (!model.isCreate()) { + // on repositionne l'species (cela reconstruira la liste + // des categories) + speciesComboBox.setSelectedItem(beanEspece); + // on repositionne la categorie + weightCategoryComboBox.setSelectedItem(beanWeightCategory); + reasonForDiscardComboBox.setSelectedItem(beanReasonForDiscard); + } + + requestFocus = speciesComboBox; + + } else { + + // en mode mise a jour, on restreint la liste des categories + // au singleton de sa valeur correspondante dans le bean + // puisque dans ce mode, pas possibilite de modifier de cette + // valeur (clef metier) + speciesComboBox.setSelectedItem(beanEspece); + weightCategoryComboBox.setData(Collections.singletonList(beanWeightCategory)); + weightCategoryComboBox.setSelectedItem(beanWeightCategory); + reasonForDiscardComboBox.setData(Collections.singletonList(beanReasonForDiscard)); + reasonForDiscardComboBox.setSelectedItem(beanReasonForDiscard); + + requestFocus = ui.getCatchWeight(); + + } + + requestFocus.requestFocus(); + + } + + @Override protected boolean prepareSave(SetSeine editBean, List<TargetCatch> objets) { // on recupere les espèces acceptables pour des echantillonnages @@ -346,69 +413,6 @@ public class TargetDiscardCatchUIHandler extends ContentTableUIHandler<SetSeine, } - @Override - protected void onSelectedRowChanged(int editingRow, TargetCatch bean, boolean create) { - - TargetDiscardCatchUI ui = getUi(); - - WeightCategory beanWeightCategory = bean.getWeightCategory(); - Species beanEspece = beanWeightCategory == null ? null : beanWeightCategory.getSpecies(); - ReasonForDiscard beanReasonForDiscard = bean.getReasonForDiscard(); - if (log.isDebugEnabled()) { - log.debug("selected categoriePoid " + beanWeightCategory); - log.debug("selected species " + beanEspece); - log.debug("selected reasonForDiscard " + beanReasonForDiscard); - } - - BeanComboBox<Species> speciesComboBox = ui.getSpecies(); - - JComponent requestFocus; - if (create) { - - ContentTableModel<SetSeine, TargetCatch> model = getTableModel(); - if (model.isCreate()) { - // par défaut, on considère que l'espèce a été monté sur le pont - // c'est le cas le plus fréquent. - bean.setBroughtOnDeck(true); - } - - // on recalcule la liste des speciess disponibles - List<Species> availableEspeces = buildSpeciesList(beanEspece, beanWeightCategory); - speciesComboBox.setData(availableEspeces); - - // on reinitilise toujours la liste des espèces (pour reinitialiser la liste des categories) - speciesComboBox.setSelectedItem(null); - - if (!model.isCreate()) { - // on repositionne l'species (cela reconstruira la liste - // des categories) - speciesComboBox.setSelectedItem(beanEspece); - // on repositionne la categorie - ui.getWeightCategory().setSelectedItem(beanWeightCategory); - ui.getReasonForDiscard().setSelectedItem(beanReasonForDiscard); - } - - requestFocus = speciesComboBox; - - } else { - - // en mode mise a jour, on restreint la liste des categories - // au singleton de sa valeur correspondante dans le bean - // puisque dans ce mode, pas possibilite de modifier de cette - // valeur (clef metier) - speciesComboBox.setSelectedItem(beanEspece); - ui.getWeightCategory().setData(Collections.singletonList(beanWeightCategory)); - ui.getWeightCategory().setSelectedItem(beanWeightCategory); - ui.getReasonForDiscard().setData(Collections.singletonList(beanReasonForDiscard)); - ui.getReasonForDiscard().setSelectedItem(beanReasonForDiscard); - - requestFocus = ui.getCatchWeight(); - - } - - requestFocus.requestFocus(); - } - protected void onSpeciesChanged(TargetCatch bean, Species species) { WeightCategory weightCategory = null; diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetSampleUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetSampleUIHandler.java index 0cfa053..adae963 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetSampleUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/TargetSampleUIHandler.java @@ -29,13 +29,15 @@ import fr.ird.observe.entities.referentiel.Species; import fr.ird.observe.entities.seine.SetSeine; import fr.ird.observe.entities.seine.TargetLength; import fr.ird.observe.entities.seine.TargetSample; -import fr.ird.observe.services.data.seine.TargetLengthService; import fr.ird.observe.services.data.seine.TargetSampleService; import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.content.ContentMode; import fr.ird.observe.ui.content.table.ContentTableModel; import fr.ird.observe.ui.content.table.ContentTableUI; import fr.ird.observe.ui.content.table.ContentTableUIHandler; +import jaxx.runtime.swing.JAXXButtonGroup; +import jaxx.runtime.swing.editor.EnumEditor; +import jaxx.runtime.swing.editor.bean.BeanComboBox; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.validator.NuitonValidatorScope; @@ -60,8 +62,7 @@ public class TargetSampleUIHandler extends ContentTableUIHandler<TargetSample, T static private Log log = LogFactory.getLog(TargetSampleUIHandler.class); /** - * Pour différencier positionner l'invariant de l'écran - * {@link TargetSample#getDiscarded()}. + * Pour différencier positionner l'invariant de l'écran {@link TargetSample#getDiscarded()}. * * @since 1.5 */ @@ -69,8 +70,7 @@ public class TargetSampleUIHandler extends ContentTableUIHandler<TargetSample, T /** * Ecoute les modifications de la propriété {@link TargetLength#getWeight()}, - * et repasser alors le flag {@link TargetLength#isWeightSource()} à - * {@code false}. + * et repasser alors le flag {@link TargetLength#isWeightSource()} à {@code false}. * * @since 3.0 */ @@ -84,8 +84,7 @@ public class TargetSampleUIHandler extends ContentTableUIHandler<TargetSample, T /** * Ecoute les modifications de la propriété {@link TargetLength#getLength()}, - * et repasser alors le flag {@link TargetLength#isLengthSource()} à - * {@code false}. + * et repasser alors le flag {@link TargetLength#isLengthSource()} à {@code false}. * * @since 3.0 */ @@ -97,8 +96,7 @@ public class TargetSampleUIHandler extends ContentTableUIHandler<TargetSample, T } }; - public TargetSampleUIHandler(ContentTableUI<TargetSample, TargetLength> ui, - boolean discarded) { + public TargetSampleUIHandler(ContentTableUI<TargetSample, TargetLength> ui, boolean discarded) { super(ui, DataContextType.SetSeine); this.discarded = discarded; } @@ -108,14 +106,33 @@ public class TargetSampleUIHandler extends ContentTableUIHandler<TargetSample, T return (TargetSampleUI) super.getUi(); } - public void resetWeightSource() { - getTableEditBean().setWeightSource(false); - getUi().getWeight().grabFocus(); - } + @Override + protected void initTableUI(DefaultTableCellRenderer renderer) { + + JTable table = getUi().getTable(); + + UIHelper.setI18nTableHeaderRenderer( + table, + n("observe.targetSample.table.speciesThon"), + n("observe.targetSample.table.speciesThon.tip"), + n("observe.targetSample.table.measureType"), + n("observe.targetSample.table.measureType.tip"), + n("observe.targetSample.table.length"), + n("observe.targetSample.table.length.tip"), + n("observe.targetSample.table.meanWeight"), + n("observe.targetSample.table.meanWeight.tip"), + n("observe.targetSample.table.count"), + n("observe.targetSample.table.count.tip"), + n("observe.targetSample.table.totalWeight"), + n("observe.targetSample.table.totalWeight.tip")); + + UIHelper.setTableColumnRenderer(table, 0, UIHelper.newDecorateTableCellRenderer(renderer, Species.class)); + UIHelper.setTableColumnRenderer(table, 1, UIHelper.newEnumTableCellRenderer(renderer, CodeMesureEnum.class)); + UIHelper.setTableColumnRenderer(table, 2, UIHelper.newEmptyNumberTableCellRenderer(renderer)); + UIHelper.setTableColumnRenderer(table, 3, UIHelper.newEmptyNumberTableCellRenderer(renderer)); + UIHelper.setTableColumnRenderer(table, 4, UIHelper.newEmptyNumberTableCellRenderer(renderer)); + UIHelper.setTableColumnRenderer(table, 5, UIHelper.newEmptyNumberTableCellRenderer(renderer)); - public void resetLengthSource() { - getTableEditBean().setLengthSource(false); - getUi().getLength().grabFocus(); } @Override @@ -123,170 +140,157 @@ public class TargetSampleUIHandler extends ContentTableUIHandler<TargetSample, T String setId = getDataContext().getSelectedSetId(); - TargetSample targetSample = getService(TargetLengthService.class).loadForEdit(setId, discarded); + TargetSampleService service = getService(TargetSampleService.class); + + TargetSample targetSample = service.loadForEdit(setId, discarded); copy(TargetSample.class, BinderService.EDIT_TARGET_LENGTH, targetSample, getBean()); if (ContentMode.UPDATE == mode) { - // on ne charge les speciess uniquement si on est en mode édition - List<Species> speciesList = getService(TargetSampleService.class).getAvailableSpeciesForTargetSample(setId, discarded); - + // on charge les espèces uniquement si on est en mode édition + List<Species> speciesList = service.getAvailableSpeciesForTargetSample(setId, discarded); getUi().getSpecies().setData(speciesList); } - getModel().setMode(mode); - - - // initialisation du modèle du tableau - getUi().getTableModel().attachModel(); - } @Override - protected void doPersist(TargetSample editBean) { + protected ContentMode getContentMode(DataContext dataContext) { - String setId = getDataContext().getSelectedSetId(); + ContentMode mode = super.getContentMode(dataContext); + String setId = getDataContext().getSelectedSetId(); TargetSampleService service = getService(TargetSampleService.class); + boolean showData = service.canUseTargetSample(setId, discarded); - if (!Entities.isNew(editBean) && editBean.isTargetLengthEmpty()) { - - // remove orphan target sample - if (log.isInfoEnabled()) { - log.info("Remove obsolete targetSample " + editBean.getTopiaId() + " from Set: " + setId); - } + getModel().setShowData(showData); - //FIXME Non, la sauvegarde doit être faite par un seul appel au service (sinon fait dans 2 transactions) - service.delete(setId, editBean); + if (mode == ContentMode.UPDATE && !showData) { - } else { + mode = ContentMode.READ; - String savedId = service.save(setId, editBean); - editBean.setTopiaId(savedId); - //FIXME Non, la sauvegarde doit être faite par un seul appel au service (sinon fait dans 2 transactions) - getService(TargetLengthService.class).save(editBean); + addMessage(getUi(), + NuitonValidatorScope.INFO, + getEntityLabel(SetSeine.class), + discarded ? + t("observe.setSeine.message.no.targetCatch") : + t("observe.setSeine.message.no.targetDiscarded")); } + + return mode; + } @Override protected void onSelectedRowChanged(int editingRow, TargetLength bean, boolean create) { ContentTableModel<TargetSample, TargetLength> model = getTableModel(); - TargetSampleUI ui = getUi(); - if (!model.isEditable()) { - return; - } - Species species = bean.getSpecies(); - JComponent requestFocus; + if (model.isEditable()) { - if (create) { + Species species = bean.getSpecies(); -// if (model.isCreate() && editingRow > 0) { - if (model.isCreate()) { + TargetSampleUI ui = getUi(); + JAXXButtonGroup acquisitionModeGroup = ui.getAcquisitionModeGroup(); + BeanComboBox<Species> speciesComboBox = ui.getSpecies(); - if (editingRow > 0) { - // on recupere l'species de la ligne precedente - TargetLength editBean = model.getValueAt(editingRow - 1); - species = editBean.getSpecies(); - } + JComponent requestFocus; - // on passe le mode de saisie en count - ui.getAcquisitionModeGroup().setSelectedValue(null); - ui.getAcquisitionModeGroup().setSelectedValue(ModeSaisieEchantillonEnum.byEffectif); + if (create) { - // on utilise par défaut le code mesure lf - ui.getMeasureType().setSelectedItem(null); - ui.getMeasureType().setSelectedItem(CodeMesureEnum.lf); - } + if (model.isCreate()) { - requestFocus = ui.getSpecies(); + if (editingRow > 0) { - } else { + // on recupere l'espèce de la ligne precedente + TargetLength editBean = model.getValueAt(editingRow - 1); + species = editBean.getSpecies(); - requestFocus = ui.getCount(); + } - // on passe le mode de saisie - int acquisitionMode = bean.getAcquisitionMode(); - ModeSaisieEchantillonEnum enumValue = - ModeSaisieEchantillonEnum.valueOf(acquisitionMode); - ui.getAcquisitionModeGroup().setSelectedValue(null); - ui.getAcquisitionModeGroup().setSelectedValue(enumValue); - } + // on passe le mode de saisie en count + acquisitionModeGroup.setSelectedValue(null); + acquisitionModeGroup.setSelectedValue(ModeSaisieEchantillonEnum.byEffectif); - // on met a jour l'espce - ui.getSpecies().setSelectedItem(null); + // on utilise par défaut le code mesure lf + EnumEditor measureType = ui.getMeasureType(); + measureType.setSelectedItem(null); + measureType.setSelectedItem(CodeMesureEnum.lf); + + } + + requestFocus = speciesComboBox; + + } else { + + requestFocus = ui.getCount(); + + // on passe le mode de saisie + int acquisitionMode = bean.getAcquisitionMode(); + ModeSaisieEchantillonEnum enumValue = ModeSaisieEchantillonEnum.valueOf(acquisitionMode); + acquisitionModeGroup.setSelectedValue(null); + acquisitionModeGroup.setSelectedValue(enumValue); - if (species != null) { - if (log.isDebugEnabled()) { - log.debug("species to use " + species); } - ui.getSpecies().setSelectedItem(species); - } - requestFocus.requestFocus(); - TargetLength tableEditBean = getTableEditBean(); - reloadPropertyChangeListener(tableEditBean, TargetLength.PROPERTY_WEIGHT, weightChanged); - reloadPropertyChangeListener(tableEditBean, TargetLength.PROPERTY_LENGTH, lengthChanged); + // on met a jour l'espèce + speciesComboBox.setSelectedItem(null); - } + if (species != null) { - @Override - protected void initTableUI(DefaultTableCellRenderer renderer) { + if (log.isDebugEnabled()) { + log.debug("species to use " + species); + } + speciesComboBox.setSelectedItem(species); - JTable table = getUi().getTable(); + } - UIHelper.setI18nTableHeaderRenderer( - table, - n("observe.targetSample.table.speciesThon"), - n("observe.targetSample.table.speciesThon.tip"), - n("observe.targetSample.table.measureType"), - n("observe.targetSample.table.measureType.tip"), - n("observe.targetSample.table.length"), - n("observe.targetSample.table.length.tip"), - n("observe.targetSample.table.meanWeight"), - n("observe.targetSample.table.meanWeight.tip"), - n("observe.targetSample.table.count"), - n("observe.targetSample.table.count.tip"), - n("observe.targetSample.table.totalWeight"), - n("observe.targetSample.table.totalWeight.tip")); + requestFocus.requestFocus(); + + TargetLength tableEditBean = getTableEditBean(); + reloadPropertyChangeListener(tableEditBean, TargetLength.PROPERTY_WEIGHT, weightChanged); + reloadPropertyChangeListener(tableEditBean, TargetLength.PROPERTY_LENGTH, lengthChanged); + + } - UIHelper.setTableColumnRenderer(table, 0, UIHelper.newDecorateTableCellRenderer(renderer, Species.class)); - UIHelper.setTableColumnRenderer(table, 1, UIHelper.newEnumTableCellRenderer(renderer, CodeMesureEnum.class)); - UIHelper.setTableColumnRenderer(table, 2, UIHelper.newEmptyNumberTableCellRenderer(renderer)); - UIHelper.setTableColumnRenderer(table, 3, UIHelper.newEmptyNumberTableCellRenderer(renderer)); - UIHelper.setTableColumnRenderer(table, 4, UIHelper.newEmptyNumberTableCellRenderer(renderer)); - UIHelper.setTableColumnRenderer(table, 5, UIHelper.newEmptyNumberTableCellRenderer(renderer)); } @Override - protected ContentMode getContentMode(DataContext dataContext) { - ContentMode mode = super.getContentMode(dataContext); - + protected void doPersist(TargetSample editBean) { String setId = getDataContext().getSelectedSetId(); + TargetSampleService service = getService(TargetSampleService.class); - boolean showData = service.canUseTargetSample(setId, discarded); - getModel().setShowData(showData); + if (!Entities.isNew(editBean) && editBean.isTargetLengthEmpty()) { - if (mode == ContentMode.UPDATE && !showData) { + // remove orphan target sample + if (log.isInfoEnabled()) { + log.info("Remove obsolete targetSample " + editBean.getTopiaId() + " from Set: " + setId); + } - mode = ContentMode.READ; + service.delete(setId, editBean); + + } else { + + String savedId = service.save(setId, editBean); + editBean.setTopiaId(savedId); - addMessage(getUi(), - NuitonValidatorScope.INFO, - getEntityLabel(SetSeine.class), - discarded ? - t("observe.setSeine.message.no.targetCatch") : - t("observe.setSeine.message.no.targetDiscarded") - ); } - return mode; + } + + public void resetWeightSource() { + getTableEditBean().setWeightSource(false); + getUi().getWeight().grabFocus(); + } + + public void resetLengthSource() { + getTableEditBean().setLengthSource(false); + getUi().getLength().grabFocus(); } /** @@ -351,6 +355,8 @@ public class TargetSampleUIHandler extends ContentTableUIHandler<TargetSample, T // on propage le mode de saisie dans le bean editBean.setAcquisitionMode(newMode.ordinal()); + } + } } -- 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