Как встроить SWT TableViewer в TabFolder?

Я пытаюсь встроить JFace TableViewer в SWT TabFolder, но когда я это делаю, таблица не отображается вверх. Текущий (рабочий код) в моем GitToDo выглядит так (см. эти репозитории Git):

    final Display display = new Display();
    final Shell shell = new Shell(display);
    shell.setText("Git ToDo");
    FillLayout layout = new FillLayout();
    shell.setLayout(layout);

    final GitToDoTree tableViewer = new GitToDoTree(shell);

Где последний GitToDoTree расширяет TableViewer с помощью этого конструктора:

    super(parent, SWT.SINGLE | SWT.FULL_SELECTION | SWT.FILL);
    this.shell = parent;
    table = this.getTable();
    table.setHeaderVisible(true);
    table.setLinesVisible(true);

Итак, когда я создаю GitToDoTree, расширяющий TableViewer, из оболочки, он работает, но как только я пытаюсь создать его из TabFolder или (тоже пробовал) Composite, больше ничего не появляется.

Как я могу заставить свой TableViewer отображаться в TabFolder?


person Egon Willighagen    schedule 07.03.2010    source источник


Ответы (1)


Если ваш класс TableViewer не отображается, когда вы добавляете его в Composite, я бы сказал, что есть вероятность, что вы не устанавливаете макет для вложенного Composite.

final Display display = new Display();
final Shell shell = new Shell(display);
shell.setText("Git ToDo");
FillLayout layout = new FillLayout();
shell.setLayout(layout);

Composite composite = new Composite(shell, SWT.NONE);
composite.setLayout(new FillLayout()); // Possible missing layout?

final GitToDoTree tableViewer = new GitToDoTree(composite);

А что касается TabFolder, возможно, вы не устанавливаете клиентский элемент управления для TabItem.

TabFolder tabFolder = new TabFolder(shell, SWT.NONE);
TabItem item = new TabItem(tabFolder, SWT.NONE);
item.setText("Table");

GitToDoTree viewer = new GitToDoTree(tabFolder);
item.setControl(viewer.getTable()); // Possible setControl call?

TabItem item2= new TabItem(tabFolder, SWT.NONE);
item2.setText("Empty");
person Yanamon    schedule 07.03.2010
comment
См. коммит: github.com/egonw/gtd/commit/ - person Egon Willighagen; 07.04.2010