-package org.simantics.browsing.ui.content;\r
-\r
-import java.util.Collection;\r
-\r
-public class CompositeLabelDecorator implements LabelDecorator {\r
-\r
- Collection<LabelDecorator> decorators;\r
- \r
- public static final LabelDecorator ID = new LabelDecorator() {\r
-\r
- @Override\r
- public String decorateLabel(String label, String column, int itemIndex) {\r
- return label;\r
- }\r
-\r
- @Override\r
- public <Color> Color decorateForeground(Color color, String column,\r
- int itemIndex) {\r
- return color;\r
- }\r
-\r
- @Override\r
- public <Color> Color decorateBackground(Color color, String column,\r
- int itemIndex) {\r
- return color;\r
- }\r
-\r
- @Override\r
- public <Font> Font decorateFont(Font font, String column, int itemIndex) {\r
- return font;\r
- }\r
- \r
- };\r
- \r
- private CompositeLabelDecorator(Collection<LabelDecorator> decorators) {\r
- this.decorators = decorators;\r
- }\r
- \r
- public static LabelDecorator create(Collection<LabelDecorator> decorators) {\r
- if(decorators.isEmpty())\r
- return ID;\r
- else if(decorators.size() == 1)\r
- return decorators.iterator().next();\r
- else\r
- return new CompositeLabelDecorator(decorators);\r
- }\r
-\r
- @Override\r
- public String decorateLabel(String label, String column, int itemIndex) {\r
- for(LabelDecorator decorator : decorators) {\r
- String dlabel = decorator.decorateLabel(label, column, itemIndex);\r
- if(dlabel != null)\r
- label = dlabel;\r
- }\r
- return label;\r
- }\r
-\r
- @Override\r
- public <Color> Color decorateForeground(Color color, String column,\r
- int itemIndex) {\r
- for(LabelDecorator decorator : decorators) {\r
- Color dcolor = decorator.decorateForeground(color, column, itemIndex);\r
- if (dcolor != null)\r
- color = dcolor;\r
- }\r
- return color;\r
- }\r
-\r
- @Override\r
- public <Color> Color decorateBackground(Color color, String column,\r
- int itemIndex) {\r
- for(LabelDecorator decorator : decorators) {\r
- Color dcolor = decorator.decorateBackground(color, column, itemIndex);\r
- if (dcolor != null)\r
- color = dcolor;\r
- }\r
- return color;\r
- }\r
-\r
- @Override\r
- public <Font> Font decorateFont(Font font, String column, int itemIndex) {\r
- for(LabelDecorator decorator : decorators) {\r
- Font dfont = decorator.decorateFont(font, column, itemIndex);\r
- if (dfont != null)\r
- font = dfont;\r
- }\r
- return font;\r
- }\r
-\r
-}\r
+package org.simantics.browsing.ui.content;
+
+import java.util.Collection;
+
+public class CompositeLabelDecorator implements LabelDecorator {
+
+ Collection<LabelDecorator> decorators;
+
+ public static final LabelDecorator ID = new LabelDecorator() {
+
+ @Override
+ public String decorateLabel(String label, String column, int itemIndex) {
+ return label;
+ }
+
+ @Override
+ public <Color> Color decorateForeground(Color color, String column,
+ int itemIndex) {
+ return color;
+ }
+
+ @Override
+ public <Color> Color decorateBackground(Color color, String column,
+ int itemIndex) {
+ return color;
+ }
+
+ @Override
+ public <Font> Font decorateFont(Font font, String column, int itemIndex) {
+ return font;
+ }
+
+ };
+
+ private CompositeLabelDecorator(Collection<LabelDecorator> decorators) {
+ this.decorators = decorators;
+ }
+
+ public static LabelDecorator create(Collection<LabelDecorator> decorators) {
+ if(decorators.isEmpty())
+ return ID;
+ else if(decorators.size() == 1)
+ return decorators.iterator().next();
+ else
+ return new CompositeLabelDecorator(decorators);
+ }
+
+ @Override
+ public String decorateLabel(String label, String column, int itemIndex) {
+ for(LabelDecorator decorator : decorators) {
+ String dlabel = decorator.decorateLabel(label, column, itemIndex);
+ if(dlabel != null)
+ label = dlabel;
+ }
+ return label;
+ }
+
+ @Override
+ public <Color> Color decorateForeground(Color color, String column,
+ int itemIndex) {
+ for(LabelDecorator decorator : decorators) {
+ Color dcolor = decorator.decorateForeground(color, column, itemIndex);
+ if (dcolor != null)
+ color = dcolor;
+ }
+ return color;
+ }
+
+ @Override
+ public <Color> Color decorateBackground(Color color, String column,
+ int itemIndex) {
+ for(LabelDecorator decorator : decorators) {
+ Color dcolor = decorator.decorateBackground(color, column, itemIndex);
+ if (dcolor != null)
+ color = dcolor;
+ }
+ return color;
+ }
+
+ @Override
+ public <Font> Font decorateFont(Font font, String column, int itemIndex) {
+ for(LabelDecorator decorator : decorators) {
+ Font dfont = decorator.decorateFont(font, column, itemIndex);
+ if (dfont != null)
+ font = dfont;
+ }
+ return font;
+ }
+
+}