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

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




-- Mike Evans Incremental Ltd. www.incremental.eu.com