[richfaces-svn-commits] JBoss Rich Faces SVN: r18604 - in branches/cdk-8570/cdk/generator/src/main/java/org/richfaces/cdk: model and 1 other directories.

richfaces-svn-commits at lists.jboss.org richfaces-svn-commits at lists.jboss.org
Thu Aug 12 18:37:48 EDT 2010


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.



More information about the richfaces-svn-commits mailing list