View Javadoc
1   /*
2    * Copyright (c) 2011-2024 PrimeFaces Extensions
3    *
4    *  Permission is hereby granted, free of charge, to any person obtaining a copy
5    *  of this software and associated documentation files (the "Software"), to deal
6    *  in the Software without restriction, including without limitation the rights
7    *  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8    *  copies of the Software, and to permit persons to whom the Software is
9    *  furnished to do so, subject to the following conditions:
10   *
11   *  The above copyright notice and this permission notice shall be included in
12   *  all copies or substantial portions of the Software.
13   *
14   *  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15   *  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16   *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17   *  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18   *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19   *  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20   *  THE SOFTWARE.
21   */
22  package org.primefaces.extensions.component.qrcode;
23  
24  import javax.faces.application.ResourceDependency;
25  import javax.faces.component.UIOutput;
26  
27  import org.primefaces.component.api.Widget;
28  
29  /**
30   * <code>QRCode</code> component.
31   *
32   * @author Mauricio Fenoglio / last modified by Melloware
33   * @since 1.2.0
34   */
35  @ResourceDependency(library = "primefaces", name = "jquery/jquery.js")
36  @ResourceDependency(library = "primefaces", name = "jquery/jquery-plugins.js")
37  @ResourceDependency(library = "primefaces", name = "core.js")
38  @ResourceDependency(library = "primefaces-extensions", name = "primefaces-extensions.js")
39  @ResourceDependency(library = "primefaces-extensions", name = "qrcode/qrcode.js")
40  public class QRCode extends UIOutput implements Widget {
41  
42      public static final String COMPONENT_TYPE = "org.primefaces.extensions.component.QRCode";
43      public static final String COMPONENT_FAMILY = "org.primefaces.extensions.component";
44      public static final String STYLE_CLASS = "ui-qrcode";
45      private static final String DEFAULT_RENDERER = "org.primefaces.extensions.component.QRCodeRenderer";
46  
47      @SuppressWarnings("java:S115")
48      protected enum PropertyKeys {
49          //@formatter:off
50          widgetVar,
51          renderMethod,
52          renderMode,
53          minVersion,
54          maxVersion,
55          leftOffset,
56          topOffset,
57          size,
58          fillColor,
59          ecLevel,
60          background,
61          text,
62          radius,
63          quiet,
64          labelSize,
65          labelPosX,
66          labelPosY,
67          label,
68          fontName,
69          fontColor,
70          style,
71          styleClass
72         //@formatter:on
73      }
74  
75      public QRCode() {
76          setRendererType(DEFAULT_RENDERER);
77      }
78  
79      @Override
80      public String getFamily() {
81          return COMPONENT_FAMILY;
82      }
83  
84      public String getWidgetVar() {
85          return (String) getStateHelper().eval(PropertyKeys.widgetVar, null);
86      }
87  
88      public void setWidgetVar(final String widgetVar) {
89          getStateHelper().put(PropertyKeys.widgetVar, widgetVar);
90      }
91  
92      public String getRenderMethod() {
93          return (String) getStateHelper().eval(PropertyKeys.renderMethod, null);
94      }
95  
96      public void setRenderMethod(final String renderMethod) {
97          getStateHelper().put(PropertyKeys.renderMethod, renderMethod);
98      }
99  
100     public int getMinVersion() {
101         return (Integer) getStateHelper().eval(PropertyKeys.minVersion, 1);
102     }
103 
104     public void setMinVersion(final int minVersion) {
105         getStateHelper().put(PropertyKeys.minVersion, minVersion);
106     }
107 
108     public int getMaxVersion() {
109         return (Integer) getStateHelper().eval(PropertyKeys.maxVersion, 40);
110     }
111 
112     public void setMaxVersion(final int maxVersion) {
113         getStateHelper().put(PropertyKeys.maxVersion, maxVersion);
114     }
115 
116     public int getLeftOffset() {
117         return (Integer) getStateHelper().eval(PropertyKeys.leftOffset, 0);
118     }
119 
120     public void setLeftOffset(final int leftOffset) {
121         getStateHelper().put(PropertyKeys.leftOffset, leftOffset);
122     }
123 
124     public int getTopOffset() {
125         return (Integer) getStateHelper().eval(PropertyKeys.topOffset, 0);
126     }
127 
128     public void setTopOffset(final int topOffset) {
129         getStateHelper().put(PropertyKeys.topOffset, topOffset);
130     }
131 
132     public int getSize() {
133         return (Integer) getStateHelper().eval(PropertyKeys.size, 200);
134     }
135 
136     public void setSize(final int size) {
137         getStateHelper().put(PropertyKeys.size, size);
138     }
139 
140     public String getFillColor() {
141         return (String) getStateHelper().eval(PropertyKeys.fillColor, null);
142     }
143 
144     public void setFillColor(final String fillColor) {
145         getStateHelper().put(PropertyKeys.fillColor, fillColor);
146     }
147 
148     public String getBackground() {
149         return (String) getStateHelper().eval(PropertyKeys.background, null);
150     }
151 
152     public void setBackground(final String background) {
153         getStateHelper().put(PropertyKeys.background, background);
154     }
155 
156     public String getText() {
157         return (String) getStateHelper().eval(PropertyKeys.text, null);
158     }
159 
160     public void setText(final String text) {
161         getStateHelper().put(PropertyKeys.text, text);
162     }
163 
164     public String getLabel() {
165         return (String) getStateHelper().eval(PropertyKeys.label, null);
166     }
167 
168     public void setLabel(final String text) {
169         getStateHelper().put(PropertyKeys.label, text);
170     }
171 
172     public Double getRadius() {
173         return (Double) getStateHelper().eval(PropertyKeys.radius, 0d);
174     }
175 
176     public void setRadius(final Double radius) {
177         getStateHelper().put(PropertyKeys.radius, radius);
178     }
179 
180     public Integer getQuiet() {
181         return (Integer) getStateHelper().eval(PropertyKeys.quiet, 0);
182     }
183 
184     public void setQuiet(final Integer quiet) {
185         getStateHelper().put(PropertyKeys.quiet, quiet);
186     }
187 
188     public String getEcLevel() {
189         return (String) getStateHelper().eval(PropertyKeys.ecLevel, "L");
190     }
191 
192     public void setEcLevel(final String ecLevel) {
193         getStateHelper().put(PropertyKeys.ecLevel, ecLevel);
194     }
195 
196     public Integer getRenderMode() {
197         return (Integer) getStateHelper().eval(PropertyKeys.renderMode, 0);
198     }
199 
200     public void setRenderMode(final Integer renderMode) {
201         getStateHelper().put(PropertyKeys.renderMode, renderMode);
202     }
203 
204     public String getFontColor() {
205         return (String) getStateHelper().eval(PropertyKeys.fontColor, null);
206     }
207 
208     public void setFontColor(final String fontColor) {
209         getStateHelper().put(PropertyKeys.fontColor, fontColor);
210     }
211 
212     public String getFontName() {
213         return (String) getStateHelper().eval(PropertyKeys.fontName, null);
214     }
215 
216     public void setFontName(final String fontColor) {
217         getStateHelper().put(PropertyKeys.fontName, fontColor);
218     }
219 
220     public Double getLabelPosX() {
221         return (Double) getStateHelper().eval(PropertyKeys.labelPosX, 0.5d);
222     }
223 
224     public void setLabelPosX(final Double labelPosX) {
225         getStateHelper().put(PropertyKeys.labelPosX, labelPosX);
226     }
227 
228     public Double getLabelPosY() {
229         return (Double) getStateHelper().eval(PropertyKeys.labelPosY, 0.5d);
230     }
231 
232     public void setLabelPosY(final Double labelPosY) {
233         getStateHelper().put(PropertyKeys.labelPosY, labelPosY);
234     }
235 
236     public Double getLabelSize() {
237         return (Double) getStateHelper().eval(PropertyKeys.labelSize, 0.1d);
238     }
239 
240     public void setLabelSize(final Double labelSize) {
241         getStateHelper().put(PropertyKeys.labelSize, labelSize);
242     }
243 
244     public String getStyle() {
245         return (String) getStateHelper().eval(PropertyKeys.style, null);
246     }
247 
248     public void setStyle(final String style) {
249         getStateHelper().put(PropertyKeys.style, style);
250     }
251 
252     public String getStyleClass() {
253         return (String) getStateHelper().eval(PropertyKeys.styleClass, null);
254     }
255 
256     public void setStyleClass(final String styleClass) {
257         getStateHelper().put(PropertyKeys.styleClass, styleClass);
258     }
259 
260 }