X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms.ui%2Fsrc%2Forg%2Fargeo%2Fcms%2Fui%2Fwidgets%2FStyledControl.java;h=e3a5cb473d588fa47254ddb752773f04fda823d1;hb=633a8acd189cc22f06944d278879601189be1bc8;hp=5dde1f63708e161a26428521d8749924341f52e1;hpb=632b55e1fdf15316fd5a460e98b547aa1d49d66f;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms.ui/src/org/argeo/cms/ui/widgets/StyledControl.java b/org.argeo.cms.ui/src/org/argeo/cms/ui/widgets/StyledControl.java index 5dde1f637..e3a5cb473 100644 --- a/org.argeo.cms.ui/src/org/argeo/cms/ui/widgets/StyledControl.java +++ b/org.argeo.cms.ui/src/org/argeo/cms/ui/widgets/StyledControl.java @@ -2,8 +2,8 @@ package org.argeo.cms.ui.widgets; import javax.jcr.Item; -import org.argeo.cms.ui.CmsConstants; -import org.argeo.cms.ui.util.CmsUiUtils; +import org.argeo.cms.swt.CmsSwtUtils; +import org.argeo.cms.ui.CmsUiConstants; import org.argeo.eclipse.ui.specific.EclipseUiSpecificUtils; import org.eclipse.swt.SWT; import org.eclipse.swt.events.FocusListener; @@ -12,7 +12,7 @@ import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; /** Editable text part displaying styled text. */ -public abstract class StyledControl extends JcrComposite implements CmsConstants { +public abstract class StyledControl extends JcrComposite implements CmsUiConstants { private static final long serialVersionUID = -6372283442330912755L; private Control control; @@ -24,9 +24,11 @@ public abstract class StyledControl extends JcrComposite implements CmsConstants private Boolean editing = Boolean.FALSE; + private Composite ancestorToLayout; + public StyledControl(Composite parent, int swtStyle) { super(parent, swtStyle); - setLayout(CmsUiUtils.noSpaceGridLayout()); + setLayout(CmsSwtUtils.noSpaceGridLayout()); } public StyledControl(Composite parent, int style, Item item) { @@ -42,14 +44,14 @@ public abstract class StyledControl extends JcrComposite implements CmsConstants protected Composite createBox() { Composite box = new Composite(container, SWT.INHERIT_DEFAULT); setContainerLayoutData(box); - box.setLayout(CmsUiUtils.noSpaceGridLayout(3)); + box.setLayout(CmsSwtUtils.noSpaceGridLayout(3)); return box; } protected Composite createContainer() { Composite container = new Composite(this, SWT.INHERIT_DEFAULT); setContainerLayoutData(container); - container.setLayout(CmsUiUtils.noSpaceGridLayout()); + container.setLayout(CmsSwtUtils.noSpaceGridLayout()); return container; } @@ -81,11 +83,14 @@ public abstract class StyledControl extends JcrComposite implements CmsConstants clear(false); refreshControl(style); } - + protected void refreshControl(String style) { control = createControl(box, style); setControlLayoutData(control); - getParent().layout(true, true); + if (ancestorToLayout != null) + ancestorToLayout.layout(true, true); + else + getParent().layout(true, true); } public void setStyle(String style) { @@ -99,19 +104,19 @@ public abstract class StyledControl extends JcrComposite implements CmsConstants refreshControl(style); if (style != null) { - CmsUiUtils.style(box, style + "_box"); - CmsUiUtils.style(container, style + "_container"); + CmsSwtUtils.style(box, style + "_box"); + CmsSwtUtils.style(container, style + "_container"); } } /** To be overridden */ protected void setControlLayoutData(Control control) { - control.setLayoutData(CmsUiUtils.fillWidth()); + control.setLayoutData(CmsSwtUtils.fillWidth()); } /** To be overridden */ protected void setContainerLayoutData(Composite composite) { - composite.setLayoutData(CmsUiUtils.fillWidth()); + composite.setLayoutData(CmsSwtUtils.fillWidth()); } protected void clear(boolean deep) { @@ -140,4 +145,9 @@ public abstract class StyledControl extends JcrComposite implements CmsConstants if (control != null && this.focusListener != null) control.addFocusListener(focusListener); } + + public void setAncestorToLayout(Composite ancestorToLayout) { + this.ancestorToLayout = ancestorToLayout; + } + }