如何让Eclipse GEF GraphicalEditor在GridLayout中正常工作?

How to let Eclipse GEF GraphicalEditor work correctly in GridLayout?

我正在尝试将 GraphicalEditor 放入 eclipse RCP 项目的 GridLayout 中,以便在其下方添加另一个文本字段。

问题是:当我这样做时,尽管将编辑器周围的表单 GridData 对象设置为 grabExcessiveHorizo​​ntal(Vertical)Space = true(应该展开它的网格单元格尽可能宽)以及 horizontal/verticalAlignment = SWT.FILL(应尽可能宽地填充其单元格中的编辑器)。然后,编辑器将具有固定大小,并且不再随 window 缩放,这是我不想要的。

我使用了本教程中的 GEF 示例:

https://www.inf.ed.ac.uk/teaching/courses/ip/resources/GEF/GEF_Tutorial_2up.pdf

我修改了教程中的代码,尝试按以下方式在方法 createPartControl(Composite parent) 中设置布局...

@Override
public void createPartControl(Composite parent){

    FormToolkit toolkit = new FormToolkit(parent.getDisplay());
    Form form = toolkit.createForm(parent);
    Composite body = form.getBody();

    //FillLayout fillLayout = new FillLayout();
    //fillLayout.marginHeight = 15;
    //fillLayout.marginWidth = 15;

    GridLayout formLayout = new GridLayout();
    formLayout.marginHeight = 15;
    formLayout.marginWidth = 15;

    GridData formData = new GridData(SWT.FILL,SWT.FILL, true, true);

    body.setLayout(formLayout);
    body.setLayoutData(formData);
    body.setBackground(new Color(parent.getDisplay(),255,0,0));

    super.createPartControl(body);
}

...生成以下内容(我为表单正文着色以便更好地了解问题):

http://g10vz.de/files/graphicaleditorgridlayout.png

为什么编辑器不适合表格?还是我对 SWTs GridLayout 行为的预期有误?当使用 FillLayout 时,如注释掉的行所示,编辑器的行为符合预期。

问候

@greg-449 谢谢!你的建议让我想到了这个解决方案:

(...)
super.createPartControl(body);

getGraphicalControl().getParent().setLayoutData(formData);

你好:)