如何在MasterDetailsBlock中设置主节的宽度

时间:2012-02-16 13:17:23

标签: eclipse eclipse-rcp

我的主要部分包含一个TableViewer,我希望主要部分宽度固定,与细节部分相比更窄。

这就是我创建主要部分的方式。

protected void createMasterPart(final IManagedForm managedForm, final Composite parent) 
{

    toolkit = managedForm.getToolkit();

    Section section = toolkit.createSection(parent,
            ExpandableComposite.EXPANDED | ExpandableComposite.TITLE_BAR );
    section.setText("Sample Master Section");

    Composite composite = toolkit.createComposite(section, SWT.NONE);
    toolkit.paintBordersFor(composite);
    section.setClient(composite);
    composite.setLayout(new FormLayout());

请告诉我你的建议

1 个答案:

答案 0 :(得分:0)

主要部分和详细信息部分位于SashForm中。窗扇形式的要点是允许用户调整分配给子窗体的比率。您可以控制空间的初始分配,但不能修复分配。并非没有重写您正在使用的一堆主要详细信息表格。

要控制初始空间分配,请在代码中查找从MasterDetailsBlock类扩展的位置。在该类中,有一个名为“sashForm”的受保护成员变量。您将需要在其上调用setWeights()方法。以下是您需要的部分示例。

public class RootSection extends MasterDetailsBlock
{
    @Override
    public void createContent( IManagedForm managedForm ) 
    {
        super.createContent( managedForm );

        this.sashForm.setWeights( new int[] { 20, 80 } );
    }
}

权重没有可能的值范围。只有他们彼此的关系很重要。您可以使用百分比(如上例所示)或其他任何对您有意义的系统。请注意,您没有设置子表单的宽度(以像素为单位)。