branch feature/7017 updated (90ff5b0 -> 42c1b49)
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 90ff5b0 fix measurement save code new 42c1b49 correction sauvegarde équipement, sauvegarde composition 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 42c1b4988c7ed310c38dd341ae6113324f4fa54d Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Thu Apr 30 18:19:57 2015 +0200 correction sauvegarde équipement, sauvegarde composition Summary of changes: .../observe/services/AbstractObserveService.java | 26 +++++++++++++++ .../GearUseFeaturesLonglineServiceImpl.java | 2 +- .../longline/LonglineGlobalCompositionService.java | 15 +++++++++ .../LonglineGlobalCompositionServiceImpl.java | 39 ++++++++++++++++++++++ .../LonglineGlobalCompositionUIHandler.java | 28 +++++++++------- .../longline/GearUseFeaturesLonglineUIHandler.java | 2 +- .../impl/seine/GearUseFeaturesSeineUIHandler.java | 2 +- .../EditableTableWithCacheTableModelSupport.java | 11 ++++++ 8 files changed, 110 insertions(+), 15 deletions(-) create mode 100644 observe-services/src/main/java/fr/ird/observe/services/data/longline/LonglineGlobalCompositionService.java create mode 100644 observe-services/src/main/java/fr/ird/observe/services/data/longline/LonglineGlobalCompositionServiceImpl.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 42c1b4988c7ed310c38dd341ae6113324f4fa54d Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Thu Apr 30 18:19:57 2015 +0200 correction sauvegarde équipement, sauvegarde composition --- .../observe/services/AbstractObserveService.java | 26 +++++++++++++++ .../GearUseFeaturesLonglineServiceImpl.java | 2 +- .../longline/LonglineGlobalCompositionService.java | 15 +++++++++ .../LonglineGlobalCompositionServiceImpl.java | 39 ++++++++++++++++++++++ .../LonglineGlobalCompositionUIHandler.java | 28 +++++++++------- .../longline/GearUseFeaturesLonglineUIHandler.java | 2 +- .../impl/seine/GearUseFeaturesSeineUIHandler.java | 2 +- .../EditableTableWithCacheTableModelSupport.java | 11 ++++++ 8 files changed, 110 insertions(+), 15 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 37c7307..d9f5bf5 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 @@ -7,9 +7,11 @@ import fr.ird.observe.BinderService; import fr.ird.observe.IObserveConfig; import fr.ird.observe.ObserveEntityEnum; import fr.ird.observe.ObserveServiceHelper; +import fr.ird.observe.ObserveTechnicalException; import fr.ird.observe.entities.Entities; import fr.ird.observe.entities.EntityMap; import fr.ird.observe.entities.constants.ReferenceLocale; +import org.apache.commons.lang3.reflect.ConstructorUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.decorator.Decorator; @@ -449,6 +451,30 @@ public abstract class AbstractObserveService implements ObserveService { TopiaEntityHelper.checkNotNullAndExistingEntity(variableName, entity); } + protected <S extends ObserveService> S newService(Class<S> serviceType) { + + Class<S> serviceImpl; + try { + //FIXME Cela devrait dépendre de la datasource ? + serviceImpl = (Class<S>) Class.forName(serviceType.getName() + "Impl"); + } catch (ClassNotFoundException e) { + throw new IllegalStateException("Could not find implementation class for " + serviceType); + } + + try { + + // Instanciate concrete service + S service = ConstructorUtils.invokeConstructor(serviceImpl); + service.setServiceContext(serviceContext); + + return service; + + } catch (Exception e) { + throw new ObserveTechnicalException("Could not create service: " + serviceType, e); + } + + } + 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 920d654..b089a8e 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 @@ -140,7 +140,7 @@ public class GearUseFeaturesLonglineServiceImpl extends AbstractObserveService i GearUseFeaturesMeasurementLongline measurementSaved; if (measurementToSave.getTopiaId() == null) { - + measurementSaved = dao.create(GearUseFeaturesMeasurementLongline.PROPERTY_GEAR_CARACTERISTIC, measurementToSave.getGearCaracteristic()); measurementBinder.load(measurementToSave, measurementSaved, false); diff --git a/observe-services/src/main/java/fr/ird/observe/services/data/longline/LonglineGlobalCompositionService.java b/observe-services/src/main/java/fr/ird/observe/services/data/longline/LonglineGlobalCompositionService.java new file mode 100644 index 0000000..41fe50e --- /dev/null +++ b/observe-services/src/main/java/fr/ird/observe/services/data/longline/LonglineGlobalCompositionService.java @@ -0,0 +1,15 @@ +package fr.ird.observe.services.data.longline; + +import fr.ird.observe.entities.longline.SetLongline; +import fr.ird.observe.services.Commit; +import fr.ird.observe.services.ObserveService; + +/** + * @author Sylvain Bavencoff - bavencoff@codelutin.com + */ +public interface LonglineGlobalCompositionService extends ObserveService{ + + @Commit + String save(SetLongline bean); + +} diff --git a/observe-services/src/main/java/fr/ird/observe/services/data/longline/LonglineGlobalCompositionServiceImpl.java b/observe-services/src/main/java/fr/ird/observe/services/data/longline/LonglineGlobalCompositionServiceImpl.java new file mode 100644 index 0000000..2ffef64 --- /dev/null +++ b/observe-services/src/main/java/fr/ird/observe/services/data/longline/LonglineGlobalCompositionServiceImpl.java @@ -0,0 +1,39 @@ +package fr.ird.observe.services.data.longline; + +import fr.ird.observe.BinderService; +import fr.ird.observe.entities.longline.SetLongline; +import fr.ird.observe.entities.referentiel.longline.MitigationType; +import fr.ird.observe.services.AbstractObserveService; + +/** + * @author Sylvain Bavencoff - bavencoff@codelutin.com + */ +public class LonglineGlobalCompositionServiceImpl extends AbstractObserveService implements LonglineGlobalCompositionService { + + @Override + public String save(SetLongline toSave) { + + SetLongline saved = findByTopiaId(SetLongline.class, toSave.getTopiaId()); + + copyExcluding(SetLongline.class, BinderService.EDIT_GLOBAL_COMPOSITION, toSave, saved, SetLongline.PROPERTY_MITIGATION_TYPE); + + saved.clearMitigationType(); + + for (MitigationType mitigationTypeToSave : toSave.getMitigationType()) { + + MitigationType mitigationTypeSaved = findByTopiaId(MitigationType.class, mitigationTypeToSave.getTopiaId()); + + saved.addMitigationType(mitigationTypeSaved); + + } + + getDao(SetLongline.class).update(saved); + + newService(FloatlinesCompositionService.class).save(toSave); + newService(BranchlinesCompositionService.class).save(toSave); + newService(HooksCompositionService.class).save(toSave); + newService(BaitsCompositionService.class).save(toSave); + + return saved.getTopiaId(); + } +} diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/LonglineGlobalCompositionUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/LonglineGlobalCompositionUIHandler.java index d176a38..821f821 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/LonglineGlobalCompositionUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/impl/longline/LonglineGlobalCompositionUIHandler.java @@ -22,12 +22,14 @@ package fr.ird.observe.ui.content.impl.longline; * #L% */ +import fr.ird.observe.BinderService; import fr.ird.observe.DataService; import fr.ird.observe.db.DataContext; import fr.ird.observe.db.DataSource; import fr.ird.observe.db.constants.DataContextType; import fr.ird.observe.entities.longline.ActivityLongline; import fr.ird.observe.entities.longline.SetLongline; +import fr.ird.observe.services.data.longline.LonglineGlobalCompositionService; import fr.ird.observe.ui.content.ContentMode; import fr.ird.observe.ui.content.ContentUIHandler; import fr.ird.observe.ui.content.table.impl.longline.BaitsCompositionUI; @@ -36,8 +38,6 @@ import fr.ird.observe.ui.content.table.impl.longline.FloatlinesCompositionUI; import fr.ird.observe.ui.content.table.impl.longline.HooksCompositionUI; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaException; import org.nuiton.topia.persistence.util.TopiaEntityBinder; import org.nuiton.validator.NuitonValidatorScope; @@ -196,19 +196,16 @@ public class LonglineGlobalCompositionUIHandler extends ContentUIHandler<SetLong } @Override - protected SetLongline onUpdate(TopiaContext tx, Object parentBean, SetLongline beanToSave) throws TopiaException { + protected boolean doSave(SetLongline bean) throws Exception { - beanToSave.setComment(getBean().getComment()); - beanToSave.clearMitigationType(); - beanToSave.addAllMitigationType(getBean().getMitigationType()); + copy(SetLongline.class, BinderService.EDIT_FLOATLINES_COMPOSITION, getUi().getFloatlinesCompositionUI().getBean(), bean); + copy(SetLongline.class, BinderService.EDIT_BRANCHLINES_COMPOSITION, getUi().getBranchlinesCompositionUI().getBean(), bean); + copy(SetLongline.class, BinderService.EDIT_HOOKS_COMPOSITION, getUi().getHooksCompositionUI().getBean(), bean); + copy(SetLongline.class, BinderService.EDIT_BAITS_COMPOSITION, getUi().getBaitsCompositionUI().getBean(), bean); - //FIXME -// getUi().getFloatlinesCompositionUI().getHandler().onUpdate(tx, parentBean, beanToSave); -// getUi().getBranchlinesCompositionUI().getHandler().onUpdate(tx, parentBean, beanToSave); -// getUi().getHooksCompositionUI().getHandler().onUpdate(tx, parentBean, beanToSave); -// getUi().getBaitsCompositionUI().getHandler().onUpdate(tx, parentBean, beanToSave); + getService(LonglineGlobalCompositionService.class).save(bean); - return beanToSave; + return true; } @Override @@ -220,4 +217,11 @@ public class LonglineGlobalCompositionUIHandler extends ContentUIHandler<SetLong getUi().getHooksCompositionUI().getHandler().afterSave(refresh); getUi().getBaitsCompositionUI().getHandler().afterSave(refresh); } + + //TODO Supprimer saveUI et mettre saveUI2 a la place + @Override + public final void saveUI(boolean refresh) { + saveUI2(refresh); + } + } \ No newline at end of file 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 c36fd99..6d1421f 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 @@ -147,7 +147,7 @@ public class GearUseFeaturesLonglineUIHandler extends ContentTableUIHandler<Trip GearUseFeaturesLongline gearUseFeaturesLongline = gearUseFeatures.get(row); - List<GearUseFeaturesMeasurementLongline> measurements = measurementsTableModel.getCacheForRow(row); + List<GearUseFeaturesMeasurementLongline> measurements = measurementsTableModel.getCacheForRowNotEmpty(row); gearUseFeaturesLongline.clearGearUseFeaturesMeasurement(); 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 64c854b..9416c2f 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 @@ -398,7 +398,7 @@ public class GearUseFeaturesSeineUIHandler extends ContentTableUIHandler<TripSei GearUseFeaturesSeine gearUseFeaturesSeine = gearUseFeatures.get(row); - List<GearUseFeaturesMeasurementSeine> measurements = measurementsTableModel.getCacheForRow(row); + List<GearUseFeaturesMeasurementSeine> measurements = measurementsTableModel.getCacheForRowNotEmpty(row); gearUseFeaturesSeine.clearGearUseFeaturesMeasurement(); diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/util/table/EditableTableWithCacheTableModelSupport.java b/observe-swing/src/main/java/fr/ird/observe/ui/util/table/EditableTableWithCacheTableModelSupport.java index 54f2cc1..705d16a 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/util/table/EditableTableWithCacheTableModelSupport.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/util/table/EditableTableWithCacheTableModelSupport.java @@ -71,6 +71,17 @@ public abstract class EditableTableWithCacheTableModelSupport<E extends TopiaEnt return measures == null ? null : measures.getData(); } + public List<E> getCacheForRowNotEmpty(int rowIndex) { + List<E> measures = Lists.newArrayList(); + for (E measure : getCacheForRow(rowIndex)) { + if (isRowNotEmpty(measure)) { + measures.add(measure); + } + } + + return measures; + } + public void initCacheForRow(int editingRow, List<E> data) { EditableList<E> editableList = cacheByRow.get(editingRow); -- 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