--- /dev/null
+package org.simantics.browsing.ui.content;\r
+\r
+import java.util.Collection;\r
+\r
+public class CompositeImageDecorator implements ImageDecorator {\r
+\r
+ Collection<ImageDecorator> decorators;\r
+\r
+ public static final ImageDecorator ID = new ImageDecorator() {\r
+ @Override\r
+ public <Image> Image decorateImage(Image image, String column, int itemIndex) {\r
+ return image;\r
+ }\r
+ };\r
+\r
+ private CompositeImageDecorator(Collection<ImageDecorator> decorators) {\r
+ this.decorators = decorators;\r
+ }\r
+\r
+ public static ImageDecorator create(Collection<ImageDecorator> decorators) {\r
+ if(decorators.isEmpty())\r
+ return ID;\r
+ else if(decorators.size() == 1)\r
+ return decorators.iterator().next();\r
+ else\r
+ return new CompositeImageDecorator(decorators);\r
+ }\r
+\r
+ @Override\r
+ public <Image> Image decorateImage(Image image, String column, int itemIndex) {\r
+ for(ImageDecorator decorator : decorators)\r
+ image = decorator.decorateImage(image, column, itemIndex);\r
+ return image;\r
+ }\r
+\r
+}\r