1 package org.simantics.browsing.ui.content;
\r
3 import java.util.Collection;
\r
5 public class CompositeLabelDecorator implements LabelDecorator {
\r
7 Collection<LabelDecorator> decorators;
\r
9 public static final LabelDecorator ID = new LabelDecorator() {
\r
12 public String decorateLabel(String label, String column, int itemIndex) {
\r
17 public <Color> Color decorateForeground(Color color, String column,
\r
23 public <Color> Color decorateBackground(Color color, String column,
\r
29 public <Font> Font decorateFont(Font font, String column, int itemIndex) {
\r
35 private CompositeLabelDecorator(Collection<LabelDecorator> decorators) {
\r
36 this.decorators = decorators;
\r
39 public static LabelDecorator create(Collection<LabelDecorator> decorators) {
\r
40 if(decorators.isEmpty())
\r
42 else if(decorators.size() == 1)
\r
43 return decorators.iterator().next();
\r
45 return new CompositeLabelDecorator(decorators);
\r
49 public String decorateLabel(String label, String column, int itemIndex) {
\r
50 for(LabelDecorator decorator : decorators) {
\r
51 String dlabel = decorator.decorateLabel(label, column, itemIndex);
\r
59 public <Color> Color decorateForeground(Color color, String column,
\r
61 for(LabelDecorator decorator : decorators) {
\r
62 Color dcolor = decorator.decorateForeground(color, column, itemIndex);
\r
70 public <Color> Color decorateBackground(Color color, String column,
\r
72 for(LabelDecorator decorator : decorators) {
\r
73 Color dcolor = decorator.decorateBackground(color, column, itemIndex);
\r
81 public <Font> Font decorateFont(Font font, String column, int itemIndex) {
\r
82 for(LabelDecorator decorator : decorators) {
\r
83 Font dfont = decorator.decorateFont(font, column, itemIndex);
\r