[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Newsgroup Home]
[news.eclipse.platform.rcp] Re: Forms API

From my previous experiences, Combo should not be used in Forms. Use the
CCombo instead, and use the SWT.FLAT style to give it a flat look. Hope
this helps.

Regards,
Nicole

Mike Evans wrote:

> For your border problem, use :
>    toolkit.paintBordersfor( form.getBody() );
> The call must be made on the direct parent of the controls.
> Make sure you include :
>    setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER);
> on any controls not directly created by the toolkit.

> As for the button sizes - they will be the width of the columns but 
> these are not equal unless you explicitly state:
>    layout.makeColumnsEqualWidth=true;
> However this will not be very pretty.  Better would be a separate parent 
> composite for the buttons:
>    Composite buttonsParent = ...
>    buttonsParent.new GridLayout( numberOfButtons );
>    Button button1 = ....
>    button1.setLayoutData( new GridData( GridData.HORIZONTAL_ALIGN_FILL  ) );

> Hope this helps,

> Mike E.




> Teichgraf wrote:
> > I have a View and in that I have some controls. I read the article from:
> >
http://dev.eclipse.org/viewcvs/index.cgi/~checkout~/pde-ui-home/working/EclipseForms/EclipseForms.html
> > 
> > The problem is, the borders aren't drawn like they should (flat). For the 
> > combobox they are drawn 3d. And for the ListViewer.getList() no borders
are 
> > drawn and even for the TextBox, which I created using the Toolkit no
borders 
> > are drawn. If I set the flag SWT.BORDER in the Constructor of the Textbox
or 
> > the List a 3D Border is drawn not the flat one. ???????????????????
> > And the 3 last Buttons, should be all in one row everyone has two columns, 
> > so they should be the same size or? But they are not!
> > I have also tested the TableWrapLayout.
> > ??????????????????????
> > 
> > 
> > Code (without Eventhandling):
> >
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
> > 
> > public void createPartControl(Composite parent)
> > {
> >     /*+++++++++++ Form  +++++++++++++++*/
> >     toolkit = new FormToolkit(parent.getDisplay());
> >     form = toolkit.createScrolledForm(parent);
> > 
> >     /*++++++++++++++ Layout Form ++++++++++++++++++*/
> >     GridLayout layout = new GridLayout();
> >     layout.numColumns = 6;
> >     form.getBody().setLayout(layout);
> > 
> >      /*++++++++++++++ Filter Label ++++++++++++++++++*/
> >     filterLab = toolkit.createLabel(form.getBody(), "Filter:", SWT.CENTER);
> >     filterLab.setLayoutData(new GridData(GridData.CENTER));
> > 
> >      /*++++++++++++++ Filter Combo ++++++++++++++++++*/
> >     filterCombo = new Combo(form.getBody(), SWT.DROP_DOWN);
> >     toolkit.adapt(filterCombo);
> >     GridData filterComboLData = new GridData();
> >     filterComboLData.verticalAlignment = GridData.CENTER;
> >     filterComboLData.horizontalAlignment = GridData.FILL;
> >     filterComboLData.grabExcessHorizontalSpace = true;
> >     filterComboLData.horizontalSpan = 4;
> >     filterCombo.setLayoutData(filterComboLData);
> >     // tested if this works, but no better result:
> > //      filterCombo.setData(FormToolkit.KEY_DRAW_BORDER, 
> > FormToolkit.TEXT_BORDER);
> > //      toolkit.paintBordersFor(parent);
> > 
> >      /*++++++++++++++ Sort Button ++++++++++++++++++*/
> >     sortBtn = toolkit.createButton(form.getBody(), "Sorted", SWT.TOGGLE | 
> > SWT.CENTER);
> >     GridData sortBtnLData = new GridData();
> >     sortBtnLData.verticalAlignment = GridData.CENTER;
> >     sortBtnLData.horizontalAlignment = GridData.FILL;
> >     sortBtn.setLayoutData(sortBtnLData);
> > 
> >     /*+++++++++++++++ ListEditor +++++++++++++++++++++++*/
> >     viewer = new ListViewer(form.getBody(), SWT.MULTI | SWT.H_SCROLL |
> >                                   SWT.VIRTUAL | SWT.V_SCROLL | SWT.BORDER);
> >     toolkit.adapt(viewer.getList(), true, true);
> >     GridData viewerLData = new GridData();
> >     viewerLData.grabExcessHorizontalSpace = true;
> >     viewerLData.grabExcessVerticalSpace= true;
> >     viewerLData.horizontalAlignment = GridData.FILL;
> >     viewerLData.verticalAlignment = GridData.FILL;
> >     viewerLData.horizontalSpan = 6;
> >     viewer.getList().setLayoutData(viewerLData);
> > 
> >     /*++++++++++++ Textbox +++++++++*/
> >     listEntryTxt = toolkit.createText(form.getBody(), "");
> >     GridData listEntryLData = new GridData();
> >     listEntryLData.horizontalAlignment = GridData.FILL;
> >     listEntryLData.verticalAlignment = GridData.CENTER;
> >     listEntryLData.grabExcessHorizontalSpace = true;
> >     listEntryLData.horizontalSpan = 6;
> >     listEntryTxt.setLayoutData(listEntryLData);
> > 
> >     /*++++++++++++++++++ Change Button ++++++++++++++++++++*/
> >     changeBtn = toolkit.createButton(form.getBody(), "Change",
> >                                      SWT.PUSH | SWT.CENTER);
> >     GridData changeBtnLData = new GridData();
> >     changeBtnLData.verticalAlignment = GridData.CENTER;
> >     changeBtnLData.horizontalAlignment= GridData.FILL;
> >     changeBtnLData.grabExcessHorizontalSpace = true;
> >     changeBtnLData.horizontalSpan = 2;
> >     changeBtn.setLayoutData(changeBtnLData);
> > 
> >     /*++++++++++++++++++ Insert Button ++++++++++++++++++++*/
> >     insertBtn = toolkit.createButton(form.getBody(), "Insert",
> >                                      SWT.PUSH | SWT.CENTER);
> >     GridData insertBtnLData = new GridData();
> >     insertBtnLData.verticalAlignment = GridData.CENTER;
> >     insertBtnLData.horizontalAlignment = GridData.FILL;
> >     insertBtnLData.grabExcessHorizontalSpace = true;
> >     insertBtnLData.horizontalSpan = 2;
> >     insertBtn.setLayoutData(insertBtnLData);
> > 
> >     /*++++++++++++++++++ Delete Button ++++++++++++++++++++*/
> >     deleteBtn = toolkit.createButton(form.getBody(), "Delete",
> >                                      SWT.PUSH | SWT.CENTER);
> >      GridData deleteBtnLData = new GridData();
> >     deleteBtnLData.verticalAlignment = GridData.CENTER;
> >     deleteBtnLData.horizontalAlignment = GridData.FILL;
> >     deleteBtnLData.grabExcessHorizontalSpace = true;
> >     deleteBtnLData.horizontalSpan = 2;
> >     deleteBtn.setLayoutData(deleteBtnLData);
> > 
> >     //With or without this, the borders are not drawn for listEntryTxt and 
> > viewer
> >     //filterCombo has a 3D Border!  ???????????????
> >     toolkit.paintBordersFor(parent);
> > }
> > 
> >
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
> > Thanks in advance!
> > Rene 
> > 
> >