1 package org
.argeo
.cms
.widgets
;
3 import org
.eclipse
.swt
.SWT
;
4 import org
.eclipse
.swt
.custom
.ScrolledComposite
;
5 import org
.eclipse
.swt
.events
.ControlEvent
;
6 import org
.eclipse
.swt
.graphics
.Point
;
7 import org
.eclipse
.swt
.graphics
.Rectangle
;
8 import org
.eclipse
.swt
.widgets
.Composite
;
11 * A composite that can be scrolled vertically. It wraps a
12 * {@link ScrolledComposite} (and is being wrapped by it), simplifying its
15 public class ScrolledPage
extends Composite
{
16 private static final long serialVersionUID
= 1593536965663574437L;
18 private ScrolledComposite scrolledComposite
;
20 public ScrolledPage(Composite parent
, int style
) {
21 super(new ScrolledComposite(parent
, SWT
.V_SCROLL
), style
);
22 scrolledComposite
= (ScrolledComposite
) getParent();
23 scrolledComposite
.setContent(this);
25 scrolledComposite
.setExpandVertical(true);
26 scrolledComposite
.setExpandHorizontal(true);
27 scrolledComposite
.addControlListener(new ScrollControlListener());
31 public void layout(boolean changed
, boolean all
) {
33 super.layout(changed
, all
);
36 protected void updateScroll() {
37 Rectangle r
= scrolledComposite
.getClientArea();
38 Point preferredSize
= computeSize(r
.width
, SWT
.DEFAULT
);
39 scrolledComposite
.setMinHeight(preferredSize
.y
);
42 // public ScrolledComposite getScrolledComposite() {
43 // return this.scrolledComposite;
46 /** Set it on the wrapping scrolled composite */
48 public void setLayoutData(Object layoutData
) {
49 scrolledComposite
.setLayoutData(layoutData
);
52 private class ScrollControlListener
extends
53 org
.eclipse
.swt
.events
.ControlAdapter
{
54 private static final long serialVersionUID
= -3586986238567483316L;
56 public void controlResized(ControlEvent e
) {