Author: alexsmirnov
Date: 2010-05-27 20:56:58 -0400 (Thu, 27 May 2010)
New Revision: 17334
Added:
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/listenerTagHandler.ftl
root/cdk/trunk/plugins/maven-cdk-plugin/.checkstyle
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/generate/java/taghandler/TagHandlerModule.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/generate/taglib/TaglibGeneratorVisitor.java
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/_attributes_import.ftl
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/_event_source_accessors.ftl
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/component.ftl
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
OPEN - issue RF-8568: Improve FreeMarker generator.
https://jira.jboss.org/browse/RF-8568
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-28
00:44:13 UTC (rev 17333)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/apt/processors/ComponentProcessor.java 2010-05-28
00:56:58 UTC (rev 17334)
@@ -59,9 +59,9 @@
* That class process component-related annotations such as {@link
org.richfaces.cdk.annotations.JsfComponent} or
* {@link javax.faces.component.FacesComponent} and stores information in model.
* </p>
- *
+ *
* @author asmirnov(a)exadel.com
- *
+ *
*/
public class ComponentProcessor extends ProcessorBase implements CdkAnnotationProcessor
{
@@ -95,18 +95,21 @@
subcomponentModel.setGenerate(!Strings.isEmpty(subcomponent.generate()));
setComponentProperties(null, subcomponentModel, subAnnotation);
library.getComponents().add(subcomponentModel);
- }
+ }
}
/**
- * <p class="changed_added_4_0">process annotation and set component
model properties.</p>
+ * <p class="changed_added_4_0">
+ * process annotation and set component model properties.
+ * </p>
+ *
* @param componentElement
* @param component
* @param annotation
* @throws CdkException
*/
- void setComponentProperties(TypeElement componentElement, ComponentModel component,
- JsfComponent annotation) throws CdkException {
+ void setComponentProperties(TypeElement componentElement, ComponentModel component,
JsfComponent annotation)
+ throws CdkException {
setComponentType(componentElement, component, annotation.type());
setComponeneFamily(componentElement, component, annotation.family());
@@ -115,7 +118,7 @@
processFacets(componentElement, component, annotation);
processAttributes(componentElement, component, annotation);
-
+ processEvents(componentElement, component, annotation);
for (Tag tag : annotation.tag()) {
setTagInfo(tag, component);
}
@@ -184,8 +187,7 @@
final void processFacets(TypeElement componentElement, ComponentModel component,
JsfComponent annotation) {
if (null != componentElement) {
SourceUtils sourceUtils = getSourceUtils();
- Set<BeanProperty> properties =
- sourceUtils.getBeanPropertiesAnnotatedWith(Facet.class,
componentElement);
+ Set<BeanProperty> properties =
sourceUtils.getBeanPropertiesAnnotatedWith(Facet.class, componentElement);
// TODO - encapsulate attribute builder into utility class.
for (BeanProperty beanProperty : properties) {
@@ -231,20 +233,27 @@
}
final void processEvents(TypeElement componentElement, ComponentModel component,
JsfComponent annotation) {
- Class<? extends FacesEvent>[] fires = annotation.fires();
+ try {
+ Class<? extends FacesEvent>[] fires = annotation.fires();
- for (Class<? extends FacesEvent> event : fires) {
- try {
-// component.addEvent(event.value().getName());
- } catch (MirroredTypesException mirror) {
- for (TypeMirror eventType : mirror.getTypeMirrors()) {
- component.addEvent(eventType.toString());
- // TODO - check does component already implement eventSource
interface
+ for (Class<? extends FacesEvent> event : fires) {
+ try {
+ component.addEvent(event.getName());
+ } catch (MirroredTypesException mirror) {
+ for (TypeMirror eventType : mirror.getTypeMirrors()) {
+ component.addEvent(eventType.toString());
+ }
+ } catch (MirroredTypeException mirror) {
+ component.addEvent(mirror.getTypeMirror().toString());
}
- } catch (MirroredTypeException mirror) {
- component.addEvent(mirror.getTypeMirror().toString());
+
}
-
+ } catch (MirroredTypesException mirror) {
+ for (TypeMirror eventType : mirror.getTypeMirrors()) {
+ component.addEvent(eventType.toString());
+ }
+ } catch (MirroredTypeException mirror) {
+ component.addEvent(mirror.getTypeMirror().toString());
}
}
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/generate/java/taghandler/TagHandlerModule.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/generate/java/taghandler/TagHandlerModule.java 2010-05-28
00:44:13 UTC (rev 17333)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/generate/java/taghandler/TagHandlerModule.java 2010-05-28
00:56:58 UTC (rev 17334)
@@ -35,7 +35,10 @@
@Override
protected void configure() {
- Multibinder.newSetBinder(binder(), CdkWriter.class)
+ Multibinder<CdkWriter> multibinder = Multibinder.newSetBinder(binder(),
CdkWriter.class);
+ multibinder
.addBinding().to(TagHandlerWriter.class);
+ multibinder
+ .addBinding().to(ListenerTagHandlerGenerator.class);
}
}
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/generate/taglib/TaglibGeneratorVisitor.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/generate/taglib/TaglibGeneratorVisitor.java 2010-05-28
00:44:13 UTC (rev 17333)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/generate/taglib/TaglibGeneratorVisitor.java 2010-05-28
00:56:58 UTC (rev 17334)
@@ -32,6 +32,7 @@
import org.richfaces.cdk.model.ComponentModel;
import org.richfaces.cdk.model.ConverterModel;
import org.richfaces.cdk.model.DescriptionGroup;
+import org.richfaces.cdk.model.EventModel;
import org.richfaces.cdk.model.FunctionModel;
import org.richfaces.cdk.model.PropertyBase;
import org.richfaces.cdk.model.SimpleVisitor;
@@ -250,6 +251,16 @@
return null;
}
+ @Override
+ public Boolean visitEvent(EventModel model, ComponentLibrary param) {
+ for (TagModel tagModel : model.getTags()) {
+ if (TagType.Facelets.equals(tagModel.getType())) {
+ Element tag = createTag(tagModel.getName());
+ addTagHandler(tag, tagModel);
+ }
+ }
+ return null;
+ }
/**
* <p class="changed_added_4_0">Add common description
elements.</p>
* @param parant
Modified:
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/_attributes_import.ftl
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/_attributes_import.ftl 2010-05-28
00:44:13 UTC (rev 17333)
+++
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/_attributes_import.ftl 2010-05-28
00:56:58 UTC (rev 17334)
@@ -1,2 +1,2 @@
-<#list importClasses as imp>import ${imp};
+<#list importClasses as imp>import ${imp.name};
</#list>
\ No newline at end of file
Modified:
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/_event_source_accessors.ftl
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/_event_source_accessors.ftl 2010-05-28
00:44:13 UTC (rev 17333)
+++
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/_event_source_accessors.ftl 2010-05-28
00:56:58 UTC (rev 17334)
@@ -1,4 +1,4 @@
-<#assign listener=event.listenerInterface.shortName>
+<#assign listener=event.listenerInterface.simpleName>
public void add${listener}(${listener} listener) {
addFacesListener(listener);
Modified:
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/component.ftl
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/component.ftl 2010-05-28
00:44:13 UTC (rev 17333)
+++
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/component.ftl 2010-05-28
00:56:58 UTC (rev 17334)
@@ -27,7 +27,7 @@
**/
@Generated({"RichFaces CDK", "4.0.0-SNAPSHOT"})
public class ${targetClass.simpleName} extends ${baseClass.simpleName}
- <#if (implemented?size > 0)>implements <@concat seq=implemented ;
interface>${interface}</@concat></#if> {
+ <#if (implemented?size > 0)>implements <@concat seq=implemented ;
interface>${interface.simpleName}</@concat></#if> {
public static final String COMPONENT_TYPE="${type}";
Added:
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/listenerTagHandler.ftl
===================================================================
Added: root/cdk/trunk/plugins/maven-cdk-plugin/.checkstyle
===================================================================
--- root/cdk/trunk/plugins/maven-cdk-plugin/.checkstyle (rev 0)
+++ root/cdk/trunk/plugins/maven-cdk-plugin/.checkstyle 2010-05-28 00:56:58 UTC (rev
17334)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<fileset-config file-format-version="1.2.0"
simple-config="false">
+ <fileset name="java sources" enabled="true"
check-config-name="RichFaces" local="false">
+ <file-match-pattern match-pattern="src/main/java"
include-pattern="true"/>
+ </fileset>
+ <filter name="NonSrcDirs" enabled="true"/>
+</fileset-config>
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-28
00:44:13 UTC (rev 17333)
+++
root/cdk/trunk/plugins/maven-cdk-plugin/src/it/annotated-component/src/main/java/org/richfaces/cdk/test/event/TestEvent.java 2010-05-28
00:56:58 UTC (rev 17334)
@@ -37,7 +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"))
+@Event(listener = TestListener.class, source =
"org.richfaces.cdk.test.event.TestSource", tag = @Tag(name =
"testListener"))
public class TestEvent extends FacesEvent {
/**