Начальная вертикальная позиция прокрутки JFace TableViewer
Я настроил JFace CheckboxTableViewer на странице мастера с одним отсортированным столбцом. В таблице достаточно записей, поэтому требуется вертикальная полоса прокрутки.
Когда я открываю Мастера, большая часть первого элемента в таблице уже была прокручена. Я вижу только нижнюю часть этого первого элемента таблицы. Второй элемент таблицы является первым, который полностью виден.
private void createCheckboxTable(Composite container) {
Composite tableContainer = new Composite(container, SWT.NONE);
TableColumnLayout tableColumnLayout = new TableColumnLayout();
tableContainer.setLayout(tableColumnLayout);
GridDataFactory.fillDefaults().grab(true, true).applyTo(tableContainer);
CheckboxTableViewer viewer = CheckboxTableViewer.newCheckList(tableContainer, SWT.BORDER | SWT.FULL_SELECTION
| SWT.MULTI);
ObservableListContentProvider listContentProvider = new ObservableListContentProvider();
viewer.setContentProvider(listContentProvider);
Table table = viewer.getTable();
table.setHeaderVisible(true);
table.setLinesVisible(true);// POS 1
TableViewerColumn tableViewerColumn = new TableViewerColumn(viewer, SWT.LEFT);
TableColumn column = tableViewerColumn.getColumn();
tableColumnLayout.setColumnData(column, new ColumnWeightData(1, ColumnWeightData.MINIMUM_WIDTH, false));
column.setText("Column");
tableViewerColumn.setLabelProvider(new DependencyInfoFileNameColumnLabelProvider());
TableSortConfigurator.newConfigurator(viewer, new Action() {
@Override
public void run() {
viewer.refresh();
}
}).add(column, new DependencyInfoNameComparator()).initialize(column, SWT.UP).configure(); //POS 2
}
В качестве теста и до сортировки я ввел следующую строку в POS 1 выше:
table.setSelection(0);
После повторного открытия мастера я увидел, что выбранный элемент является последним, который виден внизу таблицы. Таким образом, кажется, что это является причиной необычного начального вертикального положения в таблице.
Когда я удаляю code table.setSelection(0);
из POS 1 и добавить его в POS 2 происходит нечто странное. Первый элемент в таблице выбран, как я ожидал, но я все еще наблюдаю ту же начальную вертикальную прокрутку.
Другими словами, первый элемент таблицы выбран правильно, но виден только частично.
Кто-нибудь знает, что здесь происходит? В качестве альтернативы есть какой-то метод, который я пропустил, который возвращает представление в начало таблицы?
Спасибо