You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by we...@apache.org on 2009/09/22 12:47:58 UTC

svn commit: r817592 - /myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/RendererImplementationListener.java

Author: werpu
Date: Tue Sep 22 10:47:57 2009
New Revision: 817592

URL: http://svn.apache.org/viewvc?rev=817592&view=rev
Log:
https://issues.apache.org/jira/browse/EXTSCRIPT-18
adding implementations for validators and renderers

Modified:
    myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/RendererImplementationListener.java

Modified: myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/RendererImplementationListener.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/RendererImplementationListener.java?rev=817592&r1=817591&r2=817592&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/RendererImplementationListener.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/RendererImplementationListener.java Tue Sep 22 10:47:57 2009
@@ -23,8 +23,13 @@
 import java.util.Map;
 
 import org.apache.myfaces.scripting.api.AnnotationScanListener;
+import org.apache.myfaces.scripting.core.util.ClassUtils;
 
 import javax.faces.render.FacesRenderer;
+import javax.faces.render.RenderKitFactory;
+import javax.faces.render.RenderKit;
+import javax.faces.render.Renderer;
+import javax.faces.FactoryFinder;
 
 /**
  * @author Werner Punz (latest modification by $Author$)
@@ -97,23 +102,41 @@
         String theDefault = (String) params.get(PAR_RENDERERTYPE);
         String renderKitId = (String) params.get(PAR_RENDERKITID);
 
-
         AnnotationEntry entry = new AnnotationEntry(value, theDefault, renderKitId);
         _alreadyRegistered.put(clazz.getName(), entry);
 
         //getApplication().getResourceBundle(entry.getComponentFamily(), clazz.getName()) ;
+        if (renderKitId == null) {
+            renderKitId = RenderKitFactory.HTML_BASIC_RENDER_KIT;
+        }
+        if (log.isTraceEnabled()) {
+            log.trace("addRenderer(" + renderKitId + ", "
+                      + entry.getComponentFamily() + ", " + entry.getRendererType()
+                      + ", " + clazz.getName() + ")");
+        }
+        RenderKit rk = renderKitFactory().getRenderKit(null,
+                                                       renderKitId);
+        try {
+            rk.addRenderer(entry.getComponentFamily(), entry.getRendererType(), (Renderer) clazz.newInstance());
+        } catch (InstantiationException e) {
+            log.error(e);
+        } catch (IllegalAccessException e) {
+            log.error(e);
+        }
+    }
+
+    private RenderKitFactory renderKitFactory() {
+        return (RenderKitFactory) FactoryFinder.getFactory(FactoryFinder.RENDER_KIT_FACTORY);
     }
 
     @Override
     protected void addEntity(JavaClass clazz, Map<String, Object> params) {
-        String value = getAnnotatedStringParam(params, PAR_FAMILY);
-        String theDefault = getAnnotatedStringParam(params, PAR_RENDERERTYPE);
-        String renderKitId = (String) getAnnotatedStringParam(params, PAR_RENDERKITID);
+        
+        //TODO map this into a compile time thing, we have to compile our source
+        //class referenced and then we can process here
+        //not possible at source scan time :-(
 
-        AnnotationEntry entry = new AnnotationEntry(value, theDefault, renderKitId);
-        _alreadyRegistered.put(clazz.getFullyQualifiedName(), entry);
 
-        //getApplication().addConverter(entry.getComponentFamily(), clazz.getFullyQualifiedName());
     }
 
     @Override
@@ -122,7 +145,6 @@
         String theDefault = (String) params.get(PAR_RENDERERTYPE);
         String renderKitId = (String) params.get(PAR_RENDERKITID);
 
-
         AnnotationEntry entry = new AnnotationEntry(value, theDefault, renderKitId);
 
         AnnotationEntry alreadyRegistered = (AnnotationEntry) _alreadyRegistered.get(clazz.getName());