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.tooltip;
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>Tooltip</code> component.
31   *
32   * @author Oleg Varaksin / last modified by Melloware
33   * @since 0.2
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 = "tooltip/tooltip.css")
40  @ResourceDependency(library = "primefaces-extensions", name = "tooltip/tooltip.js")
41  public class Tooltip extends UIOutput implements Widget {
42  
43      public static final String COMPONENT_TYPE = "org.primefaces.extensions.component.Tooltip";
44      public static final String COMPONENT_FAMILY = "org.primefaces.extensions.component";
45      private static final String DEFAULT_RENDERER = "org.primefaces.extensions.component.TooltipRenderer";
46  
47      /**
48       * Properties that are tracked by state saving.
49       *
50       * @author Oleg Varaksin / last modified by $Author$
51       * @version $Revision$
52       */
53      @SuppressWarnings("java:S115")
54      protected enum PropertyKeys {
55  
56          //@formatter:off
57          widgetVar,
58          global,
59          shared,
60          autoShow,
61          mouseTracking,
62          fixed,
63          header,
64          adjustX,
65          adjustY,
66          atPosition,
67          myPosition,
68          showEvent,
69          showDelay,
70          showEffect,
71          showEffectLength,
72          styleClass,
73          hideEvent,
74          hideDelay,
75          hideEffect,
76          hideEffectLength,
77          forValue("for");
78          //@formatter:on
79  
80          private final String toString;
81  
82          PropertyKeys(String toString) {
83              this.toString = toString;
84          }
85  
86          PropertyKeys() {
87              toString = null;
88          }
89  
90          @Override
91          public String toString() {
92              return ((toString != null) ? toString : super.toString());
93          }
94      }
95  
96      public Tooltip() {
97          setRendererType(DEFAULT_RENDERER);
98      }
99  
100     @Override
101     public String getFamily() {
102         return COMPONENT_FAMILY;
103     }
104 
105     public String getWidgetVar() {
106         return (String) getStateHelper().eval(PropertyKeys.widgetVar, null);
107     }
108 
109     public void setWidgetVar(final String widgetVar) {
110         getStateHelper().put(PropertyKeys.widgetVar, widgetVar);
111     }
112 
113     public boolean isGlobal() {
114         return (Boolean) getStateHelper().eval(PropertyKeys.global, false);
115     }
116 
117     public void setGlobal(final boolean global) {
118         getStateHelper().put(PropertyKeys.global, global);
119     }
120 
121     public boolean isShared() {
122         return (Boolean) getStateHelper().eval(PropertyKeys.shared, false);
123     }
124 
125     public void setShared(final boolean shared) {
126         getStateHelper().put(PropertyKeys.shared, shared);
127     }
128 
129     public boolean isAutoShow() {
130         return (Boolean) getStateHelper().eval(PropertyKeys.autoShow, false);
131     }
132 
133     public void setAutoShow(final boolean autoShow) {
134         getStateHelper().put(PropertyKeys.autoShow, autoShow);
135     }
136 
137     public boolean isMouseTracking() {
138         return (Boolean) getStateHelper().eval(PropertyKeys.mouseTracking, false);
139     }
140 
141     public void setMouseTracking(final boolean mouseTracking) {
142         getStateHelper().put(PropertyKeys.mouseTracking, mouseTracking);
143     }
144 
145     public boolean isFixed() {
146         return (Boolean) getStateHelper().eval(PropertyKeys.fixed, false);
147     }
148 
149     public void setFixed(final boolean fixed) {
150         getStateHelper().put(PropertyKeys.fixed, fixed);
151     }
152 
153     public int getAdjustX() {
154         return (Integer) getStateHelper().eval(PropertyKeys.adjustX, 0);
155     }
156 
157     public void setAdjustX(final int adjustX) {
158         getStateHelper().put(PropertyKeys.adjustX, adjustX);
159     }
160 
161     public int getAdjustY() {
162         return (Integer) getStateHelper().eval(PropertyKeys.adjustY, 0);
163     }
164 
165     public void setAdjustY(final int adjustY) {
166         getStateHelper().put(PropertyKeys.adjustY, adjustY);
167     }
168 
169     public String getAtPosition() {
170         return (String) getStateHelper().eval(PropertyKeys.atPosition, "bottom right");
171     }
172 
173     public void setAtPosition(final String atPosition) {
174         getStateHelper().put(PropertyKeys.atPosition, atPosition);
175     }
176 
177     public String getMyPosition() {
178         return (String) getStateHelper().eval(PropertyKeys.myPosition, "top left");
179     }
180 
181     public void setMyPosition(final String myPosition) {
182         getStateHelper().put(PropertyKeys.myPosition, myPosition);
183     }
184 
185     public String getShowEvent() {
186         return (String) getStateHelper().eval(PropertyKeys.showEvent, "mouseenter");
187     }
188 
189     public void setShowEvent(final String showEvent) {
190         getStateHelper().put(PropertyKeys.showEvent, showEvent);
191     }
192 
193     public int getShowDelay() {
194         return (Integer) getStateHelper().eval(PropertyKeys.showDelay, 0);
195     }
196 
197     public void setShowDelay(final int showDelay) {
198         getStateHelper().put(PropertyKeys.showDelay, showDelay);
199     }
200 
201     public String getShowEffect() {
202         return (String) getStateHelper().eval(PropertyKeys.showEffect, "fadeIn");
203     }
204 
205     public void setShowEffect(final String showEffect) {
206         getStateHelper().put(PropertyKeys.showEffect, showEffect);
207     }
208 
209     public int getShowEffectLength() {
210         return (Integer) getStateHelper().eval(PropertyKeys.showEffectLength, 500);
211     }
212 
213     public void setShowEffectLength(final int showEffectLength) {
214         getStateHelper().put(PropertyKeys.showEffectLength, showEffectLength);
215     }
216 
217     public String getHideEvent() {
218         return (String) getStateHelper().eval(PropertyKeys.hideEvent, "mouseleave");
219     }
220 
221     public void setHideEvent(final String hideEvent) {
222         getStateHelper().put(PropertyKeys.hideEvent, hideEvent);
223     }
224 
225     public int getHideDelay() {
226         return (Integer) getStateHelper().eval(PropertyKeys.hideDelay, 0);
227     }
228 
229     public void setHideDelay(final int hideDelay) {
230         getStateHelper().put(PropertyKeys.hideDelay, hideDelay);
231     }
232 
233     public String getHideEffect() {
234         return (String) getStateHelper().eval(PropertyKeys.hideEffect, "fadeOut");
235     }
236 
237     public void setHideEffect(final String hideEffect) {
238         getStateHelper().put(PropertyKeys.hideEffect, hideEffect);
239     }
240 
241     public int getHideEffectLength() {
242         return (Integer) getStateHelper().eval(PropertyKeys.hideEffectLength, 500);
243     }
244 
245     public void setHideEffectLength(final int hideEffectLength) {
246         getStateHelper().put(PropertyKeys.hideEffectLength, hideEffectLength);
247     }
248 
249     public String getFor() {
250         return (String) getStateHelper().eval(PropertyKeys.forValue, null);
251     }
252 
253     public void setFor(final String forValue) {
254         getStateHelper().put(PropertyKeys.forValue, forValue);
255     }
256 
257     public String getStyleClass() {
258         return (String) getStateHelper().eval(PropertyKeys.styleClass);
259     }
260 
261     public void setStyleClass(final String styleClass) {
262         getStateHelper().put(PropertyKeys.styleClass, styleClass);
263     }
264 
265     public String getHeader() {
266         return (String) getStateHelper().eval(PropertyKeys.header);
267     }
268 
269     public void setHeader(final String header) {
270         getStateHelper().put(PropertyKeys.header, header);
271     }
272 
273 }