Author: alexsmirnov
Date: 2010-05-21 20:13:51 -0400 (Fri, 21 May 2010)
New Revision: 17191
Added:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/apt/processors/EventProcessor.java
root/cdk/trunk/plugins/maven-cdk-plugin/src/it/annotated-component/src/main/java/org/richfaces/cdk/test/event/TestListener.java
Modified:
root/cdk/trunk/plugins/annotations/src/main/java/org/richfaces/cdk/annotations/Event.java
root/cdk/trunk/plugins/annotations/src/main/java/org/richfaces/cdk/annotations/JsfComponent.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/apt/AptModule.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/apt/processors/ComponentProcessor.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/apt/processors/JsfSubComponent.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/apt/processors/ProcessorBase.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/EventModel.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/TagModel.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/package-info.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/xmlconfig/model/EventBean.java
root/cdk/trunk/plugins/maven-cdk-plugin/src/it/annotated-component/src/main/java/org/richfaces/cdk/test/component/AbstractTestComponent.java
root/cdk/trunk/plugins/maven-cdk-plugin/src/it/annotated-component/src/main/java/org/richfaces/cdk/test/event/TestEvent.java
Log:
CODING IN PROGRESS - issue RF-7789: Process JSF events.
https://jira.jboss.org/browse/RF-7789
Modified:
root/cdk/trunk/plugins/annotations/src/main/java/org/richfaces/cdk/annotations/Event.java
===================================================================
---
root/cdk/trunk/plugins/annotations/src/main/java/org/richfaces/cdk/annotations/Event.java 2010-05-21
23:49:23 UTC (rev 17190)
+++
root/cdk/trunk/plugins/annotations/src/main/java/org/richfaces/cdk/annotations/Event.java 2010-05-22
00:13:51 UTC (rev 17191)
@@ -30,6 +30,7 @@
import java.lang.annotation.Target;
import javax.faces.event.FacesEvent;
+import javax.faces.event.FacesListener;
/**
* <p class="changed_added_4_0">
@@ -51,26 +52,38 @@
public static final String NAME = "org.richfaces.cdk.annotations.Event";
/**
- * <p class="changed_added_4_0"></p>
- * @return
+ * <p class="changed_added_4_0">
+ * The listener interface class that process annotated event. This is mandatory
parameter.
+ * </p>
+ *
+ * @return name of listener interface
*/
- public Class<? extends FacesEvent> value();
+ public Class<? extends FacesListener> listener();
+
/**
* <p class="changed_added_4_0">
- * Name of the listener interface class.
+ * Name of the class that implements listener interface and wraps binding to the
actual instance or process method.
* </p>
*
* @return name of generated listener interface..
*/
- public String listener() default "";
-
+ public String listenerWrapper() default "";
/**
* <p class="changed_added_4_0">
- * Name of the listener interface class.
+ * Name of the interface class that fires annotated events and accepts its
listeners.
* </p>
*
* @return name of generated source interface..
*/
public String source() default "";
+ /**
+ * <p class="changed_added_4_0">
+ * View Description Language, JSP or Facelets, tags for event listeners, eg
<foo:barListener>.
+ * </p>
+ *
+ * @return
+ */
+ public Tag[] tag() default { @Tag };
+
}
Modified:
root/cdk/trunk/plugins/annotations/src/main/java/org/richfaces/cdk/annotations/JsfComponent.java
===================================================================
---
root/cdk/trunk/plugins/annotations/src/main/java/org/richfaces/cdk/annotations/JsfComponent.java 2010-05-21
23:49:23 UTC (rev 17190)
+++
root/cdk/trunk/plugins/annotations/src/main/java/org/richfaces/cdk/annotations/JsfComponent.java 2010-05-22
00:13:51 UTC (rev 17191)
@@ -28,6 +28,8 @@
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
+import javax.faces.event.FacesEvent;
+
/**
* <p class="changed_added_4_0">
* That annotation marks class as JSF component. The difference with JSF 2.0 @
@@ -132,7 +134,7 @@
*
* @return
*/
- public Event[] fires() default {};
+ public Class<? extends FacesEvent>[] fires() default {};
/**
* <p class="changed_added_4_0">
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/apt/AptModule.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/apt/AptModule.java 2010-05-21
23:49:23 UTC (rev 17190)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/apt/AptModule.java 2010-05-22
00:13:51 UTC (rev 17191)
@@ -34,6 +34,7 @@
import org.richfaces.cdk.apt.processors.ConverterProcessor;
import org.richfaces.cdk.apt.processors.DescriptionProcessor;
import org.richfaces.cdk.apt.processors.DescriptionProcessorImpl;
+import org.richfaces.cdk.apt.processors.EventProcessor;
import org.richfaces.cdk.apt.processors.FunctionProcessor;
import org.richfaces.cdk.apt.processors.RendererProcessor;
import org.richfaces.cdk.apt.processors.TagLibProcessor;
@@ -64,6 +65,7 @@
setBinder.addBinding().to(ValidatorProcessor.class);
setBinder.addBinding().to(TagLibProcessor.class);
setBinder.addBinding().to(FunctionProcessor.class);
+ setBinder.addBinding().to(EventProcessor.class);
bind(Processor.class).to(CdkProcessor.class);
bind(AttributesProcessor.class).to(AttributesProcessorImpl.class);
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/apt/processors/ComponentProcessor.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/apt/processors/ComponentProcessor.java 2010-05-21
23:49:23 UTC (rev 17190)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/apt/processors/ComponentProcessor.java 2010-05-22
00:13:51 UTC (rev 17191)
@@ -28,6 +28,7 @@
import java.util.List;
import java.util.Set;
+import javax.faces.event.FacesEvent;
import javax.lang.model.element.Element;
import javax.lang.model.element.TypeElement;
import javax.lang.model.type.MirroredTypeException;
@@ -231,11 +232,11 @@
}
final void processEvents(TypeElement componentElement, ComponentModel component,
JsfComponent annotation) {
- Event[] fires = annotation.fires();
+ Class<? extends FacesEvent>[] fires = annotation.fires();
- for (Event event : fires) {
+ for (Class<? extends FacesEvent> event : fires) {
try {
- component.addEvent(event.value().getName());
+// component.addEvent(event.value().getName());
} catch (MirroredTypesException mirror) {
for (TypeMirror eventType : mirror.getTypeMirrors()) {
component.addEvent(eventType.toString());
Added:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/apt/processors/EventProcessor.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/apt/processors/EventProcessor.java
(rev 0)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/apt/processors/EventProcessor.java 2010-05-22
00:13:51 UTC (rev 17191)
@@ -0,0 +1,82 @@
+/*
+ * $Id$
+ *
+ * License Agreement.
+ *
+ * Rich Faces - Natural Ajax for Java Server Faces (JSF)
+ *
+ * Copyright (C) 2007 Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package org.richfaces.cdk.apt.processors;
+
+import java.lang.annotation.Annotation;
+
+import javax.lang.model.element.Element;
+import javax.lang.model.element.ElementKind;
+import javax.lang.model.element.TypeElement;
+import javax.lang.model.type.MirroredTypeException;
+
+import org.richfaces.cdk.CdkProcessingException;
+import org.richfaces.cdk.annotations.Event;
+import org.richfaces.cdk.annotations.Tag;
+import org.richfaces.cdk.annotations.TagType;
+import org.richfaces.cdk.model.ClassName;
+import org.richfaces.cdk.model.ComponentLibrary;
+import org.richfaces.cdk.model.EventModel;
+
+/**
+ * <p class="changed_added_4_0">This class processes annotations for
FacesEvents.</p>
+ * @author asmirnov(a)exadel.com
+ *
+ */
+public class EventProcessor extends ProcessorBase implements CdkAnnotationProcessor {
+
+ /* (non-Javadoc)
+ * @see
org.richfaces.cdk.apt.processors.CdkAnnotationProcessor#getProcessedAnnotation()
+ */
+ @Override
+ public Class<? extends Annotation> getProcessedAnnotation() {
+ return Event.class;
+ }
+
+ /* (non-Javadoc)
+ * @see
org.richfaces.cdk.apt.processors.CdkAnnotationProcessor#process(javax.lang.model.element.Element,
org.richfaces.cdk.model.ComponentLibrary)
+ */
+ @Override
+ public void process(Element element, ComponentLibrary library) throws
CdkProcessingException {
+ if (ElementKind.CLASS.equals(element.getKind())) {
+ TypeElement eventType = (TypeElement) element;
+ Event event = eventType.getAnnotation(Event.class);
+ EventModel model = new EventModel();
+ model.setType(ClassName.parseName(eventType.getQualifiedName().toString()));
+ try {
+
model.setListenerInterface(ClassName.parseName(event.listener().toString()));
+ } catch (MirroredTypeException mirror) {
+
model.setListenerInterface(ClassName.parseName(mirror.getTypeMirror().toString()));
+ }
+ model.setSourceInterface(ClassName.parseName(event.source()));
+ model.setListenerWrapper(ClassName.parseName(event.listenerWrapper()));
+ for (Tag tag : event.tag()) {
+ if(!TagType.None.equals(tag.type())){
+ model.getTags().add(processTag(tag));
+ }
+ }
+ library.getEvents().add(model);
+ }
+ }
+
+}
Property changes on:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/apt/processors/EventProcessor.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/apt/processors/JsfSubComponent.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/apt/processors/JsfSubComponent.java 2010-05-21
23:49:23 UTC (rev 17190)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/apt/processors/JsfSubComponent.java 2010-05-22
00:13:51 UTC (rev 17191)
@@ -24,6 +24,8 @@
import java.lang.annotation.Annotation;
+import javax.faces.event.FacesEvent;
+
import org.richfaces.cdk.annotations.Description;
import org.richfaces.cdk.annotations.Event;
import org.richfaces.cdk.annotations.Facet;
@@ -86,9 +88,10 @@
return this.subcomponent.generate();
}
+ @SuppressWarnings("unchecked")
@Override
- public Event[] fires() {
- return new Event[0];
+ public Class<? extends FacesEvent>[] fires() {
+ return new Class[0];
}
@Override
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/apt/processors/ProcessorBase.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/apt/processors/ProcessorBase.java 2010-05-21
23:49:23 UTC (rev 17190)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/apt/processors/ProcessorBase.java 2010-05-22
00:13:51 UTC (rev 17191)
@@ -38,25 +38,26 @@
}
protected void setTagInfo(Tag tag, ModelElementBase model) {
- TagModel tagModel = new TagModel();
if (!TagType.None.equals(tag.type())) {
- String name = tag.name();
- // TODO - move to validator.
- if (Strings.isEmpty(name)) {
- name = getNamingConventions().inferTagName(model.getId());
- }
- tagModel.setName(name);
- tagModel.setType(tag.type());
- tagModel.setTargetClass(ClassName.parseName(tag.handler()));
- tagModel.setBaseClass(ClassName.parseName(tag.baseClass()));
- tagModel.setGenerate(tag.generate());
+ TagModel tagModel = processTag(tag);
model.getTags().add(tagModel);
}
}
+ protected TagModel processTag(Tag tag) {
+ TagModel tagModel = new TagModel();
+ String name = tag.name();
+ tagModel.setName(name);
+ tagModel.setType(tag.type());
+ tagModel.setTargetClass(ClassName.parseName(tag.handler()));
+ tagModel.setBaseClass(ClassName.parseName(tag.baseClass()));
+ tagModel.setGenerate(tag.generate());
+ return tagModel;
+ }
+
protected void setClassNames(TypeElement componentElement, ModelElementBase
modelElement,
String generatedClass) {
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/EventModel.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/EventModel.java 2010-05-21
23:49:23 UTC (rev 17190)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/EventModel.java 2010-05-22
00:13:51 UTC (rev 17191)
@@ -25,6 +25,12 @@
package org.richfaces.cdk.model;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlType;
+
+import org.richfaces.cdk.util.ComparatorUtils;
+
/**
* <p class="changed_added_4_0">That bean represent {@link
javax.faces.event.FacesEvent} subclass that can be fired by
* component.</p>
@@ -33,11 +39,14 @@
*
*/
@SuppressWarnings("serial")
+@XmlType(name = "event-configType", namespace =
ComponentLibrary.CDK_EXTENSIONS_NAMESPACE)
+(a)XmlAccessorType(XmlAccessType.PUBLIC_MEMBER)
public class EventModel implements ModelElement<EventModel> {
private String description;
private ClassName listenerInterface;
+ private ClassName listenerWrapper;
private ClassName sourceInterface;
- private ClassName tagHandler;
+ private final ModelCollection<TagModel> tags =
ModelSet.<TagModel>create();
/**
* <p class="changed_added_4_0"></p>
@@ -111,20 +120,30 @@
/**
* <p class="changed_added_4_0"></p>
- * @return the tagHandler
+ * @return the listenerWrapper
*/
- public ClassName getTagHandler() {
- return tagHandler;
+ @Merge
+ public ClassName getListenerWrapper() {
+ return this.listenerWrapper;
}
/**
* <p class="changed_added_4_0"></p>
- * @param tagHandler the tagHandler to set
+ * @param listenerWrapper the listenerWrapper to set
*/
- public void setTagHandler(ClassName tagHandler) {
- this.tagHandler = tagHandler;
+ public void setListenerWrapper(ClassName listenerWrapper) {
+ this.listenerWrapper = listenerWrapper;
}
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @return the tags
+ */
+ @Merge
+ public ModelCollection<TagModel> getTags() {
+ return this.tags;
+ }
+
@Override
public void merge(EventModel other) {
ComponentLibrary.merge(this, other);
@@ -136,7 +155,7 @@
@Override
public boolean same(EventModel other) {
- return null != getType() && getType().equals(other.getType());
+ return ComparatorUtils.nullSafeEquals(getType(), other.getType());
}
}
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/TagModel.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/TagModel.java 2010-05-21
23:49:23 UTC (rev 17190)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/TagModel.java 2010-05-22
00:13:51 UTC (rev 17191)
@@ -25,6 +25,10 @@
package org.richfaces.cdk.model;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlType;
+
import org.richfaces.cdk.annotations.TagType;
import org.richfaces.cdk.util.ComparatorUtils;
@@ -33,6 +37,8 @@
* @author asmirnov(a)exadel.com
*
*/
+@XmlType(name = "tag-configType", namespace =
ComponentLibrary.CDK_EXTENSIONS_NAMESPACE)
+(a)XmlAccessorType(XmlAccessType.PUBLIC_MEMBER)
public class TagModel implements Named , ModelElement<TagModel> {
private static final long serialVersionUID = 3875718626199223087L;
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/package-info.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/package-info.java 2010-05-21
23:49:23 UTC (rev 17190)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/package-info.java 2010-05-22
00:13:51 UTC (rev 17191)
@@ -22,8 +22,23 @@
namespaceURI = ComponentLibrary.CDK_EXTENSIONS_NAMESPACE),
@javax.xml.bind.annotation.XmlNs(prefix = "",
namespaceURI = ComponentLibrary.FACES_CONFIG_NAMESPACE)})
+@XmlJavaTypeAdapters({
+ @XmlJavaTypeAdapter(type = ClassName.class, value = ClassAdapter.class),
+ @XmlJavaTypeAdapter(type = AttributeModel.class, value = AttributeAdapter.class),
+ @XmlJavaTypeAdapter(type = PropertyModel.class, value = PropertyAdapter.class),
+ @XmlJavaTypeAdapter(type = FacesId.class, value = FacesIdAdapter.class),
+ @XmlJavaTypeAdapter(type = ComponentLibrary.class, value = FacesConfigAdapter.class)
+})
package org.richfaces.cdk.model;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapters;
+import org.richfaces.cdk.xmlconfig.model.AttributeAdapter;
+import org.richfaces.cdk.xmlconfig.model.ClassAdapter;
+import org.richfaces.cdk.xmlconfig.model.FacesConfigAdapter;
+import org.richfaces.cdk.xmlconfig.model.FacesIdAdapter;
+import org.richfaces.cdk.xmlconfig.model.PropertyAdapter;
+
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/xmlconfig/model/EventBean.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/xmlconfig/model/EventBean.java 2010-05-21
23:49:23 UTC (rev 17190)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/xmlconfig/model/EventBean.java 2010-05-22
00:13:51 UTC (rev 17191)
@@ -23,13 +23,18 @@
package org.richfaces.cdk.xmlconfig.model;
+import java.util.List;
+
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import org.richfaces.cdk.model.ClassName;
import org.richfaces.cdk.model.ComponentLibrary;
+import org.richfaces.cdk.model.TagModel;
+import com.google.common.collect.Lists;
+
/**
* <p class="changed_added_4_0"></p>
*
@@ -39,9 +44,10 @@
public class EventBean {
private String description;
private ClassName listenerInterface;
+ private ClassName listenerWrapper;
private ClassName sourceInterface;
- private ClassName tagHandler;
- private String type;
+ private ClassName type;
+ private List<TagModel> tags = Lists.newArrayList();
/**
* <p class="changed_added_4_0"></p>
@@ -49,7 +55,7 @@
* @return the type
*/
@XmlElement(name = "event-class", namespace =
ComponentLibrary.CDK_EXTENSIONS_NAMESPACE)
- public String getType() {
+ public ClassName getType() {
return type;
}
@@ -58,7 +64,7 @@
*
* @param type the type to set
*/
- public void setType(String type) {
+ public void setType(ClassName type) {
this.type = type;
}
@@ -103,6 +109,23 @@
/**
* <p class="changed_added_4_0"></p>
+ * @return the listenerWrapper
+ */
+ @XmlElement(name = "listener-wrapper-class", namespace =
ComponentLibrary.CDK_EXTENSIONS_NAMESPACE)
+ public ClassName getListenerWrapper() {
+ return this.listenerWrapper;
+ }
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @param listenerWrapper the listenerWrapper to set
+ */
+ public void setListenerWrapper(ClassName listenerWrapper) {
+ this.listenerWrapper = listenerWrapper;
+ }
+
+ /**
+ * <p class="changed_added_4_0"></p>
*
* @return the sourceInterface
*/
@@ -123,21 +146,23 @@
/**
* <p class="changed_added_4_0"></p>
+ * @return the tags
+ */
+ /**
+ * <p class="changed_added_4_0"></p>
*
- * @return the tagHandler
+ * @return the tags
*/
- @XmlElement(name = "tag-handler-class", namespace =
ComponentLibrary.CDK_EXTENSIONS_NAMESPACE)
- @XmlJavaTypeAdapter(ClassAdapter.class)
- public ClassName getTagHandler() {
- return tagHandler;
+ @XmlElement(name = "tag", namespace =
ComponentLibrary.CDK_EXTENSIONS_NAMESPACE)
+ public List<TagModel> getTags() {
+ return this.tags;
}
/**
* <p class="changed_added_4_0"></p>
- *
- * @param tagHandler the tagHandler to set
+ * @param tags the tags to set
*/
- public void setTagHandler(ClassName tagHandler) {
- this.tagHandler = tagHandler;
+ public void setTags(List<TagModel> tags) {
+ this.tags = tags;
}
}
Modified:
root/cdk/trunk/plugins/maven-cdk-plugin/src/it/annotated-component/src/main/java/org/richfaces/cdk/test/component/AbstractTestComponent.java
===================================================================
---
root/cdk/trunk/plugins/maven-cdk-plugin/src/it/annotated-component/src/main/java/org/richfaces/cdk/test/component/AbstractTestComponent.java 2010-05-21
23:49:23 UTC (rev 17190)
+++
root/cdk/trunk/plugins/maven-cdk-plugin/src/it/annotated-component/src/main/java/org/richfaces/cdk/test/component/AbstractTestComponent.java 2010-05-22
00:13:51 UTC (rev 17191)
@@ -35,6 +35,7 @@
import org.richfaces.cdk.annotations.JsfRenderer;
import org.richfaces.cdk.annotations.SubComponent;
import org.richfaces.cdk.annotations.Tag;
+import org.richfaces.cdk.test.event.TestEvent;
/**
* <p class="changed_added_4_0">
@@ -49,6 +50,7 @@
description=@Description(displayName="Test
Component",largeIcon="large.gif",smallIcon="spall.png"),
generate="org.richfaces.cdk.test.component.UITestComponent",
facets=@Facet(name="caption"),
+ fires=TestEvent.class,
interfaces=ValueHolder.class,
components={
@SubComponent(type = "org.richfaces.cdk.test.TestHtmlAbbr",
Modified:
root/cdk/trunk/plugins/maven-cdk-plugin/src/it/annotated-component/src/main/java/org/richfaces/cdk/test/event/TestEvent.java
===================================================================
---
root/cdk/trunk/plugins/maven-cdk-plugin/src/it/annotated-component/src/main/java/org/richfaces/cdk/test/event/TestEvent.java 2010-05-21
23:49:23 UTC (rev 17190)
+++
root/cdk/trunk/plugins/maven-cdk-plugin/src/it/annotated-component/src/main/java/org/richfaces/cdk/test/event/TestEvent.java 2010-05-22
00:13:51 UTC (rev 17191)
@@ -27,6 +27,9 @@
import javax.faces.event.FacesEvent;
import javax.faces.event.FacesListener;
+import org.richfaces.cdk.annotations.Event;
+import org.richfaces.cdk.annotations.Tag;
+
/**
* <p class="changed_added_4_0">
* </p>
@@ -34,6 +37,7 @@
* @author asmirnov(a)exadel.com
*
*/
+@Event(listener = TestListener.class, listenerWrapper =
"org.richfaces.cdk.test.event.TestWrapper", source =
"org.richfaces.cdk.test.event.TestSource", tag = @Tag(name =
"testListener"))
public class TestEvent extends FacesEvent {
/**
@@ -59,8 +63,7 @@
*/
@Override
public boolean isAppropriateListener(FacesListener listener) {
- // TODO Auto-generated method stub
- return false;
+ return listener instanceof TestListener;
}
/*
@@ -70,8 +73,10 @@
*/
@Override
public void processListener(FacesListener listener) {
- // TODO Auto-generated method stub
-
+ if (listener instanceof TestListener) {
+ TestListener testListener= (TestListener) listener;
+ testListener.process(this);
+ }
}
}
Added:
root/cdk/trunk/plugins/maven-cdk-plugin/src/it/annotated-component/src/main/java/org/richfaces/cdk/test/event/TestListener.java
===================================================================
---
root/cdk/trunk/plugins/maven-cdk-plugin/src/it/annotated-component/src/main/java/org/richfaces/cdk/test/event/TestListener.java
(rev 0)
+++
root/cdk/trunk/plugins/maven-cdk-plugin/src/it/annotated-component/src/main/java/org/richfaces/cdk/test/event/TestListener.java 2010-05-22
00:13:51 UTC (rev 17191)
@@ -0,0 +1,37 @@
+/*
+ * $Id$
+ *
+ * License Agreement.
+ *
+ * Rich Faces - Natural Ajax for Java Server Faces (JSF)
+ *
+ * Copyright (C) 2007 Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package org.richfaces.cdk.test.event;
+
+import javax.faces.event.FacesListener;
+
+/**
+ * <p class="changed_added_4_0"></p>
+ * @author asmirnov(a)exadel.com
+ *
+ */
+public interface TestListener extends FacesListener {
+
+ public void process(TestEvent event);
+
+}
Property changes on:
root/cdk/trunk/plugins/maven-cdk-plugin/src/it/annotated-component/src/main/java/org/richfaces/cdk/test/event/TestListener.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain