Как установить ширину раздела мастера в MasterDetailsBlock - PullRequest
0 голосов
/ 16 февраля 2012

Моя мастер-секция состоит из 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 голосов
/ 19 февраля 2012

Основной и подробный разделы находятся в SashForm. Смысл формы sash состоит в том, чтобы позволить пользователю регулировать отношения, назначенные дочерним формам. Вы можете контролировать первоначальное распределение пространства, но вы не можете сделать распределение фиксированным. Не обошлось без переписывания используемой вами инфраструктуры формы основных деталей.

Чтобы контролировать начальное распределение пространства, найдите в своем коде то, что вы расширяете из класса MasterDetailsBlock. В этом классе есть защищенная переменная-член под названием "sashForm". Вы захотите вызвать метод setWeights () для него. Вот частичный пример того, что вам нужно.

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

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

Нет диапазона возможных значений для весов. Имеет значение только их отношение друг к другу. Вы можете использовать проценты (как в приведенном выше примере) или любую другую систему, которая имеет для вас смысл. Обратите внимание, что вы не устанавливаете ширину дочерних форм в пикселях.

...