Как отобразить полное имя метки заголовка в диалоговом окне меню «Выбор столбцов» (выбор столбца), когда метки столбца заголовка содержат символ новой строки?

Я добавил конфигурацию меню заголовка в свою таблицу nat следующим образом, куда я также включил меню «Выбор столбцов»:

// Popup menu

this.natTable.addConfiguration(new HeaderMenuConfiguration(this.natTable) {

@Override

protected PopupMenuBuilder createColumnHeaderMenu(NatTable natTable) {

  return super.createColumnHeaderMenu(natTable) .withColumnChooserMenuItem(); }

});

// Column chooser

DisplayColumnChooserCommandHandler columnChooserCommandHandler = new DisplayColumnChooserCommandHandler( bodyLayer.getSelectionLayer(), bodyLayer.getColumnHideShowLayer(), columnHeaderLayer.getColumnHeaderLayer(), columnHeaderLayer.getColumnHeaderDataLayer(), columnHeaderLayer.getColumnGroupHeaderLayer(), columnGroupModel);

//Если имя заголовка состоит из нескольких слов, я использовал (\n) в качестве разделителя между словами в // имени столбца заголовка, чтобы можно было сэкономить место

// В этом случае при открытии диалогового окна контекстного меню Select Columns видно только первое слово столбца

Можно ли это исправить, заменив все символы \n и пробелы одним символом пробела() в In org.eclipse.nebula.widgets.nattable.columnChooser.gui.ColumnChooserDialog //code заменить лишние пробелы или символ новой строки в метке столбца одним пробелом, чтобы //имя заголовка было полностью видно в методе заполнения дерева treeItem.setText(columnEntry.getLabel()); В этом случае может быть предоставлено исправление для замены лишнего пробела одним пробелом в имени заголовка столбца или есть какая-либо другая альтернатива для его исправления? Изображение с именами заголовков, состоящими из нескольких слов Например: Дата выпуска, если имя заголовка отображается как Дата выпуска\n , в диалоговом окне контекстного меню «Выбрать столбцы» отображается только «Проблема»


person User134    schedule 20.03.2021    source источник


Ответы (1)


IIRC вы добавляете разрывы строк, чтобы сэкономить место. Они не нужны по какой-либо семантической причине. Я бы предложил настроить TextPainter, который отображает содержимое ячейки заголовка столбца для автоматического переноса, если недостаточно места. Это может выглядеть, например, так:

configRegistry.registerConfigAttribute(
    CellConfigAttributes.CELL_PAINTER,
    new BeveledBorderDecorator(new TextPainter(true, false, false, true)),
    DisplayMode.NORMAL,
    GridRegion.COLUMN_HEADER);
person Dirk Fauth    schedule 22.03.2021
comment
добавление TextPainter было первым выбором, но в этом случае полное имя заголовка не отображается. - person User134; 24.03.2021
comment
Например, в случае даты выпуска видна только проблема.... Вот почему я добавил новую строку, чтобы увидеть полное имя заголовка в доступном пространстве. Поэтому запрашиваю удаление лишнего пробела или нового символа строки из treeItem.setText(columnEntry.getLabel ()) в populateTree() из ColumnChooserDialog. Так что полное имя заголовка отображается в диалоговом окне «Выбрать столбцы» в меню заголовка даже при добавлении нового символа строки в метки заголовков столбцов - person User134; 24.03.2021
comment
Или есть какой-либо альтернативный способ сделать полное имя заголовка видимым в диалоговом окне контекстного меню заголовка «Выбрать столбцы», когда метки заголовка имеют новый символ строки? - person User134; 24.03.2021
comment
Если вы зарегистрируете TextPainter, как показано во фрагменте, вычисление высоты строки переноса слов будет включено. Таким образом, вы должны увидеть заголовок столбца целиком, а не три точки. И нет способа обрабатывать символы новой строки в этом диалоговом окне. Но вы, конечно, можете создать подкласс и создать свой собственный диалог. - person Dirk Fauth; 24.03.2021
comment
Большое спасибо, Дирк Фаут. Художник по тексту решил проблему здесь. Конфигурация художника по тексту была перезаписана. Следовательно, она не работала раньше. После правильного размещения конфигурации в этом случае Text Painter работал. Спасибо, это было полезно - person User134; 25.03.2021