use of org.eclipse.nebula.widgets.nattable.painter.cell.ICellPainter in project nebula.widgets.nattable by eclipse.
the class ColumnHeaderConfiguration method addSelectedModeStyling.
private void addSelectedModeStyling(IConfigRegistry configRegistry) {
Image selectedBgImage = tableStyle.columnHeaderSelectedBgImage;
ICellPainter sortHeaderPainter;
if (ObjectUtils.isNotNull(selectedBgImage)) {
TextPainter txtPainter = new TextPainter(false, false);
ICellPainter selectedCellPainter = new BackgroundImagePainter(txtPainter, selectedBgImage, GUIHelper.getColor(192, 192, 192));
sortHeaderPainter = new SortableHeaderTextPainter(selectedCellPainter, false, false);
} else {
sortHeaderPainter = new SortableHeaderTextPainter(new BeveledBorderDecorator(new TextPainter()), false, false);
}
configRegistry.registerConfigAttribute(CellConfigAttributes.CELL_PAINTER, sortHeaderPainter, DisplayMode.SELECT, GridRegion.COLUMN_HEADER);
}
use of org.eclipse.nebula.widgets.nattable.painter.cell.ICellPainter in project nebula.widgets.nattable by eclipse.
the class DefaultGroupByThemeExtension method configureGroupByObjectStyle.
/**
* Registering the style configuration for the GroupBy objects.
*
* @param configRegistry
* The IConfigRegistry that is used by the NatTable instance to
* which the style configuration should be applied to.
*/
protected void configureGroupByObjectStyle(IConfigRegistry configRegistry) {
IStyle groupByObjectStyle = getGroupByObjectStyle();
if (!ThemeConfiguration.isStyleEmpty(groupByObjectStyle)) {
configRegistry.registerConfigAttribute(CellConfigAttributes.CELL_STYLE, groupByObjectStyle, DisplayMode.NORMAL, GroupByDataLayer.GROUP_BY_OBJECT);
}
ICellPainter cellPainter = getGroupByObjectCellPainter();
if (cellPainter != null) {
configRegistry.registerConfigAttribute(CellConfigAttributes.CELL_PAINTER, cellPainter, DisplayMode.NORMAL, GroupByDataLayer.GROUP_BY_OBJECT);
}
}
use of org.eclipse.nebula.widgets.nattable.painter.cell.ICellPainter in project nebula.widgets.nattable by eclipse.
the class PoiExcelExporter method exportCell.
@Override
public void exportCell(OutputStream outputStream, Object exportDisplayValue, ILayerCell cell, IConfigRegistry configRegistry) throws IOException {
int columnPosition = cell.getColumnPosition();
int rowPosition = cell.getRowPosition();
if (columnPosition != cell.getOriginColumnPosition() || rowPosition != cell.getOriginRowPosition()) {
return;
}
if (this.applyColumnWidths && cell.getColumnSpan() == 1) {
this.xlSheet.setColumnWidth(columnPosition, getPoiColumnWidth(cell.getBounds().width) + getPoiColumnWidth(5));
}
if (this.applyRowHeights && cell.getRowSpan() == 1) {
this.xlRow.setHeight(getPoiRowHeight(cell.getBounds().height));
}
// check if cell was already created because of spanning
Cell xlCell = this.xlRow.getCell(columnPosition);
if (xlCell == null) {
xlCell = this.xlRow.createCell(columnPosition);
}
CellStyleProxy cellStyle = new CellStyleProxy(configRegistry, DisplayMode.NORMAL, cell.getConfigLabels().getLabels());
Color fg = cellStyle.getAttributeValue(CellStyleAttributes.FOREGROUND_COLOR);
Color bg = cellStyle.getAttributeValue(CellStyleAttributes.BACKGROUND_COLOR);
org.eclipse.swt.graphics.Font font = cellStyle.getAttributeValue(CellStyleAttributes.FONT);
FontData fontData = font.getFontData()[0];
String dataFormat = null;
if (exportDisplayValue instanceof Calendar || exportDisplayValue instanceof Date) {
dataFormat = getDataFormatString(cell, configRegistry);
}
int hAlign = HorizontalAlignmentEnum.getSWTStyle(cellStyle);
int vAlign = VerticalAlignmentEnum.getSWTStyle(cellStyle);
ICellPainter cellPainter = configRegistry.getConfigAttribute(CellConfigAttributes.CELL_PAINTER, DisplayMode.NORMAL, cell.getConfigLabels().getLabels());
boolean vertical = this.applyVerticalTextConfiguration ? isVertical(cellPainter) : false;
boolean wrap = this.applyTextWrapping ? wrapText(cellPainter) : false;
CellStyle xlCellStyle = getExcelCellStyle(fg, bg, fontData, dataFormat, hAlign, vAlign, vertical, wrap, this.applyCellBorders);
xlCell.setCellStyle(xlCellStyle);
int columnSpan = cell.getColumnSpan();
int rowSpan = cell.getRowSpan();
if (columnSpan > 1 || rowSpan > 1) {
int lastRow = rowPosition + rowSpan - 1;
int lastColumn = columnPosition + columnSpan - 1;
this.xlSheet.addMergedRegion(new CellRangeAddress(rowPosition, lastRow, columnPosition, lastColumn));
// apply style to all cells that get merged
Row tempRow = null;
Cell tempCell = null;
for (int i = rowPosition; i <= lastRow; i++) {
tempRow = this.xlSheet.getRow(i);
if (tempRow == null) {
tempRow = this.xlSheet.createRow(i);
}
for (int j = columnPosition; j <= lastColumn; j++) {
tempCell = tempRow.getCell(j);
if (tempCell == null) {
tempCell = tempRow.createCell(j);
}
tempCell.setCellStyle(xlCellStyle);
}
}
}
if (exportDisplayValue == null)
// $NON-NLS-1$
exportDisplayValue = "";
if (exportDisplayValue instanceof Boolean) {
xlCell.setCellValue((Boolean) exportDisplayValue);
} else if (exportDisplayValue instanceof Calendar) {
xlCell.setCellValue((Calendar) exportDisplayValue);
} else if (exportDisplayValue instanceof Date) {
xlCell.setCellValue((Date) exportDisplayValue);
} else if (exportDisplayValue instanceof Number) {
xlCell.setCellValue(((Number) exportDisplayValue).doubleValue());
} else if (exportDisplayValue instanceof InputStream) {
exportImage((InputStream) exportDisplayValue, xlCell);
} else if (this.formulaParser != null) {
// formula export is enabled, so we perform checks on the cell
// values
String cellValue = exportDisplayValue.toString();
if (this.formulaParser.isFunction(cellValue)) {
String functionString = this.formulaParser.getFunctionOnly(cellValue);
// POI expects the formula parameters to be separated by ,
// instead of ;
// also localized decimal separators need to be modified for
// export
functionString = functionString.replace(',', '.');
functionString = functionString.replace(';', ',');
xlCell.setCellFormula(functionString);
} else if (this.formulaParser.isNumber(cellValue)) {
try {
xlCell.setCellValue(this.nf.parse(cellValue).doubleValue());
} catch (ParseException e) {
// $NON-NLS-1$
throw new IOException("Error on parsing number value: " + cellValue, e);
}
} else {
xlCell.setCellValue(exportDisplayValue.toString());
}
} else {
xlCell.setCellValue(exportDisplayValue.toString());
}
}
use of org.eclipse.nebula.widgets.nattable.painter.cell.ICellPainter in project nebula.widgets.nattable by eclipse.
the class NatTableCSSHandler method retrieveCSSProperty.
@Override
public String retrieveCSSProperty(Object control, String property, String pseudo, CSSEngine engine) throws Exception {
NatTable natTable = null;
String label = null;
String displayMode = NatTableCSSHelper.getDisplayMode(pseudo);
if (control instanceof NatTable) {
natTable = (NatTable) control;
} else if (control instanceof NatTableWrapper) {
natTable = ((NatTableWrapper) control).getNatTable();
label = ((NatTableWrapper) control).getLabel();
}
if (natTable != null) {
// check property
if (NatTableCSSConstants.BACKGROUND_COLOR.equalsIgnoreCase(property)) {
return CSSPropertyBackgroundSWTHandler.INSTANCE.retrieveCSSPropertyBackgroundColor(control, pseudo, engine);
} else if (NatTableCSSConstants.BACKGROUND_IMAGE.equalsIgnoreCase(property)) {
return CSSPropertyBackgroundSWTHandler.INSTANCE.retrieveCSSPropertyBackgroundImage(control, pseudo, engine);
} else if (NatTableCSSConstants.CELL_BACKGROUND_COLOR.equalsIgnoreCase(property)) {
ICSSValueConverter cssValueConverter = engine.getCSSValueConverter(String.class);
return cssValueConverter.convert(NatTableCSSHelper.getNatTableStyle(natTable, CellStyleAttributes.BACKGROUND_COLOR, displayMode, label), engine, null);
} else if (NatTableCSSConstants.CELL_BACKGROUND_IMAGE.equalsIgnoreCase(property)) {
// TODO : manage path of Image.
return "none";
} else if (NatTableCSSConstants.FOREGROUND_COLOR.equalsIgnoreCase(property)) {
ICSSValueConverter cssValueConverter = engine.getCSSValueConverter(String.class);
return cssValueConverter.convert(NatTableCSSHelper.getNatTableStyle(natTable, CellStyleAttributes.FOREGROUND_COLOR, displayMode, label), engine, null);
} else if (NatTableCSSConstants.HORIZONTAL_ALIGNMENT.equalsIgnoreCase(property)) {
HorizontalAlignmentEnum align = NatTableCSSHelper.getNatTableStyle(natTable, CellStyleAttributes.HORIZONTAL_ALIGNMENT, displayMode, label);
switch(align) {
case CENTER:
return "center";
case LEFT:
return "left";
case RIGHT:
return "right";
}
} else if (NatTableCSSConstants.VERTICAL_ALIGNMENT.equalsIgnoreCase(property)) {
VerticalAlignmentEnum align = NatTableCSSHelper.getNatTableStyle(natTable, CellStyleAttributes.VERTICAL_ALIGNMENT, displayMode, label);
switch(align) {
case TOP:
return "top";
case MIDDLE:
return "middle";
case BOTTOM:
return "bottom";
}
} else if (NatTableCSSConstants.FONT.equalsIgnoreCase(property)) {
Font font = NatTableCSSHelper.getNatTableStyle(natTable, CellStyleAttributes.FONT, displayMode, label);
return CSSSWTFontHelper.getFontComposite(font);
} else if (NatTableCSSConstants.FONT_FAMILY.equalsIgnoreCase(property)) {
Font font = NatTableCSSHelper.getNatTableStyle(natTable, CellStyleAttributes.FONT, displayMode, label);
return CSSSWTFontHelper.getFontFamily(font);
} else if (NatTableCSSConstants.FONT_SIZE.equalsIgnoreCase(property)) {
Font font = NatTableCSSHelper.getNatTableStyle(natTable, CellStyleAttributes.FONT, displayMode, label);
return CSSSWTFontHelper.getFontSize(font);
} else if (NatTableCSSConstants.FONT_STYLE.equalsIgnoreCase(property)) {
Font font = NatTableCSSHelper.getNatTableStyle(natTable, CellStyleAttributes.FONT, displayMode, label);
return CSSSWTFontHelper.getFontStyle(font);
} else if (NatTableCSSConstants.FONT_WEIGHT.equalsIgnoreCase(property)) {
Font font = NatTableCSSHelper.getNatTableStyle(natTable, CellStyleAttributes.FONT, displayMode, label);
return CSSSWTFontHelper.getFontWeight(font);
} else if (NatTableCSSConstants.IMAGE.equalsIgnoreCase(property)) {
// TODO : manage path of Image.
return "none";
} else if (NatTableCSSConstants.BORDER.equalsIgnoreCase(property)) {
BorderStyle border = NatTableCSSHelper.getNatTableStyle(natTable, CellStyleAttributes.BORDER_STYLE, displayMode, label);
ICSSValueConverter cssValueConverter = engine.getCSSValueConverter(String.class);
return border.getThickness() + " " + border.getLineStyle().toString().toLowerCase() + " " + border.getBorderMode().toString().toLowerCase() + " " + cssValueConverter.convert(border.getColor(), engine, null);
} else if (NatTableCSSConstants.BORDER_COLOR.equalsIgnoreCase(property)) {
BorderStyle border = NatTableCSSHelper.getNatTableStyle(natTable, CellStyleAttributes.BORDER_STYLE, displayMode, label);
ICSSValueConverter cssValueConverter = engine.getCSSValueConverter(String.class);
return cssValueConverter.convert(border.getColor(), engine, null);
} else if (NatTableCSSConstants.BORDER_STYLE.equalsIgnoreCase(property)) {
BorderStyle border = NatTableCSSHelper.getNatTableStyle(natTable, CellStyleAttributes.BORDER_STYLE, displayMode, label);
return border.getLineStyle().toString().toLowerCase();
} else if (NatTableCSSConstants.BORDER_WIDTH.equalsIgnoreCase(property)) {
BorderStyle border = NatTableCSSHelper.getNatTableStyle(natTable, CellStyleAttributes.BORDER_STYLE, displayMode, label);
return "" + border.getThickness();
} else if (NatTableCSSConstants.BORDER_MODE.equalsIgnoreCase(property)) {
BorderStyle border = NatTableCSSHelper.getNatTableStyle(natTable, CellStyleAttributes.BORDER_STYLE, displayMode, label);
return "" + border.getBorderMode();
} else if (NatTableCSSConstants.PASSWORD_ECHO_CHAR.equalsIgnoreCase(property)) {
return "" + NatTableCSSHelper.getNatTableStyle(natTable, CellStyleAttributes.PASSWORD_ECHO_CHAR, displayMode, label);
} else if (NatTableCSSConstants.TEXT_DECORATION.equalsIgnoreCase(property)) {
TextDecorationEnum decoration = NatTableCSSHelper.getNatTableStyle(natTable, CellStyleAttributes.TEXT_DECORATION, displayMode, label);
switch(decoration) {
case NONE:
return "none";
case STRIKETHROUGH:
return "line-through";
case UNDERLINE:
return "underline";
case UNDERLINE_STRIKETHROUGH:
return "underline line-through";
}
} else if (NatTableCSSConstants.FREEZE_SEPARATOR_COLOR.equalsIgnoreCase(property)) {
ICSSValueConverter cssValueConverter = engine.getCSSValueConverter(String.class);
return cssValueConverter.convert(natTable.getConfigRegistry().getConfigAttribute(IFreezeConfigAttributes.SEPARATOR_COLOR, displayMode, label), engine, null);
} else if (NatTableCSSConstants.GRID_LINE_COLOR.equalsIgnoreCase(property)) {
ICSSValueConverter cssValueConverter = engine.getCSSValueConverter(String.class);
return cssValueConverter.convert(natTable.getConfigRegistry().getConfigAttribute(CellConfigAttributes.GRID_LINE_COLOR, displayMode, label), engine, null);
} else if (NatTableCSSConstants.GRID_LINE_WIDTH.equalsIgnoreCase(property)) {
Integer width = natTable.getConfigRegistry().getConfigAttribute(CellConfigAttributes.GRID_LINE_WIDTH, displayMode, label);
if (width == null) {
return "0";
} else {
return width.toString();
}
} else if (NatTableCSSConstants.RENDER_GRID_LINES.equalsIgnoreCase(property)) {
Boolean render = natTable.getConfigRegistry().getConfigAttribute(CellConfigAttributes.RENDER_GRID_LINES, displayMode, label);
if (render == null) {
return Boolean.TRUE.toString();
} else {
return render.toString();
}
} else if (NatTableCSSConstants.CONVERSION_ERROR_FONT.equalsIgnoreCase(property)) {
IStyle style = natTable.getConfigRegistry().getConfigAttribute(EditConfigAttributes.CONVERSION_ERROR_STYLE, displayMode, label);
Font font = style.getAttributeValue(CellStyleAttributes.FONT);
return CSSSWTFontHelper.getFontComposite(font);
} else if (NatTableCSSConstants.CONVERSION_ERROR_FONT_FAMILY.equalsIgnoreCase(property)) {
IStyle style = natTable.getConfigRegistry().getConfigAttribute(EditConfigAttributes.CONVERSION_ERROR_STYLE, displayMode, label);
Font font = style.getAttributeValue(CellStyleAttributes.FONT);
return CSSSWTFontHelper.getFontFamily(font);
} else if (NatTableCSSConstants.CONVERSION_ERROR_FONT_SIZE.equalsIgnoreCase(property)) {
IStyle style = natTable.getConfigRegistry().getConfigAttribute(EditConfigAttributes.CONVERSION_ERROR_STYLE, displayMode, label);
Font font = style.getAttributeValue(CellStyleAttributes.FONT);
return CSSSWTFontHelper.getFontSize(font);
} else if (NatTableCSSConstants.CONVERSION_ERROR_FONT_STYLE.equalsIgnoreCase(property)) {
IStyle style = natTable.getConfigRegistry().getConfigAttribute(EditConfigAttributes.CONVERSION_ERROR_STYLE, displayMode, label);
Font font = style.getAttributeValue(CellStyleAttributes.FONT);
return CSSSWTFontHelper.getFontStyle(font);
} else if (NatTableCSSConstants.CONVERSION_ERROR_FONT_WEIGHT.equalsIgnoreCase(property)) {
IStyle style = natTable.getConfigRegistry().getConfigAttribute(EditConfigAttributes.CONVERSION_ERROR_STYLE, displayMode, label);
Font font = style.getAttributeValue(CellStyleAttributes.FONT);
return CSSSWTFontHelper.getFontWeight(font);
} else if (NatTableCSSConstants.CONVERSION_ERROR_BACKGROUND_COLOR.equalsIgnoreCase(property)) {
ICSSValueConverter cssValueConverter = engine.getCSSValueConverter(String.class);
IStyle style = natTable.getConfigRegistry().getConfigAttribute(EditConfigAttributes.CONVERSION_ERROR_STYLE, displayMode, label);
return cssValueConverter.convert(style.getAttributeValue(CellStyleAttributes.BACKGROUND_COLOR), engine, null);
} else if (NatTableCSSConstants.CONVERSION_ERROR_FOREGROUND_COLOR.equalsIgnoreCase(property)) {
ICSSValueConverter cssValueConverter = engine.getCSSValueConverter(String.class);
IStyle style = natTable.getConfigRegistry().getConfigAttribute(EditConfigAttributes.CONVERSION_ERROR_STYLE, displayMode, label);
return cssValueConverter.convert(style.getAttributeValue(CellStyleAttributes.FOREGROUND_COLOR), engine, null);
} else if (NatTableCSSConstants.VALIDATION_ERROR_FONT.equalsIgnoreCase(property)) {
IStyle style = natTable.getConfigRegistry().getConfigAttribute(EditConfigAttributes.VALIDATION_ERROR_STYLE, displayMode, label);
Font font = style.getAttributeValue(CellStyleAttributes.FONT);
return CSSSWTFontHelper.getFontComposite(font);
} else if (NatTableCSSConstants.VALIDATION_ERROR_FONT_FAMILY.equalsIgnoreCase(property)) {
IStyle style = natTable.getConfigRegistry().getConfigAttribute(EditConfigAttributes.VALIDATION_ERROR_STYLE, displayMode, label);
Font font = style.getAttributeValue(CellStyleAttributes.FONT);
return CSSSWTFontHelper.getFontFamily(font);
} else if (NatTableCSSConstants.VALIDATION_ERROR_FONT_SIZE.equalsIgnoreCase(property)) {
IStyle style = natTable.getConfigRegistry().getConfigAttribute(EditConfigAttributes.VALIDATION_ERROR_STYLE, displayMode, label);
Font font = style.getAttributeValue(CellStyleAttributes.FONT);
return CSSSWTFontHelper.getFontSize(font);
} else if (NatTableCSSConstants.VALIDATION_ERROR_FONT_STYLE.equalsIgnoreCase(property)) {
IStyle style = natTable.getConfigRegistry().getConfigAttribute(EditConfigAttributes.VALIDATION_ERROR_STYLE, displayMode, label);
Font font = style.getAttributeValue(CellStyleAttributes.FONT);
return CSSSWTFontHelper.getFontStyle(font);
} else if (NatTableCSSConstants.VALIDATION_ERROR_FONT_WEIGHT.equalsIgnoreCase(property)) {
IStyle style = natTable.getConfigRegistry().getConfigAttribute(EditConfigAttributes.VALIDATION_ERROR_STYLE, displayMode, label);
Font font = style.getAttributeValue(CellStyleAttributes.FONT);
return CSSSWTFontHelper.getFontWeight(font);
} else if (NatTableCSSConstants.VALIDATION_ERROR_BACKGROUND_COLOR.equalsIgnoreCase(property)) {
ICSSValueConverter cssValueConverter = engine.getCSSValueConverter(String.class);
IStyle style = natTable.getConfigRegistry().getConfigAttribute(EditConfigAttributes.VALIDATION_ERROR_STYLE, displayMode, label);
return cssValueConverter.convert(style.getAttributeValue(CellStyleAttributes.BACKGROUND_COLOR), engine, null);
} else if (NatTableCSSConstants.VALIDATION_ERROR_FOREGROUND_COLOR.equalsIgnoreCase(property)) {
ICSSValueConverter cssValueConverter = engine.getCSSValueConverter(String.class);
IStyle style = natTable.getConfigRegistry().getConfigAttribute(EditConfigAttributes.VALIDATION_ERROR_STYLE, displayMode, label);
return cssValueConverter.convert(style.getAttributeValue(CellStyleAttributes.FOREGROUND_COLOR), engine, null);
} else if (NatTableCSSConstants.WORD_WRAP.equalsIgnoreCase(property)) {
Boolean wrap = Boolean.FALSE;
ICellPainter painter = natTable.getConfigRegistry().getConfigAttribute(CellConfigAttributes.CELL_PAINTER, displayMode, label);
if (painter != null) {
while (painter instanceof CellPainterWrapper) {
painter = ((CellPainterWrapper) painter).getWrappedPainter();
}
}
if (painter instanceof AbstractTextPainter) {
wrap = ((AbstractTextPainter) painter).isWordWrapping();
}
return wrap.toString();
} else if (NatTableCSSConstants.TEXT_WRAP.equalsIgnoreCase(property)) {
Boolean wrap = Boolean.FALSE;
ICellPainter painter = natTable.getConfigRegistry().getConfigAttribute(CellConfigAttributes.CELL_PAINTER, displayMode, label);
if (painter != null) {
while (painter instanceof CellPainterWrapper) {
painter = ((CellPainterWrapper) painter).getWrappedPainter();
}
}
if (painter instanceof AbstractTextPainter) {
wrap = ((AbstractTextPainter) painter).isWrapText();
}
return wrap.toString();
} else if (NatTableCSSConstants.TEXT_TRIM.equalsIgnoreCase(property)) {
Boolean trim = Boolean.FALSE;
ICellPainter painter = natTable.getConfigRegistry().getConfigAttribute(CellConfigAttributes.CELL_PAINTER, displayMode, label);
if (painter != null) {
while (painter instanceof CellPainterWrapper) {
painter = ((CellPainterWrapper) painter).getWrappedPainter();
}
}
if (painter instanceof AbstractTextPainter) {
trim = ((AbstractTextPainter) painter).isTrimText();
}
return trim.toString();
} else if (NatTableCSSConstants.LINE_SPACING.equalsIgnoreCase(property)) {
int spacing = 0;
ICellPainter painter = natTable.getConfigRegistry().getConfigAttribute(CellConfigAttributes.CELL_PAINTER, displayMode, label);
if (painter != null) {
while (painter instanceof CellPainterWrapper) {
painter = ((CellPainterWrapper) painter).getWrappedPainter();
}
}
if (painter instanceof AbstractTextPainter) {
spacing = ((AbstractTextPainter) painter).getLineSpacing();
}
return "" + spacing;
} else if (NatTableCSSConstants.TEXT_DIRECTION.equalsIgnoreCase(property)) {
String direction = "horizontal";
ICellPainter painter = natTable.getConfigRegistry().getConfigAttribute(CellConfigAttributes.CELL_PAINTER, displayMode, label);
if (painter != null) {
while (painter instanceof CellPainterWrapper) {
painter = ((CellPainterWrapper) painter).getWrappedPainter();
}
}
if (painter instanceof VerticalTextPainter) {
direction = "vertical";
}
return direction;
} else if (NatTableCSSConstants.COLUMN_WIDTH.equalsIgnoreCase(property)) {
// inherit is not supported here
return "default";
} else if (NatTableCSSConstants.ROW_HEIGHT.equalsIgnoreCase(property)) {
// inherit is not supported here
return "default";
} else if (NatTableCSSConstants.PADDING.equalsIgnoreCase(property)) {
ICellPainter painter = natTable.getConfigRegistry().getConfigAttribute(CellConfigAttributes.CELL_PAINTER, displayMode, label);
if (painter != null) {
while (painter instanceof CellPainterWrapper) {
painter = ((CellPainterWrapper) painter).getWrappedPainter();
if (painter instanceof PaddingDecorator) {
PaddingDecorator decorator = (PaddingDecorator) painter;
return new StringBuilder().append(decorator.getTopPadding()).append(" ").append(decorator.getRightPadding()).append(" ").append(decorator.getBottomPadding()).append(" ").append(decorator.getLeftPadding()).toString();
}
}
}
} else if (NatTableCSSConstants.PADDING_TOP.equalsIgnoreCase(property)) {
ICellPainter painter = natTable.getConfigRegistry().getConfigAttribute(CellConfigAttributes.CELL_PAINTER, displayMode, label);
if (painter != null) {
while (painter instanceof CellPainterWrapper) {
painter = ((CellPainterWrapper) painter).getWrappedPainter();
if (painter instanceof PaddingDecorator) {
return "" + ((PaddingDecorator) painter).getTopPadding();
}
}
}
return "0";
} else if (NatTableCSSConstants.PADDING_RIGHT.equalsIgnoreCase(property)) {
ICellPainter painter = natTable.getConfigRegistry().getConfigAttribute(CellConfigAttributes.CELL_PAINTER, displayMode, label);
if (painter != null) {
while (painter instanceof CellPainterWrapper) {
painter = ((CellPainterWrapper) painter).getWrappedPainter();
if (painter instanceof PaddingDecorator) {
return "" + ((PaddingDecorator) painter).getRightPadding();
}
}
}
return "0";
} else if (NatTableCSSConstants.PADDING_BOTTOM.equalsIgnoreCase(property)) {
ICellPainter painter = natTable.getConfigRegistry().getConfigAttribute(CellConfigAttributes.CELL_PAINTER, displayMode, label);
if (painter != null) {
while (painter instanceof CellPainterWrapper) {
painter = ((CellPainterWrapper) painter).getWrappedPainter();
if (painter instanceof PaddingDecorator) {
return "" + ((PaddingDecorator) painter).getBottomPadding();
}
}
}
return "0";
} else if (NatTableCSSConstants.PADDING_LEFT.equalsIgnoreCase(property)) {
ICellPainter painter = natTable.getConfigRegistry().getConfigAttribute(CellConfigAttributes.CELL_PAINTER, displayMode, label);
if (painter != null) {
while (painter instanceof CellPainterWrapper) {
painter = ((CellPainterWrapper) painter).getWrappedPainter();
if (painter instanceof PaddingDecorator) {
return "" + ((PaddingDecorator) painter).getLeftPadding();
}
}
}
return "0";
} else if (NatTableCSSConstants.TABLE_BORDER_COLOR.equalsIgnoreCase(property)) {
for (Iterator<IOverlayPainter> it = natTable.getOverlayPainters().iterator(); it.hasNext(); ) {
IOverlayPainter painter = it.next();
if (painter instanceof NatTableBorderOverlayPainter) {
return engine.getCSSValueConverter(String.class).convert(((NatTableBorderOverlayPainter) painter).getBorderColor(), engine, null);
}
}
} else if (NatTableCSSConstants.FILL_HANDLE_BORDER.equalsIgnoreCase(property)) {
BorderStyle border = NatTableCSSHelper.getNatTableStyle(natTable, FillHandleConfigAttributes.FILL_HANDLE_BORDER_STYLE, displayMode, label);
ICSSValueConverter cssValueConverter = engine.getCSSValueConverter(String.class);
return border.getThickness() + " " + border.getLineStyle().toString().toLowerCase() + " " + border.getBorderMode().toString().toLowerCase() + " " + cssValueConverter.convert(border.getColor(), engine, null);
} else if (NatTableCSSConstants.FILL_HANDLE_COLOR.equalsIgnoreCase(property)) {
ICSSValueConverter cssValueConverter = engine.getCSSValueConverter(String.class);
return cssValueConverter.convert(natTable.getConfigRegistry().getConfigAttribute(FillHandleConfigAttributes.FILL_HANDLE_COLOR, displayMode, label), engine, null);
} else if (NatTableCSSConstants.FILL_REGION_BORDER.equalsIgnoreCase(property)) {
BorderStyle border = NatTableCSSHelper.getNatTableStyle(natTable, FillHandleConfigAttributes.FILL_HANDLE_REGION_BORDER_STYLE, displayMode, label);
ICSSValueConverter cssValueConverter = engine.getCSSValueConverter(String.class);
return border.getThickness() + " " + border.getLineStyle().toString().toLowerCase() + " " + border.getBorderMode().toString().toLowerCase() + " " + cssValueConverter.convert(border.getColor(), engine, null);
} else if (NatTableCSSConstants.INVERT_ICONS.equalsIgnoreCase(property)) {
// not able to determine it easily here
return Boolean.FALSE.toString();
} else if (NatTableCSSConstants.DECORATION.equalsIgnoreCase(property)) {
// TODO : manage path of Image.
return "none";
} else if (NatTableCSSConstants.PERCENTAGE_DECORATOR_COLORS.equalsIgnoreCase(property)) {
IStyle style = natTable.getConfigRegistry().getConfigAttribute(CellConfigAttributes.CELL_STYLE, displayMode, label);
Color c1 = style.getAttributeValue(PercentageBarDecorator.PERCENTAGE_BAR_COMPLETE_REGION_START_COLOR);
Color c2 = style.getAttributeValue(PercentageBarDecorator.PERCENTAGE_BAR_COMPLETE_REGION_END_COLOR);
Color c3 = style.getAttributeValue(PercentageBarDecorator.PERCENTAGE_BAR_INCOMPLETE_REGION_COLOR);
ICSSValueConverter cssValueConverter = engine.getCSSValueConverter(String.class);
return cssValueConverter.convert(c1, engine, null) + " " + cssValueConverter.convert(c2, engine, null) + " " + cssValueConverter.convert(c3, engine, null);
} else if (NatTableCSSConstants.CONVERTER.equalsIgnoreCase(property)) {
IDisplayConverter converter = natTable.getConfigRegistry().getConfigAttribute(CellConfigAttributes.DISPLAY_CONVERTER, displayMode, label);
return NatTableCSSHelper.getDisplayConverterString(converter);
}
}
return null;
}
use of org.eclipse.nebula.widgets.nattable.painter.cell.ICellPainter in project nebula.widgets.nattable by eclipse.
the class StyledColumnHeaderConfiguration method addSelectedModeStyling.
private void addSelectedModeStyling(IConfigRegistry configRegistry) {
Image selectedBgImage = GUIHelper.getImageByURL("selectedColumnHeaderBg", getClass().getResource("selected_column_header_bg.png"));
TextPainter txtPainter = new TextPainter(false, false);
ICellPainter selectedCellPainter = new BackgroundImagePainter(txtPainter, selectedBgImage, GUIHelper.getColor(192, 192, 192));
// If sorting is enables we still want the sort icon to be drawn.
SortableHeaderTextPainter selectedHeaderPainter = new SortableHeaderTextPainter(selectedCellPainter, false, true);
configRegistry.registerConfigAttribute(CellConfigAttributes.CELL_PAINTER, selectedHeaderPainter, DisplayMode.SELECT, GridRegion.COLUMN_HEADER);
}
Aggregations