hi, i'm creating a custom renderer for a
org.apache.myfaces.trinidad.component.core.output.CoreMessage component
(aka, a <tr:message /> component), the custom renderer uses javascript
to simulate a small balloon message box. After searching in the source
code, i've found that the default renderer for the CoreMessage is the
org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.MessageRenderer, so i 
created a copy of it and renamed to my renderer class name, this way i could 
test the tag handling before plugin mine own renderer

This is the code that registers the renderer in my faces-config.xml
file. 

<render-kit>
        <render-kit-class>
org.apache.myfaces.trinidadinternal.renderkit.core.CoreRenderKit
        </render-kit-class>
        <renderer>
                <component-family>
                        org.apache.myfaces.trinidad.Message
                </component-family>
                <renderer-type>
                        org.apache.myfaces.trinidad.CoreMessage
                </renderer-type>
                <renderer-class>
gob.sudeban.util.jsf.custom.renderers.MessageBalloonRenderer
                </renderer-class>
        </renderer>
</render-kit>

This is the component tag from my tld file:
        <tag>
            <name>balloon-message</name>
<tag-class>gob.sudeban.util.jsf.custom.tags.BalloonMessageTag</tag-class>
                ...

The same atributes for the message tag from the tr.tld file in
trinidad-impl-1.0.6.jar
                ...
        </tag>


The class gob.sudeban.util.jsf.custom.tags.BalloonMessageTag is also a
renamed copy of
org.apache.myfaces.trinidadinternal.taglib.core.output.CoreMessageTag 

This is the jsp file i use to test the component:

<?xml version="1.0" encoding="UTF-8" ?>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsf/html"; prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core"; prefix="f"%>
<%@ taglib uri="http://myfaces.apache.org/trinidad"; prefix="tr" %>
<%@ taglib uri="http://myfaces.apache.org/trinidad/html"; prefix="trh" %>
<%@ taglib uri="http://sudeban.gob.ve/jsf/component/tags";
prefix="sudeban" %>

<f:view>

<trh:head>
</trh:head>

<trh:body>
        <tr:form>
                <tr:panelFormLayout >
                        <sudeban:balloon-message message="This is a message" />
                </tr:panelFormLayout>
        </tr:form>
</trh:body>

When i test the component i get the following:

(HtmlRenderKitImpl.java:79) Unsupported component-family/renderer-type:
org.apache.myfaces.trinidad.Message/gob.sudeban.util.jsf.custom.renderers.MessageBalloonRenderer
19-feb-2008 16:30:22
org.apache.myfaces.trinidadinternal.renderkit.RenderKitBase getRenderer
WARNING: Renderer
'gob.sudeban.util.jsf.custom.renderers.MessageBalloonRenderer' not found
for component family 'org.apache.myfaces.trinidad.Message'
19-feb-2008 16:30:22
org.apache.myfaces.trinidad.component.UIXComponentBase _getRendererImpl
WARNING: Could not find renderer for CoreMessage[UIXFacesBeanImpl,
id=_idJsp4] rendererType =
gob.sudeban.util.jsf.custom.renderers.MessageBalloonRenderer
(UIComponentTag.java:500) Exited encodeEnd for client-Id: _idJsp1
19-feb-2008 16:30:22
org.apache.myfaces.trinidadinternal.renderkit.core.CoreRenderKit
encodeFinally
WARNING: No RenderingContext available
19-feb-2008 16:30:22
org.apache.myfaces.trinidadinternal.renderkit.core.CoreRenderKit
encodeFinally
WARNING: No RenderingContext available

And anything get rendered... 

What am i doing wrong? It's possible to register another render for a
core component like this?

Any help would be appreciated

(PS: Please excuse my english)

Reply via email to