From 40b08908d2519f46bce6d1bc3364224100c59c28 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Fri, 23 Jun 2023 11:19:29 +0200 Subject: [PATCH] Improve content widgets --- .../src/org/argeo/api/cms/ux/CmsView.java | 2 +- .../src/org/argeo/cms/ux/acr/ContentPart.java | 8 +++--- .../argeo/cms/swt/acr/AbstractPageViewer.java | 25 ++++++++----------- .../argeo/cms/swt/acr/ContentComposite.java | 4 ++- .../cms/swt/acr/ContentStyledControl.java | 22 ++++++++++++++++ .../src/org/argeo/cms/swt/acr/Img.java | 3 +-- 6 files changed, 42 insertions(+), 22 deletions(-) create mode 100644 swt/org.argeo.cms.swt/src/org/argeo/cms/swt/acr/ContentStyledControl.java diff --git a/org.argeo.api.cms/src/org/argeo/api/cms/ux/CmsView.java b/org.argeo.api.cms/src/org/argeo/api/cms/ux/CmsView.java index 15b6a5dc7..a36baf8e0 100644 --- a/org.argeo.api.cms/src/org/argeo/api/cms/ux/CmsView.java +++ b/org.argeo.api.cms/src/org/argeo/api/cms/ux/CmsView.java @@ -31,7 +31,7 @@ public interface CmsView { // SERVICES void exception(Throwable e); - CmsImageManager getImageManager(); + CmsImageManager getImageManager(); boolean isAnonymous(); diff --git a/org.argeo.cms.ux/src/org/argeo/cms/ux/acr/ContentPart.java b/org.argeo.cms.ux/src/org/argeo/cms/ux/acr/ContentPart.java index 0a0ad0ea5..db8a746fc 100644 --- a/org.argeo.cms.ux/src/org/argeo/cms/ux/acr/ContentPart.java +++ b/org.argeo.cms.ux/src/org/argeo/cms/ux/acr/ContentPart.java @@ -6,9 +6,9 @@ import org.argeo.api.acr.Content; public interface ContentPart { Content getContent(); - @Deprecated - default Content getNode() { - return getContent(); - } +// @Deprecated +// default Content getNode() { +// return getContent(); +// } } diff --git a/swt/org.argeo.cms.swt/src/org/argeo/cms/swt/acr/AbstractPageViewer.java b/swt/org.argeo.cms.swt/src/org/argeo/cms/swt/acr/AbstractPageViewer.java index cf05f6f64..fab29fa3b 100644 --- a/swt/org.argeo.cms.swt/src/org/argeo/cms/swt/acr/AbstractPageViewer.java +++ b/swt/org.argeo.cms.swt/src/org/argeo/cms/swt/acr/AbstractPageViewer.java @@ -4,9 +4,6 @@ import java.security.PrivilegedAction; import javax.security.auth.Subject; -import org.argeo.api.acr.Content; -import org.argeo.api.acr.ContentSession; -import org.argeo.api.acr.spi.ProvidedContent; import org.argeo.api.cms.CmsLog; import org.argeo.api.cms.ux.CmsEditable; import org.argeo.cms.CurrentUser; @@ -274,17 +271,17 @@ public abstract class AbstractPageViewer { throw new IllegalStateException("Edited should not be null or disposed at this stage"); } - /** Persist all changes. */ - protected void persistChanges(ContentSession session) { -// session.save(); -// session.refresh(false); - // TODO notify that changes have been persisted - } - - /** Convenience method using a Node in order to save the underlying session. */ - protected void persistChanges(Content anyNode) { - persistChanges(((ProvidedContent) anyNode).getSession()); - } +// /** Persist all changes. */ +// protected void persistChanges(ContentSession session) { +//// session.save(); +//// session.refresh(false); +// // TODO notify that changes have been persisted +// } +// +// /** Convenience method using a Node in order to save the underlying session. */ +// protected void persistChanges(Content anyNode) { +// persistChanges(((ProvidedContent) anyNode).getSession()); +// } /** Notify edition exception */ protected void notifyEditionException(Throwable e) { diff --git a/swt/org.argeo.cms.swt/src/org/argeo/cms/swt/acr/ContentComposite.java b/swt/org.argeo.cms.swt/src/org/argeo/cms/swt/acr/ContentComposite.java index 4a35a3bdd..4cab6d008 100644 --- a/swt/org.argeo.cms.swt/src/org/argeo/cms/swt/acr/ContentComposite.java +++ b/swt/org.argeo.cms.swt/src/org/argeo/cms/swt/acr/ContentComposite.java @@ -2,10 +2,11 @@ package org.argeo.cms.swt.acr; import org.argeo.api.acr.Content; import org.argeo.api.acr.spi.ProvidedContent; +import org.argeo.cms.ux.acr.ContentPart; import org.eclipse.swt.widgets.Composite; /** A composite which can (optionally) manage a content. */ -public class ContentComposite extends Composite { +public class ContentComposite extends Composite implements ContentPart { private static final long serialVersionUID = -1447009015451153367L; public ContentComposite(Composite parent, int style, Content item) { @@ -20,6 +21,7 @@ public class ContentComposite extends Composite { return getData() instanceof Content; } + @Override public Content getContent() { return (Content) getData(); } diff --git a/swt/org.argeo.cms.swt/src/org/argeo/cms/swt/acr/ContentStyledControl.java b/swt/org.argeo.cms.swt/src/org/argeo/cms/swt/acr/ContentStyledControl.java new file mode 100644 index 000000000..78ec8002b --- /dev/null +++ b/swt/org.argeo.cms.swt/src/org/argeo/cms/swt/acr/ContentStyledControl.java @@ -0,0 +1,22 @@ +package org.argeo.cms.swt.acr; + +import org.argeo.api.acr.Content; +import org.argeo.cms.swt.widgets.StyledControl; +import org.argeo.cms.ux.acr.ContentPart; +import org.eclipse.swt.widgets.Composite; + +public abstract class ContentStyledControl extends StyledControl implements ContentPart { + + private static final long serialVersionUID = -5714246408818696583L; + + public ContentStyledControl(Composite parent, int swtStyle, Content content) { + super(parent, swtStyle); + setData(content); + } + + @Override + public Content getContent() { + return (Content) getData(); + } + +} diff --git a/swt/org.argeo.cms.swt/src/org/argeo/cms/swt/acr/Img.java b/swt/org.argeo.cms.swt/src/org/argeo/cms/swt/acr/Img.java index eb52fc6a3..a5d22bca1 100644 --- a/swt/org.argeo.cms.swt/src/org/argeo/cms/swt/acr/Img.java +++ b/swt/org.argeo.cms.swt/src/org/argeo/cms/swt/acr/Img.java @@ -44,8 +44,7 @@ public class Img extends EditableImage implements SwtSectionPart, ContentPart { CmsImageManager imageManager) { super(parent, swtStyle, preferredImageSize); this.section = section; - this.imageManager = imageManager != null ? imageManager - : (CmsImageManager) CmsSwtUtils.getCmsView(section).getImageManager(); + this.imageManager = imageManager != null ? imageManager : CmsSwtUtils.getCmsView(section).getImageManager(); // CmsSwtUtils.style(this, TextStyles.TEXT_IMG); setData(imgNode); } -- 2.30.2