01/02: Revert "Une exception apparait si on ouvre l'assistant de changement de connexion et qu'on annule (Fixes #8966)"
This is an automated email from the git hooks/post-receive script. New commit to branch develop-5.x in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 5dc2c399aae4b19953449a725a343cb086569534 Author: Tony CHEMIT <dev@tchemit.fr> Date: Thu Jan 19 08:10:35 2017 +0100 Revert "Une exception apparait si on ouvre l'assistant de changement de connexion et qu'on annule (Fixes #8966)" This reverts commit 66b7da16359caf9bc9135a299beebe0f56f6cf87. --- .../swing/ui/tree/ObserveTreeHelper.java | 4 +- .../ui/tree/node/AbstrctReferenceNodeSupport.java | 49 ++++++++++++++++++---- .../ui/tree/node/DataReferenceNodeSupport.java | 15 ++++--- .../swing/ui/tree/node/ProgramLonglineNode.java | 2 + .../tree/node/ReferentialReferenceNodeSupport.java | 15 ++++--- 5 files changed, 64 insertions(+), 21 deletions(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/ObserveTreeHelper.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/ObserveTreeHelper.java index 6db6a26..193e249 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/ObserveTreeHelper.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/ObserveTreeHelper.java @@ -561,7 +561,7 @@ public class ObserveTreeHelper extends NavTreeHelper<ObserveNode> { public void reloadSelectedNode(boolean refreshFromParent, boolean refreshChilds) { ObserveNode node = getSelectedNode(); - ((AbstrctReferenceNodeSupport) node).reloadEntity(); + ((AbstrctReferenceNodeSupport) node).setReloadEntity(true); if (refreshFromParent) { node = node.getParent(); @@ -570,7 +570,7 @@ public class ObserveTreeHelper extends NavTreeHelper<ObserveNode> { } public void reloadNode(ObserveNode node, boolean refreshChilds) { - ((AbstrctReferenceNodeSupport) node).reloadEntity(); + ((AbstrctReferenceNodeSupport) node).setReloadEntity(true); refreshNode(node, refreshChilds); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/AbstrctReferenceNodeSupport.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/AbstrctReferenceNodeSupport.java index 850eca3..2e391c2 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/AbstrctReferenceNodeSupport.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/AbstrctReferenceNodeSupport.java @@ -22,14 +22,13 @@ package fr.ird.observe.application.swing.ui.tree.node; * #L% */ -import fr.ird.observe.application.swing.ui.tree.loadors.AbstractNodeChildLoador; +import fr.ird.observe.application.swing.ui.tree.ObserveDataProvider; import fr.ird.observe.services.dto.AbstractReference; import fr.ird.observe.services.dto.IdDto; +import fr.ird.observe.application.swing.ui.tree.loadors.AbstractNodeChildLoador; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import java.util.Optional; - /** * Created on 4/9/15. * @@ -51,6 +50,8 @@ public abstract class AbstrctReferenceNodeSupport<E extends IdDto, R extends Abs */ protected transient R entity; + protected boolean reloadEntity; + protected abstract R fetchEntity(); protected AbstrctReferenceNodeSupport(Class<E> internalClass, R entity) { @@ -63,23 +64,53 @@ public abstract class AbstrctReferenceNodeSupport<E extends IdDto, R extends Abs protected AbstrctReferenceNodeSupport(Class<E> type, R entity, String context, AbstractNodeChildLoador<?, ?> childLoador) { super(type, entity.getId(), context, childLoador, false); - this.entity = entity; + setEntity(entity); } @Override public void setDirty(boolean dirty) { super.setDirty(dirty); - if (dirty) { - reloadEntity(); + + if (dirty && reloadEntity) { + entity = null; } + } public R getEntity() { - return Optional.ofNullable(entity).orElse(entity = fetchEntity()); + return entity; + } + + public void setEntity(R entity) { + this.entity = entity; + } + + + protected void loadEntity(ObserveDataProvider oProvider) { + + //FIXME +// if (oProvider.getSelectionModel() != null) { +// +// if (log.isDebugEnabled()) { +// log.debug("try to get entity from selectionModel " + internalClass + " : " + id); +// } +// entity = (ReferenceDto<E>) oProvider.getSelectionModel().getEntityCache(id); +// } + + if (entity == null) { + + if (log.isInfoEnabled()) { + log.info("will load entity " + internalClass.getSimpleName() + " : " + id); + } + + entity = fetchEntity(); + + } + } - public void reloadEntity() { - this.entity = fetchEntity(); + public void setReloadEntity(boolean reloadEntity) { + this.reloadEntity = reloadEntity; } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/DataReferenceNodeSupport.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/DataReferenceNodeSupport.java index 6cc7a69..acb70c2 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/DataReferenceNodeSupport.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/DataReferenceNodeSupport.java @@ -24,6 +24,7 @@ package fr.ird.observe.application.swing.ui.tree.node; import fr.ird.observe.application.swing.ObserveOpenDataManager; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; +import fr.ird.observe.application.swing.ui.tree.ObserveDataProvider; import fr.ird.observe.services.dto.DataDto; import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.OpenableDto; @@ -66,15 +67,19 @@ public abstract class DataReferenceNodeSupport<E extends DataDto> extends Abstrc boolean populateChilds) { -// try { + try { super.populateNode(bridge, provider, populateChilds); -// } finally { -// reloadEntity = false; -// } + } finally { + reloadEntity = false; + } if (provider != null && id != null) { - getEntity(); + if (entity == null) { + + loadEntity((ObserveDataProvider) provider); + + } if (OpenableDto.class.isAssignableFrom(entity.getType())) { ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/ProgramLonglineNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/ProgramLonglineNode.java index 0acfa2f..97300f8 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/ProgramLonglineNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/ProgramLonglineNode.java @@ -50,6 +50,8 @@ public class ProgramLonglineNode extends ReferentialReferenceNodeSupport<Program entity, ((GearType) entity.getPropertyValue(ProgramDto.PROPERTY_GEAR_TYPE)).name(), ObserveTreeHelper.getChildLoador(ProgramLonglineNodeChildLoador.class)); + // FIXME kmorin 20151012 pkoi refaire un setEntity alors qu'il est fait dans le super ? + setEntity(entity); } @Override diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/ReferentialReferenceNodeSupport.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/ReferentialReferenceNodeSupport.java index 3933e56..b1d4c59 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/ReferentialReferenceNodeSupport.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/node/ReferentialReferenceNodeSupport.java @@ -22,6 +22,7 @@ package fr.ird.observe.application.swing.ui.tree.node; * #L% */ +import fr.ird.observe.application.swing.ui.tree.ObserveDataProvider; import fr.ird.observe.services.dto.referential.ReferentialDto; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.application.swing.ui.tree.loadors.AbstractNodeChildLoador; @@ -63,15 +64,19 @@ public abstract class ReferentialReferenceNodeSupport<E extends ReferentialDto> boolean populateChilds) { -// try { + try { super.populateNode(bridge, provider, populateChilds); -// } finally { -// reloadEntity = false; -// } + } finally { + reloadEntity = false; + } if (provider != null && id != null) { - getEntity(); + if (entity == null) { + + loadEntity((ObserveDataProvider) provider); + + } } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm