This is an automated email from the git hooks/post-receive script. New commit to branch feature/7587 in repository observe. See http://git.codelutin.com/observe.git commit b5758f6fd2046d0269cfb49c7d0c085a9bcca873 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Tue Oct 6 16:58:55 2015 +0200 calcule de la nouvelle position de la marée (refs #7587) --- .../ui/content/open/ContentOpenableUIHandler.java | 41 ++++++++++++++++++++-- .../impl/longline/ActivityLonglineUIHandler.java | 7 +++- .../open/impl/longline/TripLonglineUIHandler.java | 10 ++++-- .../open/impl/seine/ActivitySeineUIHandler.java | 8 +++++ .../ui/content/open/impl/seine/RouteUIHandler.java | 6 ++++ .../open/impl/seine/TripSeineUIHandler.java | 15 ++++++++ .../services/service/seine/TripSeineService.java | 2 +- 7 files changed, 83 insertions(+), 6 deletions(-) diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/ContentOpenableUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/ContentOpenableUIHandler.java index f7ee163..502a648 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/ContentOpenableUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/ContentOpenableUIHandler.java @@ -172,6 +172,7 @@ public abstract class ContentOpenableUIHandler<E extends IdDto> extends ContentU ContentOpenableUI<E> ui = getUi(); + int position = ui.getContextValue(Integer.class, POSITION_OPENABLE); ObserveTreeHelper treeHelper = getTreeHelper(ui); ObserveNode node = treeHelper.getSelectedNode(); @@ -180,6 +181,13 @@ public abstract class ContentOpenableUIHandler<E extends IdDto> extends ContentU E bean = getBean(); + int oldPosition; + if (create) { + oldPosition = parentNode.getChildCount(); + } else { + oldPosition = parentNode.getIndex(node); + } + if (create) { // on passe en mode mise à jour @@ -194,15 +202,29 @@ public abstract class ContentOpenableUIHandler<E extends IdDto> extends ContentU // arrêt de l'édition de l'écran courant stopEditUI(); - treeHelper.reloadNode(parentNode, true); + if (oldPosition != position) { + + // on doit repositionner le noeud + treeHelper.moveNode(parentNode, node, position); + } // on sélectionne le nouveau noeud treeHelper.selectNode(node); } else { + if (oldPosition != position) { + + // on doit repositionner le noeud + treeHelper.moveNode(parentNode, node, position); - treeHelper.reloadNode(parentNode, true); + // et le selectionner + treeHelper.selectNode(node); + } + // on repaint le noeud et ses enfants +// treeHelper.refreshNode(node, true); + treeHelper.reloadSelectedNode(false, true); +// treeHelper.refreshNode(node, false); } } @@ -246,6 +268,21 @@ public abstract class ContentOpenableUIHandler<E extends IdDto> extends ContentU treeHelper.addUnsavedNode(parentNode, getBeanType()); } + protected final void obtainChildPosition(E bean){ + + String containerId = getSelectedParentId(); + + int position = getOpenablePosition(containerId, bean); + + if (log.isDebugEnabled()) { + log.debug("Position of child : " + position); + } + + getUi().setContextValue(position, POSITION_OPENABLE); + } + + protected abstract int getOpenablePosition(String parentId, E bean); + protected final void finalizeOpenUI(ContentMode mode, boolean create) { // utilisation du mode requis diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/ActivityLonglineUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/ActivityLonglineUIHandler.java index d7a31b5..17a30bb 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/ActivityLonglineUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/ActivityLonglineUIHandler.java @@ -26,7 +26,6 @@ import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.business.db.DataContext; import fr.ird.observe.business.db.constants.DataContextType; import fr.ird.observe.services.dto.FormDto; -import fr.ird.observe.db.ObserveSwingDataSource; import fr.ird.observe.services.dto.longline.ActivityLonglineDto; import fr.ird.observe.services.dto.longline.ActivityLonglineDtos; import fr.ird.observe.services.dto.longline.TripLonglineDto; @@ -305,6 +304,12 @@ public class ActivityLonglineUIHandler extends ContentOpenableUIHandler<Activity return true; } + @Override + protected int getOpenablePosition(String parentId, ActivityLonglineDto bean) { + // TODO + return 0; + } + //FIXME // @Override // protected ActivityLongline onCreate(TopiaContext tx, Object parent, ActivityLongline editBean) throws TopiaException { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/TripLonglineUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/TripLonglineUIHandler.java index 539eaad..420e058 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/TripLonglineUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/TripLonglineUIHandler.java @@ -27,7 +27,6 @@ import fr.ird.observe.business.db.DataContext; import fr.ird.observe.business.db.constants.DataContextType; import fr.ird.observe.configuration.ObserveSwingApplicationConfig; import fr.ird.observe.services.dto.FormDto; -import fr.ird.observe.db.ObserveSwingDataSource; import fr.ird.observe.services.dto.longline.TripLonglineDto; import fr.ird.observe.services.dto.longline.TripLonglineDtos; import fr.ird.observe.services.service.longline.TripLonglineService; @@ -39,7 +38,8 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.util.DateUtil; -import javax.swing.*; +import javax.swing.JTabbedPane; +import javax.swing.SwingUtilities; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import java.util.Date; @@ -303,6 +303,12 @@ public class TripLonglineUIHandler extends ContentOpenableUIHandler<TripLongline return true; } + @Override + protected int getOpenablePosition(String parentId, TripLonglineDto bean) { + // TODO + return 0; + } + //FIXME // @Override // protected TripLongline onCreate(TopiaContext tx, Object parent, TripLongline editBean) throws TopiaException { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/ActivitySeineUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/ActivitySeineUIHandler.java index 9fcbf16..42eb319 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/ActivitySeineUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/ActivitySeineUIHandler.java @@ -349,6 +349,14 @@ public class ActivitySeineUIHandler extends ContentOpenableUIHandler<ActivitySei return true; } + + + @Override + protected int getOpenablePosition(String parentId, ActivitySeineDto bean) { + // TODO + return 0; + } + //FIXME // @Override // protected ActivitySeine onCreate(TopiaContext tx, Object parent, ActivitySeine editBean) throws TopiaException { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/RouteUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/RouteUIHandler.java index 808791d..1855ff6 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/RouteUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/RouteUIHandler.java @@ -255,6 +255,12 @@ public class RouteUIHandler extends ContentOpenableUIHandler<RouteDto> { } @Override + protected int getOpenablePosition(String parentId, RouteDto bean) { + //TODO + return 0; + } + + @Override protected void afterSave(boolean refresh) { super.afterSave(refresh); repaintTripNode(); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUIHandler.java index 0926c22..a82f283 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUIHandler.java @@ -21,11 +21,14 @@ */ package fr.ird.observe.ui.content.open.impl.seine; +import com.google.common.collect.Iterables; import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.business.db.DataContext; import fr.ird.observe.business.db.constants.DataContextType; import fr.ird.observe.configuration.ObserveSwingApplicationConfig; import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.IdDtos; +import fr.ird.observe.services.dto.ReferenceSetDto; import fr.ird.observe.services.dto.TripMapDto; import fr.ird.observe.services.dto.seine.TripSeineDto; import fr.ird.observe.services.dto.seine.TripSeineDtos; @@ -271,9 +274,21 @@ public class TripSeineUIHandler extends ContentOpenableUIHandler<TripSeineDto> { String beanId = getTripSeineService().save(bean); bean.setId(beanId); + // recuperation de la position de la maree dans le program + obtainChildPosition(bean); + return true; } + protected int getOpenablePosition(String parentId, TripSeineDto bean) { + + ReferenceSetDto<TripSeineDto> tripSeineByProgram = getTripSeineService().getTripSeineByProgram(parentId); + + int position = Iterables.indexOf(tripSeineByProgram.getReference(), IdDtos.newIdPredicate(bean.getId())); + + return position; + } + @Override protected boolean doDelete(TripSeineDto bean) throws Exception { diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TripSeineService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TripSeineService.java index 6a01421..8fcb7c5 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TripSeineService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TripSeineService.java @@ -63,4 +63,4 @@ public interface TripSeineService extends ObserveService { @DeleteRequest void delete(String tripSeineId); -} \ No newline at end of file + } \ No newline at end of file -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.