Как встроить SWT TableViewer в табулятор?
-
25-09-2019 - |
Вопрос
Я пытаюсь встроить jface TableViewer в шагах Табулятор, но когда я это делаю, стол не появляется. Текущий (рабочий код) в моем Gittodo. код выглядит как (см. Это Git Repos):
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 не отображается, когда вы добавляете его в 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);
И как для табулятора, возможно, вы не устанавливаете клиентский контроль на 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");