- Стиль NatTable основан на стилях и художниках, как описано в [1]. Для получения дополнительной информации о настройке NatTable и о начале работы с NatTable ознакомьтесь с нашим учебным пособием по началу работы [2]
- Чтобы создать комбинацию, подобную запрошенной, необходимо зарегистрировать комбинацию
ICellPainter
.
- Чтобы добавить отступы (не маржу) между границей ячейки и содержания, использования
PaddingDecorator
- Для добавления изображения в дополнение к тексту, используйте
CellPainterDecorator
, который имеет художник для текста как основы и ImagePainter
как декоратор.
- Оказание текста с различными шрифтами поддерживается только
RichTextCellPainter
расширения NatTable Nebula Extension. Для этого требуется Java 1.7.
- Стилизация CSS в NatTable используется для создания конфигурации стиля с помощью CSS. Несмотря на это, никакой дополнительной поддержки нет. Поддержка CSS содержится в расширении NatTable E4, которое требует Java 1.8. Объяснение можно найти в 1.4 Новой & Примечательна странице [3]
Таким образом, ответ а): Предоставление текста с двумя различными шрифтами не поддерживается NatTable Ядра, поэтому вам необходимо реализовать пользовательские ICellPainter
что будет поддерживать это.
Ответ б) заключается в создании сложного художника и зарегистрировать его, как это:
configRegistry.registerConfigAttribute(
CellConfigAttributes.CELL_PAINTER,
new BackgroundPainter(
new PaddingDecorator(
new CellPainterDecorator(
new PaddingDecorator(new RichTextCellPainter(), 10, 0, 0, 0),
CellEdgeEnum.LEFT,
new ImagePainter()),
2, 5, 2, 5)),
DisplayMode.NORMAL,
ColumnLabelAccumulator.COLUMN_LABEL_PREFIX + 0);
Если в приведенном выше примере означает, что есть столбец метки, применяемые ColumnLabelAccumulator
и художник должен быть настроен только для первый столбец. Также обратите внимание, что для стиля конкретной ячейки потребуется атрибут CellStyleAttributes.IMAGE
, который затем будет отображаться ImagePainter
. Если изображение должно быть исправлено, его необходимо установить как параметр конструктора.
Конечно, содержание должно содержать необходимую разметку HTML для рендеринга разных шрифтов. Что-то вроде:
<p><strong><span style="font-size:14px">This is a test</span></strong></p>
<p><span style="color:rgb(128, 128, 128)"><span style="font-size:12px">This is a test</span></span></p>
Ответ на c) не так уж и тривиален. Сначала сложная структура художника, показанная выше, не может быть выполнена с помощью CSS.Причина в том, что необходимо настроить несколько прокладок, которые не поддерживаются NatTable CSS. Во-вторых, RichTextPainter не известен расширению E4. Поэтому его необходимо зарегистрировать вручную на CellPainterFactory
, например.
CellPainterFactory.getInstance().registerContentPainter(
"richtext",
(painterProperties, underlying) -> {
return new RichTextCellPainter();
});
где обработка дополнительных атрибутов должна быть рассмотрена как-то.
В CSS это будет выглядеть как-то так:
painter: background padding decorator richtext;
decoration: left url('./nebula_logo_16.png') 5 true;
padding: 2 5;
[1] https://www.eclipse.org/nattable/documentation.php?page=styling
[2] http://www.vogella.com/tutorials/NatTable/article.html
[3] https://www.eclipse.org/nattable/nandn/nandn_140.php
Как центрировать текст в RichTextCellPainter по горизонтали и/или вертикально без использования прокладки? Заранее спасибо. – ADeveloper
Задайте соответствующие значения для свойств стиля выравнивания. Должен быть указан в связанной документации и может быть замечен в примерах. –