У меня есть заголовки столбцов, которые используют VerticalTextPainter
.
Если для setCalculateByTextHeight
и setCalculateByTextLength
задано значение true, это приводит к изменению размеров столбцов, чтобы они правильно помещали весь текст внутри ячеек.
Иногда заголовки содержат много текста, поэтому я бы хотел, чтобы они имели максимальную высоту.
Если я перестану использовать setCalculateByTextHeight
и setCalculateByTextLength
, то размеры ячеек не изменятся вообще, поэтому они просто показывают ...
.
Как я мог сделать это?
Обновление
@Override
protected void setNewMinLength(ILayerCell cell, int contentHeight) {
final ILayer layer = cell.getLayer();
final int cellLength = cell.getBounds().height;
if (contentHeight < MAXIMUM_HEIGHT && cellLength < contentHeight) {
layer.doCommand(new RowResizeCommand(layer, cell.getRowPosition(), contentHeight));
} else {
layer.doCommand(new RowResizeCommand(layer, cell.getRowPosition(), MAXIMUM_HEIGHT));
}
}
Переопределить paintControl в NatTable
@Override
public void paintControl(final PaintEvent event) {
super.paintControl(event);
/**
* After first time rendering we stop column/row headers calculating their
* height/lengths. This allows the user to resize the column/row headers after
* the NatTable has been rendered.
*/
if (firstRender) {
columnHeaderPainter.setCalculateByTextHeight(false);
columnHeaderPainter.setCalculateByTextLength(false);
rowHeaderPainter.setCalculateByTextHeight(false);
rowHeaderPainter.setCalculateByTextLength(false);
firstRender = false;
}
}