X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms.ui%2Fsrc%2Forg%2Fargeo%2Fcms%2Fui%2Fwidgets%2FScrolledPage.java;h=517e796e944ccead7b930823eff203558f5bb13f;hb=633a8acd189cc22f06944d278879601189be1bc8;hp=5dd00adf21b23cba56c09ed3718f572f3a7bc435;hpb=5b3108fe285bca50565b58b63fa4feddc96c0765;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms.ui/src/org/argeo/cms/ui/widgets/ScrolledPage.java b/org.argeo.cms.ui/src/org/argeo/cms/ui/widgets/ScrolledPage.java index 5dd00adf2..517e796e9 100644 --- a/org.argeo.cms.ui/src/org/argeo/cms/ui/widgets/ScrolledPage.java +++ b/org.argeo.cms.ui/src/org/argeo/cms/ui/widgets/ScrolledPage.java @@ -6,6 +6,7 @@ import org.eclipse.swt.events.ControlEvent; import org.eclipse.swt.graphics.Point; import org.eclipse.swt.graphics.Rectangle; import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; /** * A composite that can be scrolled vertically. It wraps a @@ -18,7 +19,11 @@ public class ScrolledPage extends Composite { private ScrolledComposite scrolledComposite; public ScrolledPage(Composite parent, int style) { - super(new ScrolledComposite(parent, SWT.V_SCROLL), style); + this(parent, style, false); + } + + public ScrolledPage(Composite parent, int style, boolean alwaysShowScroll) { + super(createScrolledComposite(parent, alwaysShowScroll), style); scrolledComposite = (ScrolledComposite) getParent(); scrolledComposite.setContent(this); @@ -27,12 +32,22 @@ public class ScrolledPage extends Composite { scrolledComposite.addControlListener(new ScrollControlListener()); } + private static ScrolledComposite createScrolledComposite(Composite parent, boolean alwaysShowScroll) { + ScrolledComposite scrolledComposite = new ScrolledComposite(parent, SWT.V_SCROLL); + scrolledComposite.setAlwaysShowScrollBars(alwaysShowScroll); + return scrolledComposite; + } + @Override public void layout(boolean changed, boolean all) { updateScroll(); super.layout(changed, all); } + public void showControl(Control control) { + scrolledComposite.showControl(control); + } + protected void updateScroll() { Rectangle r = scrolledComposite.getClientArea(); Point preferredSize = computeSize(r.width, SWT.DEFAULT); @@ -49,8 +64,7 @@ public class ScrolledPage extends Composite { scrolledComposite.setLayoutData(layoutData); } - private class ScrollControlListener extends - org.eclipse.swt.events.ControlAdapter { + private class ScrollControlListener extends org.eclipse.swt.events.ControlAdapter { private static final long serialVersionUID = -3586986238567483316L; public void controlResized(ControlEvent e) {