Странное выравнивание и расположение в просмотрщике таблиц с изображением - PullRequest
6 голосов
/ 16 июня 2011

Я использую TableViewer с двумя столбцами.Первый должен содержать текст, а второй - изображение в зависимости от состояния объекта.Поставщик меток - это пользовательский поставщик, который расширяет LabelProvider и реализует ITableLayoutProvider.

Если изображение не отображается, макет правильный, а текст в первом столбце выравнивается по левому краю.correct

Но когда отображается хотя бы одно изображение, текст в первом столбце выровнен где-то между правым и центральным - выглядит довольно некрасиво.* Схема довольно проста:

availableDevicesList = new TableViewer(this, SWT.SINGLE | SWT.BORDER
| SWT.FULL_SELECTION);
availableDevicesList.setContentProvider(new ArrayContentProvider());

Table table = availableDevicesList.getTable();
TableLayout tableLayout = new TableLayout();
table.setLayout(tableLayout);

table.setLinesVisible(true);

tableLayout.addColumnData(new ColumnWeightData(3));
new TableColumn(table, SWT.LEFT);
tableLayout.addColumnData(new ColumnWeightData(1));
new TableColumn(table, SWT.RIGHT);

Что вызывает эту проблему?

1 Ответ

2 голосов
/ 17 июня 2011

Это ошибка в Windows API см. Отчет об ошибке SWT . Он влияет только на первый столбец в таблице, поэтому официальным обходным решением является «пропустить» первый столбец и установить для него нулевой размер (см. Последний комментарий к сообщению об ошибке), но в Mac OS X столбец таблицы не может иметь нулевой размер, поэтому он будет виден первый столбец с размером 1 или что-то вроде этого ..

Да, ненавижу эту ошибку и в Win API ..

...