FormLayout aligning to biggest label? [message #466919] |
Thu, 19 January 2006 12:49 |
Robert (Kraythe) Simmons Messages: 1 Registered: July 2009 |
Junior Member |
|
|
Greetings. I have a panel in which I am using a FormLayout. In that panel
there are 3 labels which are internationalized to run in 2 languages.
Furthermore, each label has a text field next to it in which the user
enters data. In english the top label is the largest horizontally. In
german the middle label is the largestand in french the bottom label is
largest. All labels are right justified. Is there any way I can specify
form attachments to make all of the labels line up on the right side so
that the fields attached the the labels line up? It should work no matter
which one is longest.
For example, this works if I want to line the bottom two to the top one,
but if the bottom or middle label is bigger then they are cut off.
FormData data;
Label a = new Label(...);
data = new FormData();
data.left = new FormAttachment(0,0);
a.setLayoutData(data);
Label b = new Label(...);
data = new FormData();
data.left = new FormAttachment(0,0);
data.right = new FormAttachment(a, 0, SWT.RIGHT);
b.setLayoutData(data);
Label c = new Label(...);
data = new FormData();
data.left = new FormAttachment(0,0);
data.right = new FormAttachment(b, 0, SWT.RIGHT);
c.setLayoutData(data);
I want something like this that will work no matter which label is bigger.
TIA
-- Robert
|
|
|
Re: FormLayout aligning to biggest label? [message #466951 is a reply to message #466919] |
Thu, 19 January 2006 19:45 |
Eclipse User |
|
|
|
Originally posted by: kwpeck.mersoft.com
I would suggest using GridLayout instead of FormLayout. If you set the
GridLayout for two columns and set equal column widths to false you will
get what you want.
You don't have to do the ENTIRE panels layout as a GridLayout. You can
do a simple composite that holds the labels you describe below in a
GridLayout and add that composite to the overall FormLayout where you
want it to appear.
With out a bunch of fancy pants coding you are not going to achieve what
you want with FormLayout.
Robert Simmons Jr. wrote:
> Greetings. I have a panel in which I am using a FormLayout. In that
> panel there are 3 labels which are internationalized to run in 2
> languages. Furthermore, each label has a text field next to it in which
> the user enters data. In english the top label is the largest
> horizontally. In german the middle label is the largestand in french the
> bottom label is largest. All labels are right justified. Is there any
> way I can specify form attachments to make all of the labels line up on
> the right side so that the fields attached the the labels line up? It
> should work no matter which one is longest.
> For example, this works if I want to line the bottom two to the top one,
> but if the bottom or middle label is bigger then they are cut off.
>
> FormData data; Label a = new Label(...);
> data = new FormData();
> data.left = new FormAttachment(0,0);
> a.setLayoutData(data);
>
> Label b = new Label(...);
> data = new FormData();
> data.left = new FormAttachment(0,0);
> data.right = new FormAttachment(a, 0, SWT.RIGHT);
> b.setLayoutData(data);
>
> Label c = new Label(...);
> data = new FormData();
> data.left = new FormAttachment(0,0);
> data.right = new FormAttachment(b, 0, SWT.RIGHT);
> c.setLayoutData(data);
>
>
> I want something like this that will work no matter which label is bigger.
> TIA
>
> -- Robert
>
|
|
|
Powered by
FUDForum. Page generated in 0.02366 seconds