| /******************************************************************************* |
| * Copyright (c) 2012, 2020 Original authors and others. |
| * |
| * This program and the accompanying materials are made |
| * available under the terms of the Eclipse Public License 2.0 |
| * which is available at https://www.eclipse.org/legal/epl-2.0/ |
| * |
| * SPDX-License-Identifier: EPL-2.0 |
| * |
| * Contributors: |
| * Original authors and others - initial API and implementation |
| ******************************************************************************/ |
| package org.eclipse.nebula.widgets.nattable.filterrow; |
| |
| import org.eclipse.nebula.widgets.nattable.painter.cell.CellPainterWrapper; |
| import org.eclipse.nebula.widgets.nattable.painter.cell.ImagePainter; |
| import org.eclipse.nebula.widgets.nattable.painter.cell.TextPainter; |
| import org.eclipse.nebula.widgets.nattable.painter.cell.decorator.CellPainterDecorator; |
| import org.eclipse.nebula.widgets.nattable.ui.util.CellEdgeEnum; |
| import org.eclipse.swt.graphics.Image; |
| |
| /** |
| * Painter that is used to paint the cells of the filter row. In detail it is a |
| * {@link TextPainter} that is wrapped and decorated with an |
| * {@link ImagePainter} to indicate filter states. |
| */ |
| public class FilterRowPainter extends CellPainterWrapper { |
| |
| /** |
| * The {@link ImagePainter} that is used to paint the icon in the filter row |
| * cells. |
| */ |
| private final ImagePainter filterIconPainter; |
| |
| /** |
| * Creates a {@link FilterRowPainter} that uses the default |
| * {@link FilterIconPainter}. |
| */ |
| public FilterRowPainter() { |
| this(new FilterIconPainter()); |
| } |
| |
| /** |
| * Creates a {@link FilterRowPainter} that uses the given {@link Image} as |
| * filter icon painter. |
| * |
| * @param filterIconPainter |
| * The {@link ImagePainter} that should be used to paint the icon |
| * in the filter row cells. |
| */ |
| public FilterRowPainter(ImagePainter filterIconPainter) { |
| this.filterIconPainter = filterIconPainter; |
| setWrappedPainter( |
| new CellPainterDecorator(new TextPainter(), CellEdgeEnum.RIGHT, filterIconPainter)); |
| } |
| |
| /** |
| * |
| * @return The {@link ImagePainter} that is used to paint the icon in the |
| * filter row cells. |
| */ |
| public ImagePainter getFilterIconPainter() { |
| return this.filterIconPainter; |
| } |
| } |