]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.browsing.ui/src/org/simantics/browsing/ui/content/CompositeImageDecorator.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.browsing.ui / src / org / simantics / browsing / ui / content / CompositeImageDecorator.java
1 package org.simantics.browsing.ui.content;\r
2 \r
3 import java.util.Collection;\r
4 \r
5 public class CompositeImageDecorator implements ImageDecorator {\r
6 \r
7     Collection<ImageDecorator> decorators;\r
8 \r
9     public static final ImageDecorator ID = new ImageDecorator() {\r
10         @Override\r
11         public <Image> Image decorateImage(Image image, String column, int itemIndex) {\r
12             return image;\r
13         }\r
14     };\r
15 \r
16     private CompositeImageDecorator(Collection<ImageDecorator> decorators) {\r
17         this.decorators = decorators;\r
18     }\r
19 \r
20     public static ImageDecorator create(Collection<ImageDecorator> decorators) {\r
21         if(decorators.isEmpty())\r
22             return ID;\r
23         else if(decorators.size() == 1)\r
24             return decorators.iterator().next();\r
25         else\r
26             return new CompositeImageDecorator(decorators);\r
27     }\r
28 \r
29     @Override\r
30     public <Image> Image decorateImage(Image image, String column, int itemIndex) {\r
31         for(ImageDecorator decorator : decorators)\r
32             image = decorator.decorateImage(image, column, itemIndex);\r
33         return image;\r
34     }\r
35 \r
36 }\r