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 c455e5c04b3b588e1f86726373b239ebe9302224 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Apr 27 09:11:20 2015 +0200 continue les écrans simples sur le modèle seine (refs #7017) --- .../observe/services/AbstractObserveService.java | 10 +- .../services/data/seine/ActivitySeineService.java | 8 +- .../data/seine/ActivitySeineServiceImpl.java | 60 +++++- .../services/data/seine/FloatingObjectService.java | 35 +++- .../data/seine/FloatingObjectServiceImpl.java | 221 +++++++++++++++++++-- .../ActivitySeineObservedSystemUIHandler.java | 47 ++--- ...ngObjectTransmittingBuoyOperationUIHandler.java | 121 +++++------ ...tingObjectTransmittingBuoyOperationUIModel.java | 58 +++--- .../impl/seine/FloatingObjectUIHandler.java | 96 ++++----- 9 files changed, 447 insertions(+), 209 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 b15a574..b0a0c17 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 @@ -181,7 +181,7 @@ public abstract class AbstractObserveService implements ObserveService { if (r == null) { BinderModelBuilder<E, E> builder = createBinder.createBinderBuilder(binderService, binderName); - r = binderService.registerTopiaBinder(entityType, builder, binderName); + r = createBinder.registerTopiaBinder(binderService, entityType, builder, binderName); } @@ -189,9 +189,13 @@ public abstract class AbstractObserveService implements ObserveService { } - protected interface CreateBinder<E extends TopiaEntity> { + protected abstract class CreateBinder<E extends TopiaEntity> { - BinderModelBuilder<E, E> createBinderBuilder(BinderService binderService, String name); + public abstract BinderModelBuilder<E, E> createBinderBuilder(BinderService binderService, String name); + + public TopiaEntityBinder<E> registerTopiaBinder(BinderService binderService, Class<E> entityType, BinderModelBuilder<E, E> builder, String name) { + return binderService.registerTopiaBinder(entityType, builder, name); + } } diff --git a/observe-services/src/main/java/fr/ird/observe/services/data/seine/ActivitySeineService.java b/observe-services/src/main/java/fr/ird/observe/services/data/seine/ActivitySeineService.java index e000e6e..113d897 100644 --- a/observe-services/src/main/java/fr/ird/observe/services/data/seine/ActivitySeineService.java +++ b/observe-services/src/main/java/fr/ird/observe/services/data/seine/ActivitySeineService.java @@ -34,7 +34,7 @@ public interface ActivitySeineService extends ObserveService { ActivitySeine save(String routeId, ActivitySeine toSave); @Commit - void updateObservedSystem(ActivitySeine toUpdate); + ActivitySeine updateObservedSystem(ActivitySeine toUpdate); @Commit void delete(String routeId, String activitySeineId); @@ -43,5 +43,11 @@ public interface ActivitySeineService extends ObserveService { TopiaEntityBinder<ActivitySeine> getBinderForEdit(); @NoTransaction + TopiaEntityBinder<ActivitySeine> getBinderForEditObservedSystem() ; + + @NoTransaction void copyForEdit(ActivitySeine source, ActivitySeine target); + + @NoTransaction + void copyForEditObservedSystem(ActivitySeine source, ActivitySeine target); } diff --git a/observe-services/src/main/java/fr/ird/observe/services/data/seine/ActivitySeineServiceImpl.java b/observe-services/src/main/java/fr/ird/observe/services/data/seine/ActivitySeineServiceImpl.java index 7478d41..5fe7977 100644 --- a/observe-services/src/main/java/fr/ird/observe/services/data/seine/ActivitySeineServiceImpl.java +++ b/observe-services/src/main/java/fr/ird/observe/services/data/seine/ActivitySeineServiceImpl.java @@ -2,10 +2,12 @@ package fr.ird.observe.services.data.seine; import fr.ird.observe.BinderService; import fr.ird.observe.entities.constants.ReferenceLocale; +import fr.ird.observe.entities.constants.seine.SchoolType; import fr.ird.observe.entities.referentiel.FpaZone; import fr.ird.observe.entities.seine.ActivitySeine; import fr.ird.observe.entities.seine.ActivitySeineDAO; import fr.ird.observe.entities.seine.Route; +import fr.ird.observe.entities.seine.SetSeine; import fr.ird.observe.services.AbstractObserveService; import org.nuiton.topia.persistence.util.TopiaEntityBinder; import org.nuiton.util.DateUtil; @@ -130,9 +132,31 @@ public class ActivitySeineServiceImpl extends AbstractObserveService implements } @Override - public void updateObservedSystem(ActivitySeine toUpdate) { + public ActivitySeine updateObservedSystem(ActivitySeine toUpdate) { + + ActivitySeineDAO dao = getDao(); + + boolean needUpdateSet = false; + SchoolType newTypeBanc = toUpdate.getSchoolType(); + SetSeine set = toUpdate.getSetSeine(); + if (set != null) { + // on regarde si le type de banc de la calée a changé + + SchoolType oldTypeBanc = set.getSchoolType(); + needUpdateSet = oldTypeBanc == null || newTypeBanc != oldTypeBanc; + } + + ActivitySeine updated = dao.findByTopiaId(toUpdate.getTopiaId()); + getBinderForEditObservedSystem().copyExcluding(toUpdate, updated, ActivitySeine.PROPERTY_SET_SEINE); + + if (needUpdateSet) { + + // mise à jour de la propriété schoolType dans la set + updated.getSetSeine().setSchoolType(newTypeBanc); + } + + return updated; - //TODO } @Override @@ -168,6 +192,31 @@ public class ActivitySeineServiceImpl extends AbstractObserveService implements } @Override + public TopiaEntityBinder<ActivitySeine> getBinderForEditObservedSystem() { + + TopiaEntityBinder<ActivitySeine> binder = loadBinder("-forEditObservedSystem", ActivitySeine.class, new CreateBinder<ActivitySeine>() { + + @Override + public BinderModelBuilder<ActivitySeine, ActivitySeine> createBinderBuilder(BinderService binderService, String name) { + + BinderModelBuilder<ActivitySeine, ActivitySeine> builder = binderService.newBinderBuilder( + ActivitySeine.class, + ActivitySeine.PROPERTY_OBSERVED_SYSTEM, + ActivitySeine.PROPERTY_SET_SEINE, + ActivitySeine.PROPERTY_COMMENT, + ActivitySeine.PROPERTY_OBSERVED_SYSTEM_DISTANCE); + + return builder; + + } + + }); + + return binder; + + } + + @Override public TopiaEntityBinder<ActivitySeine> getBinderForEdit() { TopiaEntityBinder<ActivitySeine> binder = loadBinder("-forEdit", ActivitySeine.class, new CreateBinder<ActivitySeine>() { @@ -220,6 +269,13 @@ public class ActivitySeineServiceImpl extends AbstractObserveService implements } + @Override + public void copyForEditObservedSystem(ActivitySeine source, ActivitySeine target) { + + getBinderForEditObservedSystem().load(source, target, true); + + } + protected ActivitySeine create(String routeId, ActivitySeine toCreate) { ActivitySeineDAO dao = getDao(); diff --git a/observe-services/src/main/java/fr/ird/observe/services/data/seine/FloatingObjectService.java b/observe-services/src/main/java/fr/ird/observe/services/data/seine/FloatingObjectService.java index 8e9d42a..80e7225 100644 --- a/observe-services/src/main/java/fr/ird/observe/services/data/seine/FloatingObjectService.java +++ b/observe-services/src/main/java/fr/ird/observe/services/data/seine/FloatingObjectService.java @@ -1,8 +1,11 @@ package fr.ird.observe.services.data.seine; import fr.ird.observe.entities.seine.FloatingObject; +import fr.ird.observe.entities.seine.TransmittingBuoy; import fr.ird.observe.services.Commit; +import fr.ird.observe.services.NoTransaction; import fr.ird.observe.services.ObserveService; +import org.nuiton.topia.persistence.util.TopiaEntityBinder; import java.util.List; @@ -16,23 +19,39 @@ public interface FloatingObjectService extends ObserveService { List<FloatingObject> getFloatinObjectStubByActivitySeine(String activitySeineId); - FloatingObject getFloatinObjectStub(String id); + FloatingObject getFloatinObjectStub(String floatingObjectId); FloatingObject loadForEdit(String floatingObjectId); - FloatingObject loadForEditTransmittingBuoy(String floatingObjectId); + FloatingObject loadForEditTransmittingBuoyOperation(String floatingObjectId); - FloatingObject preCreate(String routeId); + FloatingObject preCreate(String activitySeineId); @Commit - FloatingObject create(FloatingObject toCreate); + FloatingObject save(String activitySeineId, FloatingObject toSave); @Commit - void update(FloatingObject toUpdate); + FloatingObject updateTransmittingBuoyOperation(FloatingObject toUpdate); @Commit - void updateTransmittingBuoy(FloatingObject toUpdate); + void delete(String activitySeineId, String floatingObjectId); + + @NoTransaction + TopiaEntityBinder<FloatingObject> getBinderForEdit(); + + @NoTransaction + TopiaEntityBinder<FloatingObject> getBinderForEditTransmittingBuoyOperation(); + + @NoTransaction + TopiaEntityBinder<TransmittingBuoy> getBinderForEditTransmittingBuoy(); + + @NoTransaction + void copyForEdit(FloatingObject source, FloatingObject target); + + @NoTransaction + void copyForEditTransmittingBuoyOperation(FloatingObject source, FloatingObject target); + + @NoTransaction + void copyForEditTransmittingBuoy(TransmittingBuoy source, TransmittingBuoy target); - @Commit - void delete(String floatingObjectId); } diff --git a/observe-services/src/main/java/fr/ird/observe/services/data/seine/FloatingObjectServiceImpl.java b/observe-services/src/main/java/fr/ird/observe/services/data/seine/FloatingObjectServiceImpl.java index bc1f78f..ef466ec 100644 --- a/observe-services/src/main/java/fr/ird/observe/services/data/seine/FloatingObjectServiceImpl.java +++ b/observe-services/src/main/java/fr/ird/observe/services/data/seine/FloatingObjectServiceImpl.java @@ -1,11 +1,18 @@ package fr.ird.observe.services.data.seine; +import fr.ird.observe.BinderService; import fr.ird.observe.entities.constants.ReferenceLocale; +import fr.ird.observe.entities.seine.ActivitySeine; import fr.ird.observe.entities.seine.FloatingObject; import fr.ird.observe.entities.seine.FloatingObjectDAO; +import fr.ird.observe.entities.seine.TransmittingBuoy; import fr.ird.observe.services.AbstractObserveService; +import org.nuiton.topia.persistence.TopiaDAO; +import org.nuiton.topia.persistence.util.TopiaEntityBinder; +import org.nuiton.util.beans.BinderModelBuilder; import java.util.List; +import java.util.Map; /** * Created on 4/24/15. @@ -35,39 +42,229 @@ public class FloatingObjectServiceImpl extends AbstractObserveService implements @Override public FloatingObject loadForEdit(String floatingObjectId) { - FloatingObject loaded = null; + + FloatingObject loaded = getDao().newInstance(); + FloatingObject toLoad = getDao().findByTopiaId(floatingObjectId); + copyForEdit(toLoad, loaded); + return loaded; + } @Override - public FloatingObject loadForEditTransmittingBuoy(String floatingObjectId) { - FloatingObject loaded = null; + public FloatingObject loadForEditTransmittingBuoyOperation(String floatingObjectId) { + + FloatingObject loaded = getDao().newInstance(); + FloatingObject toLoad = getDao().findByTopiaId(floatingObjectId); + copyForEditTransmittingBuoyOperation(toLoad, loaded); + return loaded; + } @Override - public FloatingObject preCreate(String routeId) { - FloatingObject result = null; - return result; + public FloatingObject preCreate(String activitySeineId) { + + FloatingObject preCreated = getDao().newInstance(); + return preCreated; + } @Override - public FloatingObject create(FloatingObject toCreate) { - FloatingObject created = null; - return created; + public FloatingObject save(String activitySeineId, FloatingObject toSave) { + + FloatingObject saved; + + if (toSave.getTopiaId() == null) { + + // create + saved = create(activitySeineId, toSave); + + } else { + + // update + saved = update(toSave); + + } + + return saved; + } @Override - public void update(FloatingObject toUpdate) { + public FloatingObject updateTransmittingBuoyOperation(FloatingObject toUpdate) { + + FloatingObject updated = getDao().findByTopiaId(toUpdate.getTopiaId()); + updated.setComment(toUpdate.getComment()); + updated.clearTransmittingBuoy(); + + TopiaEntityBinder<TransmittingBuoy> childLoador = getBinderForEditTransmittingBuoy(); + + TopiaDAO<TransmittingBuoy> transmittingBuoyDAO = getDao(TransmittingBuoy.class); + + for (TransmittingBuoy transmittingBuoy : toUpdate.getTransmittingBuoy()) { + + TransmittingBuoy newTransmittingBuoy; + + if (transmittingBuoy.getTopiaId() == null) { + + // creation de la balise + + Map<String, Object> map = childLoador.obtainProperties(transmittingBuoy); + newTransmittingBuoy = transmittingBuoyDAO.create(map); + + } else { + + // mise a jour de la balise + + newTransmittingBuoy = transmittingBuoyDAO.findByTopiaId(transmittingBuoy.getTopiaId()); + childLoador.load(transmittingBuoy, newTransmittingBuoy, false); + + } + + updated.addTransmittingBuoy(newTransmittingBuoy); + + } + return updated; + } @Override - public void updateTransmittingBuoy(FloatingObject toUpdate) { + public void delete(String activitySeineId, String floatingObjectId) { + + FloatingObjectDAO dao = getDao(); + FloatingObject toDelete = dao.findByTopiaId(floatingObjectId); + + ActivitySeine activitySeine = findByTopiaId(ActivitySeine.class, activitySeineId); + activitySeine.removeFloatingObject(toDelete); } @Override - public void delete(String floatingObjectId) { + public TopiaEntityBinder<FloatingObject> getBinderForEdit() { + + TopiaEntityBinder<FloatingObject> binder = loadBinder("-forEdit", FloatingObject.class, new CreateBinder<FloatingObject>() { + + @Override + public BinderModelBuilder<FloatingObject, FloatingObject> createBinderBuilder(BinderService binderService, String name) { + + BinderModelBuilder<FloatingObject, FloatingObject> builder = binderService.newBinderBuilder( + FloatingObject.class, + FloatingObject.PROPERTY_OBJECT_TYPE, + FloatingObject.PROPERTY_OBJECT_FATE, + FloatingObject.PROPERTY_OBJECT_OPERATION, + FloatingObject.PROPERTY_COMMENT, + FloatingObject.PROPERTY_SUPPORT_VESSEL_NAME, + FloatingObject.PROPERTY_DAYS_AT_SEA_COUNT); + + return builder; + + } + + }); + + return binder; + + } + + @Override + public void copyForEdit(FloatingObject source, FloatingObject target) { + + getBinderForEdit().load(source, target, true); + + } + + @Override + public TopiaEntityBinder<FloatingObject> getBinderForEditTransmittingBuoyOperation() { + + TopiaEntityBinder<FloatingObject> binder = loadBinder("-forEdit", FloatingObject.class, new CreateBinder<FloatingObject>() { + + @Override + public BinderModelBuilder<FloatingObject, FloatingObject> createBinderBuilder(BinderService binderService, String name) { + + BinderModelBuilder<FloatingObject, FloatingObject> builder = binderService.newBinderBuilder( + FloatingObject.class, + FloatingObject.PROPERTY_COMMENT, + FloatingObject.PROPERTY_OBJECT_OPERATION + ); + return builder; + + } + + }); + + return binder; + + } + + @Override + public void copyForEditTransmittingBuoyOperation(FloatingObject source, FloatingObject target) { + + getBinderForEditTransmittingBuoyOperation().load(source, target, true); + + } + + @Override + public TopiaEntityBinder<TransmittingBuoy> getBinderForEditTransmittingBuoy() { + + TopiaEntityBinder<TransmittingBuoy> binder = loadBinder("-forEdit", TransmittingBuoy.class, new CreateBinder<TransmittingBuoy>() { + + @Override + public BinderModelBuilder<TransmittingBuoy, TransmittingBuoy> createBinderBuilder(BinderService binderService, String name) { + + BinderModelBuilder<TransmittingBuoy, TransmittingBuoy> builder = binderService.newBinderBuilder( + TransmittingBuoy.class, + TransmittingBuoy.PROPERTY_CODE, + TransmittingBuoy.PROPERTY_OWNERSHIP, + TransmittingBuoy.PROPERTY_TRANSMITTING_BUOY_TYPE, + TransmittingBuoy.PROPERTY_TRANSMITTING_BUOY_OPERATION, + TransmittingBuoy.PROPERTY_BRAND, + TransmittingBuoy.PROPERTY_COUNTRY); + + return builder; + + } + + @Override + public TopiaEntityBinder<TransmittingBuoy> registerTopiaBinder(BinderService binderService, Class<TransmittingBuoy> entityType, BinderModelBuilder<TransmittingBuoy, TransmittingBuoy> builder, String name) { + + TopiaEntityBinder<TransmittingBuoy> binder = super.registerTopiaBinder(binderService, entityType, builder, name); + binder.setEmpty(getDao(TransmittingBuoy.class).newInstance()); + return binder; + + } + + }); + + return binder; + + } + + @Override + public void copyForEditTransmittingBuoy(TransmittingBuoy source, TransmittingBuoy target) { + + getBinderForEditTransmittingBuoy().load(source, target, true); + + } + + protected FloatingObject create(String activitySeineId, FloatingObject toCreate) { + + FloatingObjectDAO dao = getDao(); + FloatingObject created = dao.create(toCreate); + + ActivitySeine route = findByTopiaId(ActivitySeine.class, activitySeineId); + route.addFloatingObject(created); + + return created; + + } + + protected FloatingObject update(FloatingObject toUpdate) { + + FloatingObject updated = getDao().findByTopiaId(toUpdate.getTopiaId()); + copyForEdit(toUpdate, updated); + return updated; + } protected FloatingObjectDAO getDao() { diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/ActivitySeineObservedSystemUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/ActivitySeineObservedSystemUIHandler.java index 51d13ad..58214c3 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/ActivitySeineObservedSystemUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/ActivitySeineObservedSystemUIHandler.java @@ -21,20 +21,15 @@ */ package fr.ird.observe.ui.content.impl.seine; -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.constants.seine.SchoolType; import fr.ird.observe.entities.seine.ActivitySeine; -import fr.ird.observe.entities.seine.SetSeine; +import fr.ird.observe.services.data.seine.ActivitySeineService; import fr.ird.observe.ui.content.ContentMode; import fr.ird.observe.ui.content.ContentUIHandler; 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 static org.nuiton.i18n.I18n.t; @@ -88,7 +83,9 @@ public class ActivitySeineObservedSystemUIHandler extends ContentUIHandler<Activ ContentMode mode = computeContentMode(); - getDataService().loadEditEntity(getDataSource(), activityId, getLoadExecutor()); + ActivitySeineService service = getService(ActivitySeineService.class); + ActivitySeine activitySeine = service.loadForEditObservedSystem(activityId); + service.copyForEditObservedSystem(activitySeine, getBean()); getModel().setMode(mode); @@ -104,39 +101,19 @@ public class ActivitySeineObservedSystemUIHandler extends ContentUIHandler<Activ } @Override - protected boolean doSave(ActivitySeine bean, - DataService dataService, - DataSource dataSource, - TopiaEntityBinder<ActivitySeine> binder) throws Exception { + protected boolean doSave(ActivitySeine bean) throws Exception { + + ActivitySeineService service = getService(ActivitySeineService.class); + ActivitySeine saved = service.updateObservedSystem(getBean()); + service.copyForEditObservedSystem(saved, bean); - // on sauvegarde l'activity (mais pas la set) - dataService.update(dataSource, null, bean, getUpdateExecutor()); return true; } + //TODO Supprimer saveUI et mettre saveUI2 a la place @Override - protected ActivitySeine onUpdate(TopiaContext tx, Object parentBean, ActivitySeine beanToSave) throws TopiaException { - - ActivitySeine bean = getBean(); - boolean needUpdateSet = false; - SchoolType newTypeBanc = bean.getSchoolType(); - SetSeine set = bean.getSetSeine(); - if (set != null) { - // on regarde si le type de banc de la calée a changé - - SchoolType oldTypeBanc = set.getSchoolType(); - needUpdateSet = oldTypeBanc == null || newTypeBanc != oldTypeBanc; - } - - getLoadBinder().copyExcluding(getBean(), beanToSave, ActivitySeine.PROPERTY_SET_SEINE); - - if (needUpdateSet) { - - // mise à jour de la propriété schoolType dans la set - beanToSave.getSetSeine().setSchoolType(newTypeBanc); - } - - return beanToSave; + public final void saveUI(boolean refresh) { + saveUI2(refresh); } } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/FloatingObjectTransmittingBuoyOperationUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/FloatingObjectTransmittingBuoyOperationUIHandler.java index 3db1541..21c72a3 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/FloatingObjectTransmittingBuoyOperationUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/FloatingObjectTransmittingBuoyOperationUIHandler.java @@ -21,9 +21,7 @@ */ package fr.ird.observe.ui.content.impl.seine; -import fr.ird.observe.DataService; import fr.ird.observe.DecoratorService; -import fr.ird.observe.ObserveDAOHelper; import fr.ird.observe.db.DataContext; import fr.ird.observe.db.DataSource; import fr.ird.observe.db.constants.DataContextType; @@ -35,6 +33,7 @@ import fr.ird.observe.entities.referentiel.seine.TransmittingBuoyType; import fr.ird.observe.entities.seine.ActivitySeine; import fr.ird.observe.entities.seine.FloatingObject; import fr.ird.observe.entities.seine.TransmittingBuoy; +import fr.ird.observe.services.data.seine.FloatingObjectService; import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.content.ContentMode; import fr.ird.observe.ui.content.ContentUIHandler; @@ -43,8 +42,6 @@ import org.apache.commons.logging.LogFactory; import org.nuiton.decorator.Decorator; import org.nuiton.topia.TopiaContext; import org.nuiton.topia.TopiaException; -import org.nuiton.topia.persistence.TopiaDAO; -import org.nuiton.topia.persistence.util.TopiaEntityBinder; import org.nuiton.validator.NuitonValidatorScope; import javax.swing.JPanel; @@ -52,7 +49,6 @@ import javax.swing.SwingUtilities; import java.awt.GridLayout; import java.util.ArrayList; import java.util.List; -import java.util.Map; import static org.nuiton.i18n.I18n.t; @@ -108,10 +104,10 @@ public class FloatingObjectTransmittingBuoyOperationUIHandler extends ContentUIH ContentMode mode = computeContentMode(); - String dcpId = getSelectedParentId(); + String floatingObjectId = getSelectedParentId(); if (log.isInfoEnabled()) { - log.info("dcpId = " + dcpId); + log.info("floatingObjectId = " + floatingObjectId); } FloatingObject bean = getBean(); @@ -123,13 +119,13 @@ public class FloatingObjectTransmittingBuoyOperationUIHandler extends ContentUIH getModel().setEditing(false); - getDataService().loadEditEntity(getDataSource(), dcpId, getLoadExecutor()); + FloatingObjectService service = getService(FloatingObjectService.class); + FloatingObject loaded = service.loadForEditTransmittingBuoyOperation(floatingObjectId); + service.copyForEditTransmittingBuoyOperation(loaded, getBean()); - getUi().processDataBinding( - FloatingObjectTransmittingBuoyOperationUI.BINDING_TYPE_OPERATION_SELECTED_ITEM); + getUi().processDataBinding(FloatingObjectTransmittingBuoyOperationUI.BINDING_TYPE_OPERATION_SELECTED_ITEM); - TypeTransmittingBuoyOperation typeOperation = - getUi().getTypeOperation().getSelectedItem(); + TypeTransmittingBuoyOperation typeOperation = getUi().getTypeOperation().getSelectedItem(); changeTypeOperation(typeOperation, false); getModel().setMode(mode); @@ -240,57 +236,57 @@ public class FloatingObjectTransmittingBuoyOperationUIHandler extends ContentUIH } @Override - protected boolean doSave(FloatingObject bean, - DataService dataService, - DataSource dataSource, - TopiaEntityBinder<FloatingObject> binder) throws Exception { + protected boolean doSave(FloatingObject bean) { + + FloatingObjectService service = getService(FloatingObjectService.class); + FloatingObject saved = service.updateTransmittingBuoyOperation(bean); + service.copyForEditTransmittingBuoyOperation(saved, bean); - dataService.update(dataSource, null, bean, getUpdateExecutor()); //FIXME, il faut declancher un evenement dans le cache du storage pour pouvoir redessiner le noeud return true; } - @Override - protected FloatingObject onUpdate(TopiaContext tx, - Object parentBean, - FloatingObject beanToSave) throws TopiaException { - - FloatingObject editBean = getBean(); - - List<TransmittingBuoy> objets = editBean.getTransmittingBuoy(); - - beanToSave.setComment(editBean.getComment()); - - beanToSave.clearTransmittingBuoy(); - - TopiaEntityBinder<TransmittingBuoy> childLoador = getModel().getChildLoador(); - - TopiaDAO<TransmittingBuoy> transmittingBuoyDAO = ObserveDAOHelper.getTransmittingBuoyDAO(tx); - - for (TransmittingBuoy transmittingBuoy : objets) { - TransmittingBuoy newBalise; - - if (transmittingBuoy.getTopiaId() == null) { - - // creation de la balise - - Map<String, Object> map = childLoador.obtainProperties(transmittingBuoy); - - newBalise = transmittingBuoyDAO.create(map); - - } else { - - // mise a jour de la balise - - newBalise = transmittingBuoyDAO.findByTopiaId(transmittingBuoy.getTopiaId()); - - childLoador.load(transmittingBuoy, newBalise, false); - } - - beanToSave.addTransmittingBuoy(newBalise); - } - return beanToSave; - } +// @Override +// protected FloatingObject onUpdate(TopiaContext tx, +// Object parentBean, +// FloatingObject beanToSave) throws TopiaException { +// +// FloatingObject editBean = getBean(); +// +// List<TransmittingBuoy> objets = editBean.getTransmittingBuoy(); +// +// beanToSave.setComment(editBean.getComment()); +// +// beanToSave.clearTransmittingBuoy(); +// +// TopiaEntityBinder<TransmittingBuoy> childLoador = getModel().getChildLoador(); +// +// TopiaDAO<TransmittingBuoy> transmittingBuoyDAO = ObserveDAOHelper.getTransmittingBuoyDAO(tx); +// +// for (TransmittingBuoy transmittingBuoy : objets) { +// TransmittingBuoy newBalise; +// +// if (transmittingBuoy.getTopiaId() == null) { +// +// // creation de la balise +// +// Map<String, Object> map = childLoador.obtainProperties(transmittingBuoy); +// +// newBalise = transmittingBuoyDAO.create(map); +// +// } else { +// +// // mise a jour de la balise +// +// newBalise = transmittingBuoyDAO.findByTopiaId(transmittingBuoy.getTopiaId()); +// +// childLoador.load(transmittingBuoy, newBalise, false); +// } +// +// beanToSave.addTransmittingBuoy(newBalise); +// } +// return beanToSave; +// } @Override protected void afterSave(boolean refresh) { @@ -392,7 +388,8 @@ public class FloatingObjectTransmittingBuoyOperationUIHandler extends ContentUIH TransmittingBuoyOperation transmittingBuoyOperation, TransmittingBuoy transmittingBuoy) { - getModel().getChildLoador().load(transmittingBuoy, editBean, false); + FloatingObjectService service = getService(FloatingObjectService.class); + service.copyForEditTransmittingBuoy(transmittingBuoy, editBean); if (transmittingBuoy == null) { @@ -436,4 +433,10 @@ public class FloatingObjectTransmittingBuoyOperationUIHandler extends ContentUIH return objectOperation; } + //TODO Supprimer saveUI et mettre saveUI2 a la place + @Override + public final void saveUI(boolean refresh) { + saveUI2(refresh); + } + } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/FloatingObjectTransmittingBuoyOperationUIModel.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/FloatingObjectTransmittingBuoyOperationUIModel.java index 0888a16..3fe2242 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/FloatingObjectTransmittingBuoyOperationUIModel.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/FloatingObjectTransmittingBuoyOperationUIModel.java @@ -23,12 +23,8 @@ package fr.ird.observe.ui.content.impl.seine; */ import fr.ird.observe.BinderService; -import fr.ird.observe.ObserveServiceHelper; import fr.ird.observe.entities.seine.FloatingObject; -import fr.ird.observe.entities.seine.TransmittingBuoy; -import fr.ird.observe.entities.seine.TransmittingBuoyImpl; import fr.ird.observe.ui.content.ContentUIModel; -import org.nuiton.topia.persistence.util.TopiaEntityBinder; import org.nuiton.util.beans.BinderModelBuilder; /** @@ -41,40 +37,40 @@ public class FloatingObjectTransmittingBuoyOperationUIModel extends ContentUIMod private static final long serialVersionUID = 1L; - protected TopiaEntityBinder<TransmittingBuoy> childLoador; +// protected TopiaEntityBinder<TransmittingBuoy> childLoador; public FloatingObjectTransmittingBuoyOperationUIModel() { super(FloatingObject.class); - String binderName = getClass().getName() + "-open"; - - BinderService binderService = ObserveServiceHelper.get().getBinderService(); - - childLoador = binderService.getTopiaBinder(TransmittingBuoy.class, binderName); - - if (childLoador == null) { - - BinderModelBuilder<TransmittingBuoy, TransmittingBuoy> builder = binderService.newBinderBuilder( - TransmittingBuoy.class, - TransmittingBuoy.PROPERTY_CODE, - TransmittingBuoy.PROPERTY_OWNERSHIP, - TransmittingBuoy.PROPERTY_TRANSMITTING_BUOY_TYPE, - TransmittingBuoy.PROPERTY_TRANSMITTING_BUOY_OPERATION, - TransmittingBuoy.PROPERTY_BRAND, - TransmittingBuoy.PROPERTY_COUNTRY); - - // enregistrement du binder - childLoador = binderService.registerTopiaBinder(TransmittingBuoy.class, builder, binderName); - - // positionnement de l'entite empty - childLoador.setEmpty(new TransmittingBuoyImpl()); - } +// String binderName = getClass().getName() + "-open"; +// +// BinderService binderService = ObserveServiceHelper.get().getBinderService(); + +// childLoador = binderService.getTopiaBinder(TransmittingBuoy.class, binderName); +// +// if (childLoador == null) { +// +// BinderModelBuilder<TransmittingBuoy, TransmittingBuoy> builder = binderService.newBinderBuilder( +// TransmittingBuoy.class, +// TransmittingBuoy.PROPERTY_CODE, +// TransmittingBuoy.PROPERTY_OWNERSHIP, +// TransmittingBuoy.PROPERTY_TRANSMITTING_BUOY_TYPE, +// TransmittingBuoy.PROPERTY_TRANSMITTING_BUOY_OPERATION, +// TransmittingBuoy.PROPERTY_BRAND, +// TransmittingBuoy.PROPERTY_COUNTRY); +// +// // enregistrement du binder +// childLoador = binderService.registerTopiaBinder(TransmittingBuoy.class, builder, binderName); +// +// // positionnement de l'entite empty +// childLoador.setEmpty(new TransmittingBuoyImpl()); +// } } - public TopiaEntityBinder<TransmittingBuoy> getChildLoador() { - return childLoador; - } +// public TopiaEntityBinder<TransmittingBuoy> getChildLoador() { +// return childLoador; +// } @Override protected BinderModelBuilder<FloatingObject, FloatingObject> createOpeningBinder(BinderService binderService, String binderName) { diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/FloatingObjectUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/FloatingObjectUIHandler.java index 6787aa7..0ef7e26 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/FloatingObjectUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/impl/seine/FloatingObjectUIHandler.java @@ -21,15 +21,12 @@ */ package fr.ird.observe.ui.content.impl.seine; -import fr.ird.observe.DataService; -import fr.ird.observe.ObserveDAOHelper; import fr.ird.observe.db.DataContext; import fr.ird.observe.db.DataSource; import fr.ird.observe.db.constants.DataContextType; -import fr.ird.observe.db.util.TopiaExecutor2; import fr.ird.observe.entities.seine.ActivitySeine; import fr.ird.observe.entities.seine.FloatingObject; -import fr.ird.observe.entities.seine.FloatingObjectDAO; +import fr.ird.observe.services.data.seine.FloatingObjectService; import fr.ird.observe.ui.content.ContentMode; import fr.ird.observe.ui.content.ContentUIHandler; import fr.ird.observe.ui.content.ContentUIModel; @@ -37,10 +34,6 @@ import fr.ird.observe.ui.tree.ObserveNode; import fr.ird.observe.ui.tree.ObserveTreeHelper; 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.TopiaEntity; -import org.nuiton.topia.persistence.util.TopiaEntityBinder; import org.nuiton.validator.NuitonValidatorScope; import static org.nuiton.i18n.I18n.t; @@ -102,30 +95,34 @@ public class FloatingObjectUIHandler extends ContentUIHandler<FloatingObject> { super.openUI(); String activityId = getSelectedParentId(); - String dcpId = getSelectedId(); + String floatingObjectId = getSelectedId(); if (log.isInfoEnabled()) { - log.info("activityId = " + activityId); - log.info("dcpId = " + dcpId); + log.info("activityId = " + activityId); + log.info("floatingObjectId = " + floatingObjectId); } ContentMode mode = computeContentMode(); - FloatingObject bean = getBean(); + FloatingObjectService service = getService(FloatingObjectService.class); - DataService dataService = getDataService(); - if (dcpId == null) { + FloatingObject loaded; + + if (floatingObjectId == null) { // creation mode + loaded = service.preCreate(activityId); - dataService.preCreate(getDataSource(), activityId, bean, getLoadBinder(), getPreCreateExecutor()); } else { // update mode + loaded = service.loadForEdit(floatingObjectId); - dataService.loadEditEntity(getDataSource(), dcpId, getLoadExecutor()); } + FloatingObject bean = getBean(); + service.copyForEdit(loaded, bean); + // utilisation du mode requis setContentMode(mode); @@ -160,42 +157,18 @@ public class FloatingObjectUIHandler extends ContentUIHandler<FloatingObject> { } @Override - protected boolean doSave(FloatingObject bean, - DataService dataService, - DataSource dataSource, - TopiaEntityBinder<FloatingObject> binder) throws Exception { + protected boolean doSave(FloatingObject bean) { String activityId = getSelectedParentId(); - if (bean.getTopiaId() == null) { - - dataService.create(dataSource, activityId, bean, binder, getCreateExecutor()); - } else { + FloatingObjectService service = getService(FloatingObjectService.class); + FloatingObject saved = service.save(activityId, bean); + service.copyForEdit(saved, bean); - dataService.update(dataSource, null, bean, getUpdateExecutor()); - } return true; } @Override - protected FloatingObject onCreate(TopiaContext tx, Object parent, FloatingObject editBean) throws TopiaException { - ActivitySeine parentBean = (ActivitySeine) parent; - FloatingObjectDAO dao = ObserveDAOHelper.getFloatingObjectDAO(tx); - FloatingObject beanToSave = dao.create(); - editBean.setTopiaId(beanToSave.getTopiaId()); - parentBean.addFloatingObject(beanToSave); - return beanToSave; - } - - @Override - protected FloatingObject onUpdate(TopiaContext tx, Object parentBean, FloatingObject beanToSave) throws TopiaException { - - getLoadBinder().copy(getBean(), beanToSave); - - return beanToSave; - } - - @Override protected void afterSave(boolean refresh) { super.afterSave(refresh); FloatingObject bean = getBean(); @@ -219,33 +192,40 @@ public class FloatingObjectUIHandler extends ContentUIHandler<FloatingObject> { } else { // select ancestor node -// treeHelper.refreshNode(node, false); treeHelper.reloadSelectedNode(false, false); } } @Override - protected boolean doDelete(FloatingObject bean, - DataService dataService, - DataSource dataSource, - TopiaExecutor2<? extends TopiaEntity, FloatingObject> deletor) throws Exception { + protected boolean doDelete(FloatingObject bean) { - if (askToDelete(bean)) { - return false; - } + boolean result; - if (bean.getTopiaId() != null) { + if (!askToDelete(bean)) { + + result = false; + + } else { String activityId = getSelectedParentId(); - dataService.delete(dataSource, activityId, bean, deletor); + getService(FloatingObjectService.class).delete(activityId, bean.getTopiaId()); + result = true; + } - return true; + + return result; + } + //TODO Supprimer saveUI et mettre saveUI2 a la place @Override - protected void onDelete(TopiaContext tx, Object parent, FloatingObject beanToDelete) { - ActivitySeine parentBean = (ActivitySeine) parent; - parentBean.removeFloatingObject(beanToDelete); + public final void saveUI(boolean refresh) { + saveUI2(refresh); } + //TODO Supprimer deleteUI et mettre deleteUI2 a la place + @Override + public final void deleteUI() { + deleteUI2(); + } } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.