1 package org
.argeo
.cms
.swt
.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
;
9 import org
.eclipse
.swt
.widgets
.Control
;
12 * A composite that can be scrolled vertically. It wraps a
13 * {@link ScrolledComposite} (and is being wrapped by it), simplifying its
16 public class ScrolledPage
extends Composite
{
17 private static final long serialVersionUID
= 1593536965663574437L;
19 private ScrolledComposite scrolledComposite
;
21 public ScrolledPage(Composite parent
, int style
) {
22 this(parent
, style
, false);
25 public ScrolledPage(Composite parent
, int style
, boolean alwaysShowScroll
) {
26 super(createScrolledComposite(parent
, alwaysShowScroll
), style
);
27 scrolledComposite
= (ScrolledComposite
) getParent();
28 scrolledComposite
.setContent(this);
30 scrolledComposite
.setExpandVertical(true);
31 scrolledComposite
.setExpandHorizontal(true);
32 scrolledComposite
.addControlListener(new ScrollControlListener());
35 private static ScrolledComposite
createScrolledComposite(Composite parent
, boolean alwaysShowScroll
) {
36 ScrolledComposite scrolledComposite
= new ScrolledComposite(parent
, SWT
.V_SCROLL
);
37 scrolledComposite
.setAlwaysShowScrollBars(alwaysShowScroll
);
38 return scrolledComposite
;
42 public void layout(boolean changed
, boolean all
) {
44 super.layout(changed
, all
);
47 public void showControl(Control control
) {
48 scrolledComposite
.showControl(control
);
51 protected void updateScroll() {
52 Rectangle r
= scrolledComposite
.getClientArea();
53 Point preferredSize
= computeSize(r
.width
, SWT
.DEFAULT
);
54 scrolledComposite
.setMinHeight(preferredSize
.y
);
57 // public ScrolledComposite getScrolledComposite() {
58 // return this.scrolledComposite;
61 /** Set it on the wrapping scrolled composite */
63 public void setLayoutData(Object layoutData
) {
64 scrolledComposite
.setLayoutData(layoutData
);
67 private class ScrollControlListener
extends org
.eclipse
.swt
.events
.ControlAdapter
{
68 private static final long serialVersionUID
= -3586986238567483316L;
70 public void controlResized(ControlEvent e
) {