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
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);
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);
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) {