View Javadoc

1   // WARNING: This file was automatically generated. Do not edit it directly,
2   //          or you will lose your changes.
3   
4   /*
5    * Licensed to the Apache Software Foundation (ASF) under one
6    * or more contributor license agreements.  See the NOTICE file
7    * distributed with this work for additional information
8    * regarding copyright ownership.  The ASF licenses this file
9    * to you under the Apache License, Version 2.0 (the
10   * "License"); you may not use this file except in compliance
11   * with the License.  You may obtain a copy of the License at
12   *
13   *   http://www.apache.org/licenses/LICENSE-2.0
14   *
15   * Unless required by applicable law or agreed to in writing,
16   * software distributed under the License is distributed on an
17   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
18   * KIND, either express or implied.  See the License for the
19   * specific language governing permissions and limitations
20   * under the License.
21  */
22  package org.apache.myfaces.trinidad.component.core.nav;
23  
24  import java.util.Arrays;
25  import java.util.Collection;
26  import java.util.Collections;
27  import java.util.List;
28  import java.util.Map;
29  import javax.faces.component.behavior.ClientBehavior;
30  import javax.faces.component.behavior.ClientBehaviorHolder;
31  import org.apache.myfaces.trinidad.bean.FacesBean;
32  import org.apache.myfaces.trinidad.bean.PropertyKey;
33  import org.apache.myfaces.trinidad.component.UIXCommand;
34  import org.apache.myfaces.trinidad.util.ComponentUtils;
35  
36  /**
37   *
38   * <html:p>
39   *           The commandLink control creates a link representation of a UIXCommand.
40   *           </html:p>
41   *
42   * <h4>Events:</h4>
43   * <table border="1" width="100%" cellpadding="3" summary="">
44   * <tr bgcolor="#CCCCFF" class="TableHeadingColor">
45   * <th align="left">Type</th>
46   * <th align="left">Phases</th>
47   * <th align="left">Description</th>
48   * </tr>
49   * <tr class="TableRowColor">
50   * <td valign="top"><code>javax.faces.event.ActionEvent</code></td>
51   * <td valign="top" nowrap>Invoke<br>Application<br>Apply<br>Request<br>Values</td>
52   * <td valign="top">Event delivered when the "action" of the component has been
53  invoked;  for example, by clicking on a button.  The action may result
54  in page navigation.</td>
55   * </tr>
56   * <tr class="TableRowColor">
57   * <td valign="top"><code>org.apache.myfaces.trinidad.event.ReturnEvent</code></td>
58   * <td valign="top" nowrap>Apply<br>Request<br>Values</td>
59   * <td valign="top">Event delivered when the dialog has completed successfully.</td>
60   * </tr>
61   * <tr class="TableRowColor">
62   * <td valign="top"><code>org.apache.myfaces.trinidad.event.LaunchEvent</code></td>
63   * <td valign="top" nowrap>Invoke<br>Application<br>Apply<br>Request<br>Values</td>
64   * <td valign="top">Event delivered to prompt the command to launch a dialog.</td>
65   * </tr>
66   * <tr class="TableRowColor">
67   * <td valign="top"><code>org.apache.myfaces.trinidad.event.AttributeChangeEvent</code></td>
68   * <td valign="top" nowrap>Invoke<br>Application<br>Apply<br>Request<br>Values</td>
69   * <td valign="top">Event delivered to describe an attribute change.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change event might include the width of a column that supported client-side resizing.</td>
70   * </tr>
71   * </table>
72   */
73  public class CoreCommandLink extends UIXCommand
74                               implements ClientBehaviorHolder
75  {
76    static public final FacesBean.Type TYPE = new FacesBean.Type(
77      UIXCommand.TYPE);
78    static public final PropertyKey TEXT_KEY =
79      TYPE.registerKey("text", String.class);
80    static public final PropertyKey DISABLED_KEY =
81      TYPE.registerKey("disabled", Boolean.class, Boolean.FALSE);
82    static public final PropertyKey ACCESS_KEY_KEY =
83      TYPE.registerKey("accessKey", Character.class);
84    static public final PropertyKey PARTIAL_SUBMIT_KEY =
85      TYPE.registerKey("partialSubmit", Boolean.class, Boolean.FALSE);
86    static public final PropertyKey BLOCKING_KEY =
87      TYPE.registerKey("blocking", Boolean.class, Boolean.FALSE);
88    static public final PropertyKey INLINE_STYLE_KEY =
89      TYPE.registerKey("inlineStyle", String.class);
90    static public final PropertyKey STYLE_CLASS_KEY =
91      TYPE.registerKey("styleClass", String.class);
92    static public final PropertyKey SHORT_DESC_KEY =
93      TYPE.registerKey("shortDesc", String.class);
94    static public final PropertyKey PARTIAL_TRIGGERS_KEY =
95      TYPE.registerKey("partialTriggers", String[].class, null, 0, PropertyKey.Mutable.RARELY);
96    static public final PropertyKey ONCLICK_KEY =
97      TYPE.registerKey("onclick", String.class);
98    static public final PropertyKey ONDBLCLICK_KEY =
99      TYPE.registerKey("ondblclick", String.class);
100   static public final PropertyKey ONMOUSEDOWN_KEY =
101     TYPE.registerKey("onmousedown", String.class);
102   static public final PropertyKey ONMOUSEUP_KEY =
103     TYPE.registerKey("onmouseup", String.class);
104   static public final PropertyKey ONMOUSEOVER_KEY =
105     TYPE.registerKey("onmouseover", String.class);
106   static public final PropertyKey ONMOUSEMOVE_KEY =
107     TYPE.registerKey("onmousemove", String.class);
108   static public final PropertyKey ONMOUSEOUT_KEY =
109     TYPE.registerKey("onmouseout", String.class);
110   static public final PropertyKey ONKEYPRESS_KEY =
111     TYPE.registerKey("onkeypress", String.class);
112   static public final PropertyKey ONKEYDOWN_KEY =
113     TYPE.registerKey("onkeydown", String.class);
114   static public final PropertyKey ONKEYUP_KEY =
115     TYPE.registerKey("onkeyup", String.class);
116   static public final PropertyKey ONBLUR_KEY =
117     TYPE.registerKey("onblur", String.class);
118   static public final PropertyKey ONFOCUS_KEY =
119     TYPE.registerKey("onfocus", String.class);
120   static public final PropertyKey USE_WINDOW_KEY =
121     TYPE.registerKey("useWindow", Boolean.class, Boolean.FALSE);
122   static public final PropertyKey WINDOW_HEIGHT_KEY =
123     TYPE.registerKey("windowHeight", Integer.class);
124   static public final PropertyKey WINDOW_WIDTH_KEY =
125     TYPE.registerKey("windowWidth", Integer.class);
126 
127   static public final String COMPONENT_FAMILY =
128     "org.apache.myfaces.trinidad.Command";
129   static public final String COMPONENT_TYPE =
130     "org.apache.myfaces.trinidad.CoreCommandLink";
131   // Supported client events for client behaviors:
132   private final static Collection<String> _EVENT_NAMES = Collections.unmodifiableCollection(
133     Arrays.asList(
134       "action", "click", "dblclick", "mousedown", "mouseup", "mouseover",
135       "mousemove", "mouseout", "keypress", "keydown", "keyup", "blur",
136       "focus"
137     ));
138 
139   /**
140    * Construct an instance of the CoreCommandLink.
141    */
142   public CoreCommandLink()
143   {
144     super("org.apache.myfaces.trinidad.Link");
145   }
146 
147   /**
148    * Gets the textual label of the link.
149    *
150    * @return  the new text value
151    */
152   final public String getText()
153   {
154     return ComponentUtils.resolveString(getProperty(TEXT_KEY));
155   }
156 
157   /**
158    * Sets the textual label of the link.
159    * 
160    * @param text  the new text value
161    */
162   final public void setText(String text)
163   {
164     setProperty(TEXT_KEY, (text));
165   }
166 
167   /**
168    * Gets whether the link should be considered disabled.
169    *               This attribute only has meaning when links are used in certain
170    *               container types, such as global headers and tab bars.
171    *
172    * @return  the new disabled value
173    */
174   final public boolean isDisabled()
175   {
176     return ComponentUtils.resolveBoolean(getProperty(DISABLED_KEY), false);
177   }
178 
179   /**
180    * Sets whether the link should be considered disabled.
181    *               This attribute only has meaning when links are used in certain
182    *               container types, such as global headers and tab bars.
183    * 
184    * @param disabled  the new disabled value
185    */
186   final public void setDisabled(boolean disabled)
187   {
188     setProperty(DISABLED_KEY, disabled ? Boolean.TRUE : Boolean.FALSE);
189   }
190 
191   /**
192    * Gets <html>
193    *  Character used to gain quick access to this link.
194    *               For accessibility reasons, this functionality is not
195    *               supported in screen reader mode.
196    *               <p>
197    *               If the same access key appears in multiple input fields in the
198    *               same page of output, the rendering user agent will cycle among
199    *               the elements accessed by the similar keys. Note that user agents
200    *               are inconsistent about dealing with two links having same access
201    *               key, and so the cycling behavior is dependent on what the user agent
202    *               provides.
203    *               </p><p>
204    *                 This attribute is sometimes referred to as the "mnemonic".
205    *               </p><p>
206    *                 The character specified by this attribute
207    *                 <strong>must</strong> exist in the
208    *                 <code>Text</code> attribute of this Link instance.
209    *                 If it does not, the user will receive no visual indication of
210    *                 the existence of the accessKey.
211    *                 </p></html>
212    *
213    * @return  the new accessKey value
214    */
215   final public char getAccessKey()
216   {
217     return ComponentUtils.resolveCharacter((Character)getProperty(ACCESS_KEY_KEY));
218   }
219 
220   /**
221    * Sets <html>
222    *  Character used to gain quick access to this link.
223    *               For accessibility reasons, this functionality is not
224    *               supported in screen reader mode.
225    *               <p>
226    *               If the same access key appears in multiple input fields in the
227    *               same page of output, the rendering user agent will cycle among
228    *               the elements accessed by the similar keys. Note that user agents
229    *               are inconsistent about dealing with two links having same access
230    *               key, and so the cycling behavior is dependent on what the user agent
231    *               provides.
232    *               </p><p>
233    *                 This attribute is sometimes referred to as the "mnemonic".
234    *               </p><p>
235    *                 The character specified by this attribute
236    *                 <strong>must</strong> exist in the
237    *                 <code>Text</code> attribute of this Link instance.
238    *                 If it does not, the user will receive no visual indication of
239    *                 the existence of the accessKey.
240    *                 </p></html>
241    * 
242    * @param accessKey  the new accessKey value
243    */
244   final public void setAccessKey(char accessKey)
245   {
246     setProperty(ACCESS_KEY_KEY, Character.valueOf(accessKey));
247   }
248 
249   /**
250    * Gets whether the action should be done through a partial page submit
251    *             or not.
252    *             Default is false: no partial page submit.
253    *
254    * @return  the new partialSubmit value
255    */
256   final public boolean isPartialSubmit()
257   {
258     return ComponentUtils.resolveBoolean(getProperty(PARTIAL_SUBMIT_KEY), false);
259   }
260 
261   /**
262    * Sets whether the action should be done through a partial page submit
263    *             or not.
264    *             Default is false: no partial page submit.
265    * 
266    * @param partialSubmit  the new partialSubmit value
267    */
268   final public void setPartialSubmit(boolean partialSubmit)
269   {
270     setProperty(PARTIAL_SUBMIT_KEY, partialSubmit ? Boolean.TRUE : Boolean.FALSE);
271   }
272 
273   /**
274    * Gets If set to TRUE the component will start blocking user input when the
275    *      action is initiated. The blocking will stop when a response is received
276    *      from the server.
277    *
278    * @return  the new blocking value
279    */
280   final public boolean isBlocking()
281   {
282     return ComponentUtils.resolveBoolean(getProperty(BLOCKING_KEY), false);
283   }
284 
285   /**
286    * Sets If set to TRUE the component will start blocking user input when the
287    *      action is initiated. The blocking will stop when a response is received
288    *      from the server.
289    * 
290    * @param blocking  the new blocking value
291    */
292   final public void setBlocking(boolean blocking)
293   {
294     setProperty(BLOCKING_KEY, blocking ? Boolean.TRUE : Boolean.FALSE);
295   }
296 
297   /**
298    * Gets the CSS styles to use for this component.
299    *
300    * @return  the new inlineStyle value
301    */
302   final public String getInlineStyle()
303   {
304     return ComponentUtils.resolveString(getProperty(INLINE_STYLE_KEY));
305   }
306 
307   /**
308    * Sets the CSS styles to use for this component.
309    * 
310    * @param inlineStyle  the new inlineStyle value
311    */
312   final public void setInlineStyle(String inlineStyle)
313   {
314     setProperty(INLINE_STYLE_KEY, (inlineStyle));
315   }
316 
317   /**
318    * Gets a CSS style class to use for this component.
319    *
320    * @return  the new styleClass value
321    */
322   final public String getStyleClass()
323   {
324     return ComponentUtils.resolveString(getProperty(STYLE_CLASS_KEY));
325   }
326 
327   /**
328    * Sets a CSS style class to use for this component.
329    * 
330    * @param styleClass  the new styleClass value
331    */
332   final public void setStyleClass(String styleClass)
333   {
334     setProperty(STYLE_CLASS_KEY, (styleClass));
335   }
336 
337   /**
338    * Gets The short description of the component. This text is commonly used by user agents to display tooltip help text.
339    *
340    * @return  the new shortDesc value
341    */
342   final public String getShortDesc()
343   {
344     return ComponentUtils.resolveString(getProperty(SHORT_DESC_KEY));
345   }
346 
347   /**
348    * Sets The short description of the component. This text is commonly used by user agents to display tooltip help text.
349    * 
350    * @param shortDesc  the new shortDesc value
351    */
352   final public void setShortDesc(String shortDesc)
353   {
354     setProperty(SHORT_DESC_KEY, (shortDesc));
355   }
356 
357   /**
358    * Gets the IDs of the components that should trigger a partial update.
359    *         <p>
360    *         This component will listen on the trigger components. If one of the
361    *         trigger components receives an event that will cause it to update
362    *         in some way, this component will request to be updated too.</p>
363    *         <p>
364    *         Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
365    *         </p>
366    *         <p>
367    *         Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
368    *         or use multiple colons to move up through the NamingContainer. For example,
369    *         "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
370    *         ":::" will pop out of two naming containers, etc. The search for
371    *         the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
372    *         component with id = commandButton1 after popping out of two naming containers relative to this component.
373    *         To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".</p>
374    *
375    * @return  the new partialTriggers value
376    */
377   final public String[] getPartialTriggers()
378   {
379     return (String[])getProperty(PARTIAL_TRIGGERS_KEY);
380   }
381 
382   /**
383    * Sets the IDs of the components that should trigger a partial update.
384    *         <p>
385    *         This component will listen on the trigger components. If one of the
386    *         trigger components receives an event that will cause it to update
387    *         in some way, this component will request to be updated too.</p>
388    *         <p>
389    *         Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
390    *         </p>
391    *         <p>
392    *         Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
393    *         or use multiple colons to move up through the NamingContainer. For example,
394    *         "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
395    *         ":::" will pop out of two naming containers, etc. The search for
396    *         the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
397    *         component with id = commandButton1 after popping out of two naming containers relative to this component.
398    *         To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".</p>
399    * 
400    * @param partialTriggers  the new partialTriggers value
401    */
402   final public void setPartialTriggers(String[] partialTriggers)
403   {
404     setProperty(PARTIAL_TRIGGERS_KEY, (partialTriggers));
405   }
406 
407   /**
408    * Gets an onclick Javascript handler.
409    *
410    * @return  the new onclick value
411    */
412   final public String getOnclick()
413   {
414     return ComponentUtils.resolveString(getProperty(ONCLICK_KEY));
415   }
416 
417   /**
418    * Sets an onclick Javascript handler.
419    * 
420    * @param onclick  the new onclick value
421    */
422   final public void setOnclick(String onclick)
423   {
424     setProperty(ONCLICK_KEY, (onclick));
425   }
426 
427   /**
428    * Gets an ondblclick Javascript handler.
429    *
430    * @return  the new ondblclick value
431    */
432   final public String getOndblclick()
433   {
434     return ComponentUtils.resolveString(getProperty(ONDBLCLICK_KEY));
435   }
436 
437   /**
438    * Sets an ondblclick Javascript handler.
439    * 
440    * @param ondblclick  the new ondblclick value
441    */
442   final public void setOndblclick(String ondblclick)
443   {
444     setProperty(ONDBLCLICK_KEY, (ondblclick));
445   }
446 
447   /**
448    * Gets an onmousedown Javascript handler.
449    *
450    * @return  the new onmousedown value
451    */
452   final public String getOnmousedown()
453   {
454     return ComponentUtils.resolveString(getProperty(ONMOUSEDOWN_KEY));
455   }
456 
457   /**
458    * Sets an onmousedown Javascript handler.
459    * 
460    * @param onmousedown  the new onmousedown value
461    */
462   final public void setOnmousedown(String onmousedown)
463   {
464     setProperty(ONMOUSEDOWN_KEY, (onmousedown));
465   }
466 
467   /**
468    * Gets an onmouseup Javascript handler.
469    *
470    * @return  the new onmouseup value
471    */
472   final public String getOnmouseup()
473   {
474     return ComponentUtils.resolveString(getProperty(ONMOUSEUP_KEY));
475   }
476 
477   /**
478    * Sets an onmouseup Javascript handler.
479    * 
480    * @param onmouseup  the new onmouseup value
481    */
482   final public void setOnmouseup(String onmouseup)
483   {
484     setProperty(ONMOUSEUP_KEY, (onmouseup));
485   }
486 
487   /**
488    * Gets an onmouseover Javascript handler.
489    *
490    * @return  the new onmouseover value
491    */
492   final public String getOnmouseover()
493   {
494     return ComponentUtils.resolveString(getProperty(ONMOUSEOVER_KEY));
495   }
496 
497   /**
498    * Sets an onmouseover Javascript handler.
499    * 
500    * @param onmouseover  the new onmouseover value
501    */
502   final public void setOnmouseover(String onmouseover)
503   {
504     setProperty(ONMOUSEOVER_KEY, (onmouseover));
505   }
506 
507   /**
508    * Gets an onmousemove Javascript handler.
509    *
510    * @return  the new onmousemove value
511    */
512   final public String getOnmousemove()
513   {
514     return ComponentUtils.resolveString(getProperty(ONMOUSEMOVE_KEY));
515   }
516 
517   /**
518    * Sets an onmousemove Javascript handler.
519    * 
520    * @param onmousemove  the new onmousemove value
521    */
522   final public void setOnmousemove(String onmousemove)
523   {
524     setProperty(ONMOUSEMOVE_KEY, (onmousemove));
525   }
526 
527   /**
528    * Gets an onmouseout Javascript handler.
529    *
530    * @return  the new onmouseout value
531    */
532   final public String getOnmouseout()
533   {
534     return ComponentUtils.resolveString(getProperty(ONMOUSEOUT_KEY));
535   }
536 
537   /**
538    * Sets an onmouseout Javascript handler.
539    * 
540    * @param onmouseout  the new onmouseout value
541    */
542   final public void setOnmouseout(String onmouseout)
543   {
544     setProperty(ONMOUSEOUT_KEY, (onmouseout));
545   }
546 
547   /**
548    * Gets an onkeypress Javascript handler.
549    *
550    * @return  the new onkeypress value
551    */
552   final public String getOnkeypress()
553   {
554     return ComponentUtils.resolveString(getProperty(ONKEYPRESS_KEY));
555   }
556 
557   /**
558    * Sets an onkeypress Javascript handler.
559    * 
560    * @param onkeypress  the new onkeypress value
561    */
562   final public void setOnkeypress(String onkeypress)
563   {
564     setProperty(ONKEYPRESS_KEY, (onkeypress));
565   }
566 
567   /**
568    * Gets an onkeydown Javascript handler.
569    *
570    * @return  the new onkeydown value
571    */
572   final public String getOnkeydown()
573   {
574     return ComponentUtils.resolveString(getProperty(ONKEYDOWN_KEY));
575   }
576 
577   /**
578    * Sets an onkeydown Javascript handler.
579    * 
580    * @param onkeydown  the new onkeydown value
581    */
582   final public void setOnkeydown(String onkeydown)
583   {
584     setProperty(ONKEYDOWN_KEY, (onkeydown));
585   }
586 
587   /**
588    * Gets an onkeyup Javascript handler.
589    *
590    * @return  the new onkeyup value
591    */
592   final public String getOnkeyup()
593   {
594     return ComponentUtils.resolveString(getProperty(ONKEYUP_KEY));
595   }
596 
597   /**
598    * Sets an onkeyup Javascript handler.
599    * 
600    * @param onkeyup  the new onkeyup value
601    */
602   final public void setOnkeyup(String onkeyup)
603   {
604     setProperty(ONKEYUP_KEY, (onkeyup));
605   }
606 
607   /**
608    * Gets the event handler for the component losing the focus.
609    *
610    * @return  the new onblur value
611    */
612   final public String getOnblur()
613   {
614     return ComponentUtils.resolveString(getProperty(ONBLUR_KEY));
615   }
616 
617   /**
618    * Sets the event handler for the component losing the focus.
619    * 
620    * @param onblur  the new onblur value
621    */
622   final public void setOnblur(String onblur)
623   {
624     setProperty(ONBLUR_KEY, (onblur));
625   }
626 
627   /**
628    * Gets the event handler for the component gaining the focus.
629    *
630    * @return  the new onfocus value
631    */
632   final public String getOnfocus()
633   {
634     return ComponentUtils.resolveString(getProperty(ONFOCUS_KEY));
635   }
636 
637   /**
638    * Sets the event handler for the component gaining the focus.
639    * 
640    * @param onfocus  the new onfocus value
641    */
642   final public void setOnfocus(String onfocus)
643   {
644     setProperty(ONFOCUS_KEY, (onfocus));
645   }
646 
647   /**
648    * Gets Indicates whether processes launched by this command should be
649    *         launched in a secondary dialog window. 'useWindow' requires that the "action"
650    *         attribute start with "dialog:". Set useWindow to 'false' for the outcome of
651    *         the action to be targeted to the existing window.
652    *
653    * @return  the new useWindow value
654    */
655   final public boolean isUseWindow()
656   {
657     return ComponentUtils.resolveBoolean(getProperty(USE_WINDOW_KEY), false);
658   }
659 
660   /**
661    * Sets Indicates whether processes launched by this command should be
662    *         launched in a secondary dialog window. 'useWindow' requires that the "action"
663    *         attribute start with "dialog:". Set useWindow to 'false' for the outcome of
664    *         the action to be targeted to the existing window.
665    * 
666    * @param useWindow  the new useWindow value
667    */
668   final public void setUseWindow(boolean useWindow)
669   {
670     setProperty(USE_WINDOW_KEY, useWindow ? Boolean.TRUE : Boolean.FALSE);
671   }
672 
673   /**
674    * Gets Height of the window, if this command is used to launch a window.
675    *
676    * @return  the new windowHeight value
677    */
678   final public int getWindowHeight()
679   {
680     return ComponentUtils.resolveInteger(getProperty(WINDOW_HEIGHT_KEY));
681   }
682 
683   /**
684    * Sets Height of the window, if this command is used to launch a window.
685    * 
686    * @param windowHeight  the new windowHeight value
687    */
688   final public void setWindowHeight(int windowHeight)
689   {
690     setProperty(WINDOW_HEIGHT_KEY, Integer.valueOf(windowHeight));
691   }
692 
693   /**
694    * Gets Width of the window, if this command is used to launch a window.
695    *
696    * @return  the new windowWidth value
697    */
698   final public int getWindowWidth()
699   {
700     return ComponentUtils.resolveInteger(getProperty(WINDOW_WIDTH_KEY));
701   }
702 
703   /**
704    * Sets Width of the window, if this command is used to launch a window.
705    * 
706    * @param windowWidth  the new windowWidth value
707    */
708   final public void setWindowWidth(int windowWidth)
709   {
710     setProperty(WINDOW_WIDTH_KEY, Integer.valueOf(windowWidth));
711   }
712 
713   @Override
714   public String getDefaultEventName()
715   {
716     return "click";
717   }
718 
719   @Override
720   public Collection<String> getEventNames()
721   {
722     return _EVENT_NAMES;
723   }
724 
725   @Override
726   public Map<String, List<ClientBehavior>> getClientBehaviors()
727   {
728     return super.getClientBehaviors();
729   }
730 
731   @Override
732   public void addClientBehavior(
733     String         eventName,
734     ClientBehavior behavior)
735   {
736     super.addClientBehavior(eventName, behavior);
737   }
738 
739   @Override
740   public String getFamily()
741   {
742     return COMPONENT_FAMILY;
743   }
744 
745   @Override
746   protected FacesBean.Type getBeanType()
747   {
748     return TYPE;
749   }
750 
751   /**
752    * Construct an instance of the CoreCommandLink.
753    */
754   protected CoreCommandLink(
755     String rendererType
756     )
757   {
758     super(rendererType);
759   }
760 
761   static
762   {
763     TYPE.lockAndRegister("org.apache.myfaces.trinidad.Command","org.apache.myfaces.trinidad.Link");
764   }
765 }