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.imaging.generation;
35
36 import info.magnolia.cms.core.NodeData;
37 import info.magnolia.imaging.ParameterProvider;
38 import info.magnolia.imaging.operations.ImageOperationChain;
39 import info.magnolia.imaging.operations.cropresize.AutoCropAndResize;
40 import info.magnolia.imaging.operations.cropresize.BoundedResize;
41 import info.magnolia.imaging.operations.cropresize.resizers.MultiStepResizer;
42 import info.magnolia.imaging.operations.load.FromNodeData;
43 import info.magnolia.module.site.SiteManager;
44 import info.magnolia.module.templatingkit.sites.Site;
45 import info.magnolia.objectfactory.Components;
46
47 import javax.inject.Inject;
48 import javax.inject.Provider;
49
50
51
52
53
54 public class SimpleResizeVariation extends ImageOperationProvidingVariation {
55
56 private Integer width;
57
58 private Integer height;
59
60 private boolean crop = true;
61
62 @Inject
63 public SimpleResizeVariation(SiteManager siteManager) {
64 super(siteManager);
65 }
66
67
68
69
70 @Deprecated
71 public SimpleResizeVariation(Provider<Site> siteProvider) {
72 super(Components.getComponent(SiteManager.class));
73 }
74
75 public void init() {
76 if (imageOperation == null) {
77 final ImageOperationChain<ParameterProvider<NodeData>> chain = new ImageOperationChain<ParameterProvider<NodeData>>();
78 chain.addOperation(new FromNodeData());
79 if (crop) {
80 final AutoCropAndResize resize = new AutoCropAndResize();
81
82 resize.setResizer(new MultiStepResizer());
83
84 if (getWidth() != null) {
85 resize.setTargetWidth(getWidth());
86 }
87 if (getHeight() != null) {
88 resize.setTargetHeight(getHeight());
89 }
90 chain.addOperation(resize);
91 } else {
92 final BoundedResize resize = new BoundedResize();
93
94 resize.setResizer(new MultiStepResizer());
95
96 if (getWidth() != null) {
97 resize.setMaxWidth(getWidth());
98 }
99 if (getHeight() != null) {
100 resize.setMaxHeight(getHeight());
101 }
102 chain.addOperation(resize);
103 }
104 setImageOperation(chain);
105 }
106 }
107
108 public Integer getWidth() {
109 return this.width;
110 }
111
112 public void setWidth(Integer width) {
113 this.width = width;
114 }
115
116 public Integer getHeight() {
117 return this.height;
118 }
119
120 public void setHeight(Integer height) {
121 this.height = height;
122 }
123
124 public boolean isCrop() {
125 return this.crop;
126 }
127
128 public void setCrop(boolean crop) {
129 this.crop = crop;
130 }
131
132 }