Author: alexsmirnov
Date: 2010-08-12 18:37:47 -0400 (Thu, 12 Aug 2010)
New Revision: 18604
Modified:
branches/cdk-8570/cdk/generator/src/main/java/org/richfaces/cdk/apt/processors/ComponentProcessor.java
branches/cdk-8570/cdk/generator/src/main/java/org/richfaces/cdk/apt/processors/RendererProcessor.java
branches/cdk-8570/cdk/generator/src/main/java/org/richfaces/cdk/model/RendererModel.java
branches/cdk-8570/cdk/generator/src/main/java/org/richfaces/cdk/model/validator/NamingConventionsCallback.java
branches/cdk-8570/cdk/generator/src/main/java/org/richfaces/cdk/model/validator/ValidatorImpl.java
Log:
CODING IN PROGRESS - issue RF-8909: CDK: renderer-type is not written into .taglib.xml
https://jira.jboss.org/browse/RF-8909
Modified:
branches/cdk-8570/cdk/generator/src/main/java/org/richfaces/cdk/apt/processors/ComponentProcessor.java
===================================================================
---
branches/cdk-8570/cdk/generator/src/main/java/org/richfaces/cdk/apt/processors/ComponentProcessor.java 2010-08-12
22:24:42 UTC (rev 18603)
+++
branches/cdk-8570/cdk/generator/src/main/java/org/richfaces/cdk/apt/processors/ComponentProcessor.java 2010-08-12
22:37:47 UTC (rev 18604)
@@ -126,7 +126,12 @@
}
private void setRendererType(ComponentModel component, JsfRenderer jsfRenderer) {
- component.setRendererType(FacesId.parseId(jsfRenderer.type()));
+ if(!Strings.isEmpty(jsfRenderer.type())){
+ component.setRendererType(FacesId.parseId(jsfRenderer.type()));
+ }
+ if(!Strings.isEmpty(jsfRenderer.template())){
+
+ }
}
private void processAttributes(TypeElement componentElement, ComponentModel
component, JsfComponent annotation) {
Modified:
branches/cdk-8570/cdk/generator/src/main/java/org/richfaces/cdk/apt/processors/RendererProcessor.java
===================================================================
---
branches/cdk-8570/cdk/generator/src/main/java/org/richfaces/cdk/apt/processors/RendererProcessor.java 2010-08-12
22:24:42 UTC (rev 18603)
+++
branches/cdk-8570/cdk/generator/src/main/java/org/richfaces/cdk/apt/processors/RendererProcessor.java 2010-08-12
22:37:47 UTC (rev 18604)
@@ -34,6 +34,7 @@
import javax.lang.model.type.TypeMirror;
import org.richfaces.cdk.FileManager;
+import org.richfaces.cdk.Logger;
import org.richfaces.cdk.Source;
import org.richfaces.cdk.Sources;
import org.richfaces.cdk.annotations.JsfComponent;
@@ -57,6 +58,9 @@
private static final String COMPONENT_FAMILY = "COMPONENT_FAMILY";
private static final String RENDERER_TYPE = "RENDERER_TYPE";
+
+ @Inject
+ private Logger log;
@Inject
@Source(Sources.RENDERER_TEMPLATES)
@@ -72,13 +76,6 @@
addToRenderKit(annotation, library, rendererModel);
-/* ComponentModel componentModel =
library.getComponentModel(rendererModel.getFamily());
- if (componentModel != null) {
- componentModel.getRenderers().add(rendererModel);
- } else {
- System.out.println("For renderer with type (" +
rendererModel.getType() + ") and family ("
- + rendererModel.getFamily() + ") comopnent was not
found");
- }*/
}
public RendererModel process(TypeElement rendererElement, JsfRenderer annotation,
ComponentLibrary library) {
@@ -87,25 +84,15 @@
setClassNames(rendererElement, rendererModel, null);
setRendererType(rendererElement, rendererModel, annotation);
- setComponentType(rendererModel);
setComponentFamily(rendererElement, rendererModel, annotation);
setDescription(rendererModel, annotation.description(),
getDocComment(rendererElement));
setTemplate(rendererModel, annotation);
-// processFacets(componentElement, renderer);
-// processEvents(componentElement, renderer);
- // TODO - process renderers ( @JsfRenderer and @RendererTemplate attribute.
// TODO - process @Test annotations.
-// processAttributes(componentElement, component);
return rendererModel;
}
- public RendererModel process(JsfRenderer renderer, ComponentLibrary library) {
- RendererModel rendererModel = new RendererModel();
- return rendererModel;
- }
-
protected void setClassNames(TypeElement componentElement, RendererModel
modelElement, String generatedClass) {
if (componentElement.getModifiers().contains(Modifier.ABSTRACT) ||
!Strings.isEmpty(generatedClass)) {
@@ -125,10 +112,6 @@
}
- private void setComponentType(RendererModel rendererModel) {
-// getNamingConventions().inferComponentType(rendererModel.getFamily());
- }
-
private void addToRenderKit(JsfRenderer annotation, ComponentLibrary library,
RendererModel rendererModel) {
String renderKitId = annotation.renderKitId();
if (Strings.isEmpty(renderKitId)) {
@@ -141,21 +124,18 @@
String template = annotation.template();
if (!Strings.isEmpty(template)) {
rendererModel.setTemplatePath(template);
-
// TODO - add template to source list to process it in appropriate builder.
- processRendererTemplate(rendererModel);
+ // processRendererTemplate(rendererModel);
}
}
private void processRendererTemplate(RendererModel renderer) {
String templatePath = renderer.getTemplatePath();
try {
-
File file = sources.getFile(templatePath);
templateParser.build(file, renderer);
} catch (FileNotFoundException e) {
- // TODO log
- e.printStackTrace();
+ log.error("Template file not found", e);
}
}
Modified:
branches/cdk-8570/cdk/generator/src/main/java/org/richfaces/cdk/model/RendererModel.java
===================================================================
---
branches/cdk-8570/cdk/generator/src/main/java/org/richfaces/cdk/model/RendererModel.java 2010-08-12
22:24:42 UTC (rev 18603)
+++
branches/cdk-8570/cdk/generator/src/main/java/org/richfaces/cdk/model/RendererModel.java 2010-08-12
22:37:47 UTC (rev 18604)
@@ -47,8 +47,6 @@
private boolean rendersChildren;
- private TagModel tag;
-
public RendererModel() { }
public RendererModel(FacesId type) {
@@ -89,14 +87,6 @@
this.rendersChildren = rendersChildren;
}
- public TagModel getTag() {
- return this.tag;
- }
-
- public void setTag(TagModel tag) {
- this.tag = tag;
- }
-
public String getTemplatePath() {
return templatePath;
}
Modified:
branches/cdk-8570/cdk/generator/src/main/java/org/richfaces/cdk/model/validator/NamingConventionsCallback.java
===================================================================
---
branches/cdk-8570/cdk/generator/src/main/java/org/richfaces/cdk/model/validator/NamingConventionsCallback.java 2010-08-12
22:24:42 UTC (rev 18603)
+++
branches/cdk-8570/cdk/generator/src/main/java/org/richfaces/cdk/model/validator/NamingConventionsCallback.java 2010-08-12
22:37:47 UTC (rev 18604)
@@ -37,13 +37,13 @@
* @return
* @throws CallbackException
*/
- ClassName inferBaseClass() throws CallbackException;
+ ClassName getDefaultBaseClass() throws CallbackException;
/**
* <p class="changed_added_4_0">Infer default Java class
name.</p>
* @return
* @throws CallbackException
*/
- ClassName inferClass() throws CallbackException;
+ ClassName getDefaultClass() throws CallbackException;
}
\ No newline at end of file
Modified:
branches/cdk-8570/cdk/generator/src/main/java/org/richfaces/cdk/model/validator/ValidatorImpl.java
===================================================================
---
branches/cdk-8570/cdk/generator/src/main/java/org/richfaces/cdk/model/validator/ValidatorImpl.java 2010-08-12
22:24:42 UTC (rev 18603)
+++
branches/cdk-8570/cdk/generator/src/main/java/org/richfaces/cdk/model/validator/ValidatorImpl.java 2010-08-12
22:37:47 UTC (rev 18604)
@@ -28,7 +28,6 @@
import java.util.NoSuchElementException;
import javax.faces.component.UIComponentBase;
-import javax.faces.component.behavior.ClientBehavior;
import javax.faces.component.behavior.ClientBehaviorBase;
import javax.faces.render.Renderer;
import javax.faces.view.facelets.BehaviorHandler;
@@ -116,7 +115,7 @@
String methodName = event.getListenerMethod();
if (null == methodName) {
// TODO infer listener method name.
- methodName="process";
+ methodName = "process";
event.setListenerMethod(methodName);
}
ClassName sourceInterface = event.getSourceInterface();
@@ -176,7 +175,7 @@
@Override
public FacesId inferType() throws CallbackException {
- throw new CallbackException("Cannot infer type for behavior
"+behavior);
+ throw new CallbackException("Cannot infer type for behavior
" + behavior);
}
@Override
@@ -185,13 +184,13 @@
}
@Override
- public ClassName inferBaseClass() throws CallbackException {
+ public ClassName getDefaultBaseClass() throws CallbackException {
return ClassName.get(ClientBehaviorBase.class);
}
@Override
- public ClassName inferClass() throws CallbackException {
- throw new CallbackException("Cannot infer Java class name for
behavior "+behavior);
+ public ClassName getDefaultClass() throws CallbackException {
+ throw new CallbackException("Cannot infer Java class name for
behavior " + behavior);
}
});
for (TagModel tag : behavior.getTags()) {
@@ -214,24 +213,15 @@
// Check type.
verifyTypes(renderer, new NamingConventionsCallback() {
-
+
@Override
public FacesId inferType(ClassName targetClass) {
return namingConventions.inferRendererType(targetClass);
}
-
+
@Override
public FacesId inferType() throws CallbackException {
- FacesId rendererType;
- String templatePath = renderer.getTemplatePath();
- if(null != templatePath){
- rendererType =
namingConventions.inferRendererTypeByTemplatePath(templatePath);
- } else {
- // lookup for renderer-specific component type.
- String componentType = renderer.getComponentType();
- throw new CallbackException("Cannot determine renderer
type");
- }
- return rendererType;
+ throw new CallbackException("Cannot determine renderer
type");
}
@Override
@@ -240,21 +230,26 @@
}
@Override
- public ClassName inferClass() throws CallbackException {
+ public ClassName getDefaultClass() throws CallbackException {
throw new CallbackException("Cannot determine renderer class
name");
}
@Override
- public ClassName inferBaseClass() throws CallbackException {
+ public ClassName getDefaultBaseClass() throws CallbackException {
return ClassName.get(Renderer.class);
}
});
// Check component type.
+ for (ComponentModel component : library.getComponents()) {
+ if(renderer.getId().equals(component.getRendererType())){
+ renderer.getAttributes().addAll(component.getAttributes());
+ renderer.setFamily(component.getFamily());
+ }
+ }
// Check family.
- if(null == renderer.getFamily()){
-//
renderer.setFamily(namingConventions.inferRendererBaseName(renderer.getId()));
+ if (null == renderer.getFamily()) {
+ //
renderer.setFamily(namingConventions.inferRendererBaseName(renderer.getId()));
}
- // Check attributes ( propagate descriptions from renderer-specific component ).
}
protected void verifyComponents(ComponentLibrary library) throws CdkException {
@@ -365,12 +360,12 @@
}
@Override
- public ClassName inferBaseClass() throws CallbackException {
+ public ClassName getDefaultBaseClass() throws CallbackException {
return ClassName.get(UIComponentBase.class);
}
@Override
- public ClassName inferClass() throws CallbackException {
+ public ClassName getDefaultClass() throws CallbackException {
throw new CallbackException("Cannot determine component class
name");
}
@@ -378,7 +373,7 @@
public FacesId inferType() throws CallbackException {
throw new CallbackException("Cannot determine component
type");
}
-
+
}) && null == component.getFamily()) {
// Check family.
component.setFamily(namingConventions.inferUIComponentFamily(component.getId()));
@@ -386,38 +381,44 @@
}
/**
- * <p class="changed_added_4_0">This method virifies type/family
attributes for JSF objects ( components, renderers, validators, converters, behaviors
)</p>
- * @param component object to verify.
- * @param callback callback to corresponding naming conventions.
+ * <p class="changed_added_4_0">
+ * This method virifies type/family attributes for JSF objects ( components,
renderers, validators, converters,
+ * behaviors )
+ * </p>
+ *
+ * @param component
+ * object to verify.
+ * @param callback
+ * callback to corresponding naming conventions.
* @return
*/
protected boolean verifyTypes(FacesComponent component, NamingConventionsCallback
callback) {
// Check JsfComponent type.
try {
- if (null == component.getId()) {
- if (null != component.getTargetClass()) {
- component.setId(callback.inferType(component.getTargetClass()));
- } else if (null != component.getBaseClass()) {
- component.setId(callback.inferType(component.getBaseClass()));
- } else {
- component.setId(callback.inferType());
+ if (null == component.getId()) {
+ if (null != component.getTargetClass()) {
+ component.setId(callback.inferType(component.getTargetClass()));
+ } else if (null != component.getBaseClass()) {
+ component.setId(callback.inferType(component.getBaseClass()));
+ } else {
+ component.setId(callback.inferType());
+ }
}
- }
- // Check classes.
- if (component.isGenerate()) {
- if (null == component.getBaseClass()) {
- component.setBaseClass(callback.inferBaseClass());
- // return;
+ // Check classes.
+ if (component.isGenerate()) {
+ if (null == component.getBaseClass()) {
+ component.setBaseClass(callback.getDefaultBaseClass());
+ // return;
+ }
+ if (null == component.getTargetClass()) {
+ component.setTargetClass(callback.inferClass(component.getId()));
+ }
} else if (null == component.getTargetClass()) {
- component.setTargetClass(callback.inferClass(component.getId()));
+ if (null == component.getBaseClass()) {
+ component.setBaseClass(callback.getDefaultClass());
+ }
+ component.setTargetClass(component.getBaseClass());
}
- } else if (null == component.getTargetClass()) {
- if (null == component.getBaseClass()) {
- component.setBaseClass(callback.inferClass());
- }
- component.setTargetClass(component.getBaseClass());
-
- }
} catch (CallbackException e) {
log.error(e.getMessage());
return false;
@@ -448,9 +449,9 @@
} else if
("javax.el.MethodExpression".equals(attribute.getType().getName())) {
attribute.setBindingAttribute(true);
}
- //if(attribute.isBindingAttribute() && attribute.getSignature().isEmpty()
&& !attribute.isHidden()) {
- // log.error("Signature for method expression attribute
"+attribute.getName()+" has not been set");
- //}
+ // if(attribute.isBindingAttribute() &&
attribute.getSignature().isEmpty() && !attribute.isHidden()) {
+ // log.error("Signature for method expression attribute
"+attribute.getName()+" has not been set");
+ // }
// Check "generate" flag.
if (generatedComponent) {
// TODO Attribute should be only generated if it does not exist or abstract
in the base class.