X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Fviewers%2FAbstractPageViewer.java;h=837cf99292368b9617eeb8cecdfc39d296a57574;hb=60e8274d08b93c5dbb46a2fc2a4f8b1a0d18c0ed;hp=5e6de37097ea226c9a0165eb16666739c13e1f3c;hpb=998cdf60d00ffc35d987bdb373a9676b095f16f8;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 5e6de3709..837cf9929 100644 --- a/org.argeo.cms/src/org/argeo/cms/viewers/AbstractPageViewer.java +++ b/org.argeo.cms/src/org/argeo/cms/viewers/AbstractPageViewer.java @@ -38,6 +38,25 @@ public abstract class AbstractPageViewer extends ContentViewer implements 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 @@ -205,6 +224,20 @@ public abstract class AbstractPageViewer extends ContentViewer implements page.layout(controls); } + /** + * Find the first {@link EditablePart} in the parents hierarchy of this + * control + */ + protected EditablePart findDataParent(Control parent) { + if (parent instanceof EditablePart) { + return (EditablePart) parent; + } + if (parent.getParent() != null) + return findDataParent(parent.getParent()); + else + throw new CmsException("No data parent found"); + } + // UTILITIES /** Check whether the edited part is in a proper state */ protected void checkEdited() {