Eclipse RCP - автоматически сжимает текст в ячейке TableViwer - PullRequest
0 голосов
/ 29 июля 2011

Я занимаюсь разработкой своего первого приложения Eclipse RCP и хотел бы узнать, как заставить компонент JFace TableViewer автоматически сжимать текст в ячейке таблицы.Прямо сейчас, если я пропущу через модель свойство, содержащее многострочный текст, текст будет отображаться как есть, что приведет к разной высоте каждой строки в таблице:

enter image description here

То, что я хочу, это просто одна строка, оптимально, если эта строка (если она слишком длинна, чтобы уместиться в ячейку) будет преобразована во что-то вроде «Я очень очень длинная строка ...» и если размер окна изменитсястрока становится «Я очень очень длинная линия, живущая в ...», где полное свойство, например.«Я очень очень длинная строка, живущая в ячейке таблицы \ r \ n и некотором другом тексте».

Ответы [ 2 ]

2 голосов
/ 29 июля 2011

Я не уверен на 100%, что я точно понимаю, что вы хотите.

Если вы хотите удалить новые строки из текста ячейки таблицы, вы должны сделать это стандартными методами (String.replace()) перед настройкой текста ячейки.

Если вы хотите изменить ширину столбца, чтобы он соответствовал всему тексту, проверьте TableColumn.pack () .

0 голосов
/ 18 августа 2011

Наконец я делаю, как предложил Дэвид:

col.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public void update(ViewerCell cell) {
            String desc = ((Product) cell.getElement()).getDescription();
            desc = desc.replaceAll("\\r\\n|\\r|\\n", " ");
            cell.setText(desc);
        }
    });
...