1 package org
.argeo
.cms
.ui
.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 this(parent
, style
, false);
24 public ScrolledPage(Composite parent
, int style
, boolean alwaysShowScroll
) {
25 super(createScrolledComposite(parent
, alwaysShowScroll
), style
);
26 scrolledComposite
= (ScrolledComposite
) getParent();
27 scrolledComposite
.setContent(this);
29 scrolledComposite
.setExpandVertical(true);
30 scrolledComposite
.setExpandHorizontal(true);
31 scrolledComposite
.addControlListener(new ScrollControlListener());
34 private static ScrolledComposite
createScrolledComposite(Composite parent
, boolean alwaysShowScroll
) {
35 ScrolledComposite scrolledComposite
= new ScrolledComposite(parent
, SWT
.V_SCROLL
);
36 scrolledComposite
.setAlwaysShowScrollBars(alwaysShowScroll
);
37 return scrolledComposite
;
41 public void layout(boolean changed
, boolean all
) {
43 super.layout(changed
, all
);
46 protected void updateScroll() {
47 Rectangle r
= scrolledComposite
.getClientArea();
48 Point preferredSize
= computeSize(r
.width
, SWT
.DEFAULT
);
49 scrolledComposite
.setMinHeight(preferredSize
.y
);
52 // public ScrolledComposite getScrolledComposite() {
53 // return this.scrolledComposite;
56 /** Set it on the wrapping scrolled composite */
58 public void setLayoutData(Object layoutData
) {
59 scrolledComposite
.setLayoutData(layoutData
);
62 private class ScrollControlListener
extends org
.eclipse
.swt
.events
.ControlAdapter
{
63 private static final long serialVersionUID
= -3586986238567483316L;
65 public void controlResized(ControlEvent e
) {