X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Fviewers%2FAbstractPageViewer.java;h=b52f76be52f5afe769c436d5cdbed3e5dfc0b11f;hb=86db10fcb2299ebf71d5599a80dc54444b26f893;hp=abdeb0d619b21bc011053e66747385b1b3c4ad82;hpb=9e34ce0a43122bc3ff80a2469de1d465924c6dce;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/viewers/AbstractPageViewer.java b/org.argeo.cms/src/org/argeo/cms/viewers/AbstractPageViewer.java index abdeb0d61..b52f76be5 100644 --- a/org.argeo.cms/src/org/argeo/cms/viewers/AbstractPageViewer.java +++ b/org.argeo.cms/src/org/argeo/cms/viewers/AbstractPageViewer.java @@ -16,6 +16,8 @@ import org.eclipse.jface.viewers.ContentViewer; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.swt.SWT; +import org.eclipse.swt.events.FocusEvent; +import org.eclipse.swt.events.FocusListener; import org.eclipse.swt.events.MouseAdapter; import org.eclipse.swt.events.MouseListener; import org.eclipse.swt.widgets.Composite; @@ -36,29 +38,11 @@ public abstract class AbstractPageViewer extends ContentViewer implements private final CmsEditable cmsEditable; private MouseListener mouseListener; + private FocusListener focusListener; private EditablePart edited; private ISelection selection = StructuredSelection.EMPTY; - // FIXME Added by BSinou to manage non-section Composite. - // Is it the correct method? - @Deprecated - protected AbstractPageViewer(Composite parent, int style, - CmsEditable cmsEditable) { - // read only at UI level - readOnly = SWT.READ_ONLY == (style & SWT.READ_ONLY); - - this.cmsEditable = cmsEditable == null ? CmsEditable.NON_EDITABLE - : cmsEditable; - if (this.cmsEditable instanceof Observable) - ((Observable) this.cmsEditable).addObserver(this); - - if (cmsEditable.canEdit()) { - mouseListener = createMouseListener(); - } - page = findPage(parent); - } - protected AbstractPageViewer(Section parent, int style, CmsEditable cmsEditable) { // read only at UI level @@ -71,6 +55,7 @@ public abstract class AbstractPageViewer extends ContentViewer implements if (cmsEditable.canEdit()) { mouseListener = createMouseListener(); + focusListener = createFocusListener(); } page = findPage(parent); } @@ -107,6 +92,21 @@ public abstract class AbstractPageViewer extends ContentViewer implements }; } + /** Create (retrieve) the FocusListener to use. */ + protected FocusListener createFocusListener() { + return new FocusListener() { + private static final long serialVersionUID = 1L; + + @Override + public void focusLost(FocusEvent event) { + } + + @Override + public void focusGained(FocusEvent event) { + } + }; + } + protected Composite findPage(Composite composite) { if (composite instanceof ScrolledPage) { return (ScrolledPage) composite; @@ -260,6 +260,7 @@ public abstract class AbstractPageViewer extends ContentViewer implements /** Persist all changes. */ protected void persistChanges(Session session) throws RepositoryException { session.save(); + session.refresh(false); // TODO notify that changes have been persisted } @@ -293,6 +294,10 @@ public abstract class AbstractPageViewer extends ContentViewer implements return mouseListener; } + public FocusListener getFocusListener() { + return focusListener; + } + public CmsEditable getCmsEditable() { return cmsEditable; } @@ -301,5 +306,4 @@ public abstract class AbstractPageViewer extends ContentViewer implements public ISelection getSelection() { return selection; } - -} +} \ No newline at end of file