From 5e3263b18866736c3973cb2654c72fa4e549df05 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Thu, 21 Jan 2021 10:14:44 +0100 Subject: [PATCH] Edition lifecycle. --- .../org/argeo/cms/ui/viewers/AbstractPageViewer.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/org.argeo.cms.ui/src/org/argeo/cms/ui/viewers/AbstractPageViewer.java b/org.argeo.cms.ui/src/org/argeo/cms/ui/viewers/AbstractPageViewer.java index a60c4f62e..60db89978 100644 --- a/org.argeo.cms.ui/src/org/argeo/cms/ui/viewers/AbstractPageViewer.java +++ b/org.argeo.cms.ui/src/org/argeo/cms/ui/viewers/AbstractPageViewer.java @@ -198,9 +198,9 @@ public abstract class AbstractPageViewer extends ContentViewer implements Observ } part.startEditing(); + edited = part; updateContent(part); prepare(part, caretPosition); - edited = part; edited.getControl().addFocusListener(new FocusListener() { private static final long serialVersionUID = 6883521812717097017L; @@ -239,8 +239,12 @@ public abstract class AbstractPageViewer extends ContentViewer implements Observ save(edited); edited.stopEditing(); - updateContent(edited); - layout(((EditablePart) edited).getControl()); + EditablePart editablePart = edited; + Control control = ((EditablePart) edited).getControl(); + edited = null; + // TODO make edited state management more robust + updateContent(editablePart); + layout(control); } catch (RepositoryException e) { throw new JcrException("Cannot stop editing", e); } finally { -- 2.30.2