Содержимое ячейки gridTableViewer туманности должно переноситься

Я использую туманность gridTableViewer для своего приложения, в его ячейке какое-то время содержимое настолько длинное, поэтому я хочу показать как WRAP (многострочный). Я сделал изменения для него, но это не отражает:

Я добавил SWT.WRAP, но не работает, я тоже пытался обернуть текст в LabelProvider, но он тоже не работает, так как я могу это сделать?

Должен ли я добавить слушателя для этого.


person RTA    schedule 26.12.2013    source источник


Ответы (1)


Добавление SWT.WRAP в gridTableViewer не приведет к переносу текста в ячейках сетки. gridColumn.setWordWrap(true) приводит к переносу текста, введенного в ячейку, после того, как введенное значение применяется к редактору (вызывается setvalue). Для интерактивного переноса текста SWT.WRAP следует добавить в качестве стиля в редактор TextCellEditor или в виджет «Текст», размещенный в ячейках.

gridViewerColumn.getColumn.setWordWrap(true);
gridTableViewer.setEditingSupport(new EditingSupport(gridTableViewer) {
....
    @Override
    protected CellEditor getCellEditor(Object element) {
        TextCellEditor cellEditor = new TextCellEditor(gridTableViewer.getGrid(),
                                    SWT.WRAP)
        return cellEditor;
    }

Or

....
final GridItem item = grid.getItem(grid.getTopIndex());
for (int i = 0; i < grid.getColumnCount(); i++) {
    final Text text = new Text(grid, SWT.WRAP);
    Listener textListener = new Listener() {
        public void handleEvent(final Event e) {
            switch (e.type) {
                case SWT.FocusOut:
                item.setText(column, text.getText());
                ....
            }
        }
    }
}

Раньше я использовал SWT.WRAP в TextCellEditor, и он работает.

person Monikka    schedule 15.02.2014