1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package info.magnolia.module.templatingkit.templates.components;
35
36 import info.magnolia.dam.asset.Asset;
37 import info.magnolia.dam.asset.DamAsset;
38 import info.magnolia.module.templatingkit.functions.STKTemplatingFunctions;
39 import info.magnolia.module.templatingkit.templates.AbstractSTKTemplateModel;
40 import info.magnolia.rendering.model.RenderingModel;
41 import info.magnolia.rendering.template.TemplateDefinition;
42 import info.magnolia.templating.functions.TemplatingFunctions;
43
44 import java.util.ArrayList;
45 import java.util.List;
46
47 import javax.inject.Inject;
48 import javax.jcr.Node;
49 import javax.jcr.RepositoryException;
50
51 import org.apache.commons.lang.ArrayUtils;
52 import org.apache.commons.lang.StringUtils;
53 import org.slf4j.Logger;
54 import org.slf4j.LoggerFactory;
55
56
57
58
59
60
61
62
63
64 public class ImageGalleryParagraphModel<RD extends TemplateDefinition> extends AbstractSTKTemplateModel<TemplateDefinition> {
65
66 private static Logger log = LoggerFactory.getLogger(ImageGalleryParagraphModel.class);
67
68 protected static final String[] ALLOWED_IMAGE_TYPES = new String[] { "gif", "jpg", "jpeg", "png" };
69
70 @Inject
71 public ImageGalleryParagraphModel(Node content, RD definition, RenderingModel<?> parent, STKTemplatingFunctions stkFunctions, TemplatingFunctions templatingFunctions) {
72 super(content, definition, parent, stkFunctions, templatingFunctions);
73 }
74
75 public List<Asset> getImages() {
76 List<Asset> images = new ArrayList<Asset>();
77 List<DamAsset> imagesNotFiltered = stkFunctions.getAssetsFromFolder(content, "link");
78 for (DamAsset asset : imagesNotFiltered) {
79 if (showImage(asset)) {
80 images.add((Asset) asset);
81 }
82 }
83 return images;
84 }
85
86 protected boolean showImage(DamAsset asset) {
87 try {
88 if (asset.getBinaryData().getBinary() != null && StringUtils.isNotBlank(asset.getFileExtension())) {
89 return ArrayUtils.contains(ALLOWED_IMAGE_TYPES, asset.getFileExtension().toLowerCase());
90 }
91 } catch (RepositoryException re) {
92 log.warn("Not able to get the mime type of the asset node " + asset.getName());
93 }
94 return false;
95 }
96 }