[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
|
[news.eclipse.platform.swt] Re: how to make a scrollable view ?
|
no change. still the view empty.
All the examples are on a standalone window, but not with a viewPart.
Has anybody got an idea?
anthony
Buddha wrote:
> I think the key is to set the size of the ScrolledComposite's Content.
> As the JavaDoc for ScrolledComposite states, there are two ways to use
> ScrolledComposite. One is to set the size of the Content, and the other is
> to set the ScrolledComposite to expand and set the ScrolledCompsite's
> minimum size. The following class shows both methods, just change the
> value of "expand".
> /* Main.java */
> package com.cormier.tools.swt;
> import org.eclipse.swt.SWT;
> import org.eclipse.swt.custom.*;
> import org.eclipse.swt.layout.*;
> import org.eclipse.swt.widgets.*;
> public class Main {
> final static boolean expand = true;
> public static void main(String[] args) {
> Display display = new Display();
> Shell shell = new Shell(display);
> shell.setLayout(new FillLayout());
> ViewForm form = new ViewForm(shell, SWT.DIALOG_TRIM);
> form.setLayout(new FillLayout());
> ScrolledComposite scroll = new ScrolledComposite(form, SWT.H_SCROLL |
> SWT.V_SCROLL | SWT.BORDER);
> scroll.setLayout(new FillLayout());
> scroll.setBackground(display.getSystemColor(SWT.COLOR_RED));
> scroll.setExpandHorizontal(expand);
> scroll.setExpandVertical(expand);
> form.setContent(scroll);
> Composite comp = new Composite(scroll, SWT.NONE);
> comp.setLayout(new RowLayout(SWT.VERTICAL));
> new CLabel(comp, SWT.NONE).setText("This is a test Label with really
> long text, to give us plenty of scrolling room\n\n\n\n\n\n\n\n");
> new Text(comp, SWT.NONE).setText("This is a text control.");
> new Button(comp, SWT.NONE).setText("This is a test Button");
> comp.setBackground(display.getSystemColor(SWT.COLOR_BLUE));
> if(expand)
> scroll.setMinSize(comp.computeSize(SWT.DEFAULT, SWT.DEFAULT));
> else
> comp.setSize(comp.computeSize(SWT.DEFAULT, SWT.DEFAULT));
> scroll.setContent(comp);
> shell.open ();
> while (!shell.isDisposed()) {
> if (!display.readAndDispatch ()) display.sleep ();
> }
> display.dispose ();
> }
> }