This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit db0f405f44425eef13f40e9d1638611f0af81a0e Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Dec 14 09:39:59 2016 +0100 fix cherry-pick --- .../observe/application/swing/ui/content/ContentUI.jaxx | 4 ++++ .../application/swing/ui/content/ContentUIHandler.java | 17 +++++++++++++---- .../application/swing/ui/content/ContentUIManager.java | 9 +++++++++ .../application/swing/ui/content/ContentUIModel.java | 6 ++++++ .../application/swing/ui/content/ObserveContentUI.java | 2 ++ 5 files changed, 34 insertions(+), 4 deletions(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUI.jaxx index 7513538..c4a5c40 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUI.jaxx @@ -99,6 +99,10 @@ public boolean close() { return getHandler().closeUI(); } +public void destroy() { + getHandler().destroyUI(); +} + public void startEdit(E o) { getHandler().startEditUI(); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIHandler.java index db8fe1e..1e449c9 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIHandler.java @@ -54,6 +54,7 @@ import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.ReferentialReferenceSet; import fr.ird.observe.services.dto.referential.ReferentialReferences; import jaxx.runtime.JAXXContext; +import jaxx.runtime.context.DefaultJAXXContext; import jaxx.runtime.swing.editor.bean.BeanComboBox; import jaxx.runtime.swing.editor.bean.BeanListHeader; import jaxx.runtime.validator.swing.SwingValidatorMessageTableModel; @@ -343,6 +344,14 @@ public abstract class ContentUIHandler<E extends IdDto, U extends ContentUI<E, U } + public void destroyUI() { + UIHelper.removeAllDataBindings(getUi()); + getModel().destroy(); + UIHelper.destroy((Component) getUi()); + DefaultJAXXContext delegateContext = (DefaultJAXXContext) getUi().getDelegateContext(); + delegateContext.clear(); + } + protected void installFocusTraversalPolicy() { ObserveSwingApplicationContext.get().getFocusManager().installFocusTraversalPolicy(ui); } @@ -938,7 +947,7 @@ public abstract class ContentUIHandler<E extends IdDto, U extends ContentUI<E, U } - // sortReferential data from first decorator context + // sort data from first decorator context DataReferenceDecorator<R> decorator = getDataReferenceDecorator(dtoClass); DecoratorUtil.sort(decorator, data, 0); @@ -965,7 +974,7 @@ public abstract class ContentUIHandler<E extends IdDto, U extends ContentUI<E, U } - // sortReferential data from first decorator context + // sort data from first decorator context ReferentialReferenceDecorator<R> decorator = getReferentialReferenceDecorator(dtoClass); DecoratorUtil.sort(decorator, data, 0); @@ -999,7 +1008,7 @@ public abstract class ContentUIHandler<E extends IdDto, U extends ContentUI<E, U } - // sortReferential data from first decorator context + // sort data from first decorator context ReferentialReferenceDecorator<R> decorator = getReferentialReferenceDecorator(dtoClass); DecoratorUtil.sort(decorator, data, 0); @@ -1031,7 +1040,7 @@ public abstract class ContentUIHandler<E extends IdDto, U extends ContentUI<E, U } - // sortReferential data from first decorator context + // sort data from first decorator context DataReferenceDecorator<R> decorator = getDataReferenceDecorator(dtoClass); DecoratorUtil.sort(decorator, data, 0); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIManager.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIManager.java index 3eaa004..1c18476 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIManager.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIManager.java @@ -191,6 +191,15 @@ public class ContentUIManager { return closed; } + public void removeSelectedContentUI() { + + ContentUI<?, ?> selectedContentUI = getSelectedContentUI(); + if (selectedContentUI != null) { + getLayout().removeLayoutComponent(selectedContentUI, selectedContentUI.getClass().getName()); + selectedContentUI.destroy(); + } + } + public void restartEdit() { ContentUI<?, ?> selectedUI = getSelectedContentUI(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIModel.java index 7ac6e1e..8c32cce 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIModel.java @@ -328,4 +328,10 @@ public abstract class ContentUIModel<E extends IdDto> extends AbstractSerializab return (DataReferenceSet<R>) referenceSet; } + public void destroy() { + dataReferenceSetsByPropertyName = null; + referentialReferenceSetsByPropertyName = null; + form = null; + bean = null; + } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveContentUI.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveContentUI.java index 76363cd..ef383d9 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveContentUI.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveContentUI.java @@ -62,6 +62,8 @@ public interface ObserveContentUI<E extends IdDto, U extends ContentUI<E, U>> ex boolean close(); + void destroy(); + void stopEdit(); void startEdit(E bean); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.