1
2
3
4 package org.rcfaces.core.internal.taglib;
5
6 import javax.faces.FacesException;
7 import javax.faces.component.UIComponent;
8
9 import org.apache.commons.logging.Log;
10 import org.apache.commons.logging.LogFactory;
11 import org.rcfaces.core.component.capability.IDoubleClickEventCapability;
12 import org.rcfaces.core.event.IDoubleClickListener;
13
14
15
16
17
18
19 public class DoubleClickListenerTag extends AbstractListenerTag {
20
21 private static final String REVISION = "$Revision: 1.1 $";
22
23 private static final long serialVersionUID = -7064892566257135920L;
24
25 private static final Log LOG = LogFactory
26 .getLog(DoubleClickListenerTag.class);
27
28 protected void addListener(Object listener, UIComponent component) {
29 addDoubleClickListener(listener, component);
30 }
31
32 public static void addDoubleClickListener(Object listener,
33 UIComponent component) {
34 if ((listener instanceof IDoubleClickListener) == false) {
35 throw new FacesException("Listener '" + listener
36 + "' must implement IDoubleClickListener.");
37 }
38
39 IDoubleClickListener doubleClickListener = (IDoubleClickListener) listener;
40
41 if ((component instanceof IDoubleClickEventCapability) == false) {
42 LOG.error("Component '" + component.getId()
43 + "' does not implement IDoubleClickEventCapability.");
44 return;
45 }
46
47 ((IDoubleClickEventCapability) component)
48 .addDoubleClickListener(doubleClickListener);
49
50 if (LOG.isDebugEnabled()) {
51 LOG.debug("Add doubleClickListener '" + doubleClickListener
52 + "' to component '" + component.getId() + "'.");
53 }
54 }
55
56 protected String getListenerName() {
57 return "doubleClick";
58 }
59
60 }