This article is part of the "RichFaces 4.0 Components Development Kit" description.
Generator expects next structure for Java classes and files :
<prefix>.component.Abstract<Name> - the optional abstract superclass for the JSF component. To avoid manual writing for EL-enabled getters/setters, saveState/restoreState methods, listener-related methods and so on, developer may create that abstract class from which generator should create the implementation.
<prefix>.component.UI<Name> - Base component class. That class might be generated from an abstract superclass by the CDK or created by the developer. It makes sense to have concrete class that can be created by JSF Application or 'new' operatir in the backing bean.
<prefix>.component.<markup>.<Markup><RendererName> - renderer-specific generated component. In addition to the base UI Component class it contains Java Bean getter/setter methods for renderer-specific attributes. This class is generated by the CDK.
<prefix>.<Name> - JSF UI component-type. May be provided in the configuration or calculated from the component class name.
<prefix>.<Name> - JSF component family. That is common family name for the base UI... component and all renderer-specific component instances. May be provided in the configuration or calculated from the component class name.
<prefix>.<Markup><RendererName> - renderer-specific JSF component-type. May be provided in the configuration or calculated from the renderer name.
<prefix>.renderkit.<RendererName>RendererBase - optional Renderer superclass that implements methods required by the generated renderer. Created by the component developer.
<prefix>.renderkit.<markup>.<RendererName>Renderer – The component renderer. That class might be created by the component developer or generated from template by CDK.
<prefix>.<RendererName> - JSF renderer-type. Can be provided in the configuration or calculated from the renderer name.
<prefix>.<markup>.<RendererName>.xml - template for generated renderer class. Provided by the component developer.
<prefix>.view.jsp.<RendererName>Tag - JSP tag class.
- <prefix>.view.facelets.Abstract<RendererName>Handler - base classes for generated handlers.
<prefix>.view.facelets.<RendererName>Handler - facelets tag handler class.
<renderername> - JSP/facelets tag name.
For components that uses JSF events :
<prefix>.event.<Event>Event - event class. Provided by the component developer.
<prefix>.event.<Event>Listener - Event listener interface. Can be generated by CDK
process<Event> - event processing method name in listener interface.
<prefix>.event.<Event>Source - Interface for event processing component that contains methods 'add<Event>Listener(<Event>Listener listener)', 'remove<Event>Listener(<Event>Listener listener)'.
<prefix>.event.<Event>ListenerWrapper - wrapper class that is used to bind listener's EL-expression to user's beans.
<prefix>.taglib.<Event>ListenerTag - JSP tag class that creates listener instance. Parent component have to implement <Event>Source interface.
<prefix>.taglib.<Event>ListenerTagHandler - Facelets tag class that creates listener instance.
Definitions that are used in this structure (uppercase character means Java names notation. If the component name is "foo" then <name> means "foo", and <Name> means "Foo"):
<prefix> is a common library name (for example, it is 'javax.faces' for JSF standard components).
<name> is a base component name (for javax.faces.component.UIInput component <name> is "input").
- <markup> is a render-kit generated content name, "html" for HTML/XHTML pages, "wml" for mobile content etc.
- <rendererName> - is a renderer name for concrete visual component, e.g. "commandButton" , "panelGroup".
- <event> is a Faces Event name ("action" for all ActionSource components).