Multi line text field and TableWrapLayout [message #333784] |
Mon, 05 January 2009 20:48 |
AJ ![Friend of Eclipse Friend](/donate/web-api/friends_decorator.php?email=cagiva851%40yahoo.com) Messages: 77 Registered: July 2009 |
Member |
|
|
Hi there,
Why are multi-line Text fields always displayed with 1 line height when it
is used within a section contained by a form that uses a TableWrapLayout
in conjunction with TableWrapData?
However, if the form uses GridLayout + GridData, then the Text is
displayed with the correct 3 or 4 lines height. Please snippet below.
Thanks in advance!
-----------------
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.forms.widgets.ExpandableComposite;
import org.eclipse.ui.forms.widgets.FormToolkit;
import org.eclipse.ui.forms.widgets.ScrolledForm;
import org.eclipse.ui.forms.widgets.Section;
import org.eclipse.ui.forms.widgets.TableWrapData;
import org.eclipse.ui.forms.widgets.TableWrapLayout;
public class Test {
public static void main(String[] args) {
Display display = new Display();
Shell shell = new Shell(display, SWT.SHELL_TRIM);
shell.setLayout(new GridLayout());
FormToolkit toolkit = new FormToolkit(display);
final ScrolledForm form = toolkit.createScrolledForm(shell);
form.getBody().setLayout(new TableWrapLayout());
// form.getBody().setLayout(new GridLayout());
form.setText("Form");
Composite composite = toolkit.createComposite(form.getBody());
TableWrapData layoutData = new TableWrapData(TableWrapData.FILL_GRAB,
TableWrapData.FILL_GRAB, 2, 1);
layoutData.maxWidth = 400;
// GridData layoutData = new GridData(GridData.FILL_BOTH);
// layoutData.horizontalSpan = 2;
// layoutData.verticalSpan = 1;
// layoutData.widthHint = 400;
composite.setLayoutData(layoutData);
composite.setLayout(new GridLayout(1, true));
Section section = toolkit.createSection(composite,
ExpandableComposite.TITLE_BAR);
GridData sectionLayoutData = new GridData(SWT.FILL, SWT.FILL, true,
true);
sectionLayoutData.horizontalSpan = 2;
sectionLayoutData.verticalIndent = 6;
section.setLayoutData(sectionLayoutData);
section.setRedraw(true);
section.setText("Section title");
Composite sectionClient = toolkit.createComposite(section);
GridLayout sectionClientLayout = new GridLayout(2, false);
sectionClientLayout.verticalSpacing = 2;
sectionClientLayout.horizontalSpacing = 10;
sectionClient.setLayout(sectionClientLayout);
section.setClient(sectionClient);
Label label = toolkit.createLabel(sectionClient, "Description : ");
label.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false));
Text suggestTemplateText = toolkit.createText(sectionClient, "",
SWT.MULTI
| SWT.BORDER | SWT.V_SCROLL);
toolkit.adapt(suggestTemplateText, true, true);
suggestTemplateText.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true,
true));
shell.pack();
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
}
|
|
|
Powered by
FUDForum. Page generated in 0.03259 seconds