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 66b7da16359caf9bc9135a299beebe0f56f6cf87 Author: Tony CHEMIT <dev@tchemit.fr> Date: Wed Jan 18 13:09:47 2017 +0100 Une exception apparait si on ouvre l'assistant de changement de connexion et qu'on annule (Fixes #8966) --- .../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, 21 insertions(+), 64 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 193e249..6db6a26 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).setReloadEntity(true); + ((AbstrctReferenceNodeSupport) node).reloadEntity(); if (refreshFromParent) { node = node.getParent(); @@ -570,7 +570,7 @@ public class ObserveTreeHelper extends NavTreeHelper<ObserveNode> { } public void reloadNode(ObserveNode node, boolean refreshChilds) { - ((AbstrctReferenceNodeSupport) node).setReloadEntity(true); + ((AbstrctReferenceNodeSupport) node).reloadEntity(); 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 2e391c2..850eca3 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,13 +22,14 @@ package fr.ird.observe.application.swing.ui.tree.node; * #L% */ -import fr.ird.observe.application.swing.ui.tree.ObserveDataProvider; +import fr.ird.observe.application.swing.ui.tree.loadors.AbstractNodeChildLoador; 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. * @@ -50,8 +51,6 @@ 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) { @@ -64,53 +63,23 @@ 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); - setEntity(entity); + this.entity = entity; } @Override public void setDirty(boolean dirty) { super.setDirty(dirty); - - if (dirty && reloadEntity) { - entity = null; + if (dirty) { + reloadEntity(); } - } public R getEntity() { - 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(); - - } - + return Optional.ofNullable(entity).orElse(entity = fetchEntity()); } - public void setReloadEntity(boolean reloadEntity) { - this.reloadEntity = reloadEntity; + public void reloadEntity() { + this.entity = fetchEntity(); } } 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 acb70c2..6cc7a69 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,7 +24,6 @@ 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; @@ -67,19 +66,15 @@ 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) { - if (entity == null) { - - loadEntity((ObserveDataProvider) provider); - - } + getEntity(); 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 97300f8..0acfa2f 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,8 +50,6 @@ 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 b1d4c59..3933e56 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,7 +22,6 @@ 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; @@ -64,19 +63,15 @@ 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) { - if (entity == null) { - - loadEntity((ObserveDataProvider) provider); - - } + getEntity(); } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.