我的主要部分包含一个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());
请告诉我你的建议
答案 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 } );
}
}
权重没有可能的值范围。只有他们彼此的关系很重要。您可以使用百分比(如上例所示)或其他任何对您有意义的系统。请注意,您没有设置子表单的宽度(以像素为单位)。