2017-05-03 61 views
0

我想將GraphicalEditor放入Eclipse RCP項目的GridLayout中,以便在其下面添加其他文本字段。如何讓Eclipse GEF GraphicalEditor在GridLayout中正常工作?

問題是:當我這樣做時,儘管將其周圍的窗體GridData對象設置爲grabExcessiveHorizo​​ntal(Vertical)Space = true(應儘可能寬地擴展其網格單元格),但編輯器將無法再自動適應其窗口以及horizo​​ntal/verticalAlignment = SWT.FILL(應儘可能寬地填充其單元格中的編輯器)。編輯器將有一個固定的大小,並不會隨着它的窗口擴展,我不想要。

我用從本教程GEF例如:

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

我修改了代碼從教程試圖設置在方法的createPartControl(複合父級)的佈局以下列方式...

@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); 
} 

...產生下述(i有色形式的身體問題的更好的可見性):

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

爲什麼編輯不符合表格?或者我對SWT GridLayout的行爲期望有誤?當使用FillLayout時,如註釋掉的行所示,編輯器按照需要行事。

問候

+0

的的GridData必須使用網格佈局的** **孩子綜合的設置

(...) super.createPartControl(body); getGraphicalControl().getParent().setLayoutData(formData); 

問候 - 想必他們在'super.createPartControl創建(體)' –

回答

0

@格雷格-449謝謝!您的建議brougt我此解決方案::)