All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.jsftoolkit.doc.ComponentInfo.wiki.txt,v Maven / Gradle / Ivy

head	1.14;
access;
symbols;
locks
	noah:1.14; strict;
comment	@# @;


1.14
date	2007.04.24.05.35.31;	author noah;	state Exp;
branches;
next	1.13;

1.13
date	2007.04.22.04.02.48;	author noah;	state Exp;
branches;
next	1.12;

1.12
date	2007.04.22.03.43.58;	author noah;	state Exp;
branches;
next	1.11;

1.11
date	2007.04.22.03.33.46;	author noah;	state Exp;
branches;
next	1.10;

1.10
date	2007.04.10.16.21.29;	author noah;	state Exp;
branches;
next	1.9;

1.9
date	2007.04.08.22.58.31;	author noah;	state Exp;
branches;
next	1.8;

1.8
date	2007.04.07.22.55.28;	author noah;	state Exp;
branches;
next	1.7;

1.7
date	2007.04.07.22.52.07;	author noah;	state Exp;
branches;
next	1.6;

1.6
date	2007.04.07.16.07.26;	author noah;	state Exp;
branches;
next	1.5;

1.5
date	2007.04.07.05.21.48;	author noah;	state Exp;
branches;
next	1.4;

1.4
date	2007.04.07.04.43.24;	author noah;	state Exp;
branches;
next	1.3;

1.3
date	2007.04.05.18.42.27;	author noah;	state Exp;
branches;
next	1.2;

1.2
date	2007.04.05.17.12.06;	author noah;	state Exp;
branches;
next	1.1;

1.1
date	2007.04.05.17.07.50;	author noah;	state Exp;
branches;
next	;


desc
@Automatically Versioned Wiki File
@


1.14
log
@Automatic Check-In of Wiki File
@
text
@== Specifying Component Metadata ==

There are two formats that you can use to specify component metadata.  Both approaches will require that related classes (super classes, property classes, imports, and other dependencies) be compiled and in the class path.  The code generator needs to reflect on these classes to fill in information about your component.

In the following table, all constants are of class ^String^ unless otherwise noted.
{| |   |class="row_label" ! Constant !! XPath !! Default Value ! |- ! Class Name !class="row_label" | CLASS_NAME || /component/@@className || '''''required''''' | |- ! Package !class="row_label" | PACKAGE || /component/@@package || '''''required''''' | |- ! Component Type !class="row_label" | COMPONENT_TYPE || /component/@@type || '''''required''''' | |- ! Component Family !class="row_label" | COMPONENT_FAMILY || /component/@@family || '''''required''''' | |- ! Default Renderer Type !class="row_label" | DEFAULT_RENDERER_TYPE || /component/@@rendererType || '''''required''''' | |- ! Component Super Class !class="row_label" | SUPER_CLASS
(^Class<? extends UIComponent>^) || /component/@@superClass || ^UIComponentBase^ | |- ! Is component abstract? !class="row_label" | ABSTRACT (^boolean^) || /component/@@abstract || ''false'' | |- ! Implemented Interfaces !class="row_label" | IMPLEMENTS (^Class[]^) || /component/interface || '''none''' | |- ! Required Imports !class="row_label" | IMPORTS (^Class[]^) || /component/import || see [#imports imports] below| |- ! Extra Constants !class="row_label" | Non-Reserved String Constants are passed through. || /component/constant || '''none''' | |- ! Extra Properties !class="row_label" | Any constants of type ^PropertyInfo^ || /component/property || '''none''' (See [[HtmlRenderer]]) | |- ! Renderer Package !class="row_label" | RENDERER_PACKAGE || /component/renderer/@@package || The component's package | |- ! Renderer Class Name !class="row_label" | RENDERER_CLASS_NAME || /component/renderer/@@className || 'Html' + Component's class name + 'Renderer' | |- ! Is renderer abstract? !class="row_label" | RENDERER_ABSTRACT (^boolean^) || /component/renderer/@@abstract || ''false'' | |- ! [[HtmlRender]] template !class="row_label" | TEMPLATE || /component/renderer/@@template || '''''required''''' | |- ! Head Template !class="row_label" | HEAD_TEMPLATE || /component/renderer/@@headTemplate || '-head' appended to the name part of template. e.g. 'MyComponent-head.xhtml' | |- ! Template encoding !class="row_label" | TEMPLATE_ENCODING || /component/@@templateEncoding || UTF-8 | |- ! Resources (Scripts & CSS) !class="row_label" | INCLUDES (^ResourceInfo[]^) || /component/renderer/resource || '''none''' (see [[RequiresResources]]) | |- ! Renderer Interfaces !class="row_label" | RENDERER_IMPLEMENTS (^Class[]^) || /component/renderer/interface || '''none''' (Always implements [[RequiresResources]]) | |- ! Render-Only Attributes !class="row_label" | RENDER_ATTRIBS (^String[]^) || /component/renderer/attribute || '''none''' (See [[HtmlRenderer]]) | |- ! faces-config.xml to update !class="row_label" | FACES_CONFIG || /component/config/@@facesConfig || '''none''' | |- ! Taglib.xml to update !class="row_label" | TAGLIB_XML || /component/config/@@taglibXml || '''none''' | |- ! .tld file to update !class="row_label" | TLD || /component/config/@@tldFile || '''none''' | |- ! Class to register in config files. !class="row_label" | REGISTER_CLASS || /component/config/@@registerClass || The generated component class. (See [[ConfigurationUpdater]]) | |- ! Class to register as the renderer. !class="row_label" | REGISTER_RENDERER || /component/config/@@registerRenderer || The generated renderer class. (See [[ConfigurationUpdater]]) | |- ! TLD Short Name !class="row_label" | SHORT_NAME || /component/config/@@libraryShortName || the second part of the component package name | |- ! Namespace/URI !class="row_label" | NAMESPACE || /component/config/@@namespace || 1st 3 parts of the package name reversed (as the domain name) + '/components' | |- ! Tag name !class="row_label" | TAG_NAME || /component/config/@@tagName || Component class name, 1st letter to lowercase. | |- ! Tag Super Class !class="row_label" | TAG_SUPER
(^Class<? extends UIComponentELTag>^) || /component/tag/@@superClass || '''Must''' be a ''subclass'' of ^UIComponentELTag^. Use ^com.jsftoolkit.base.TagBase^ if you don't want to add anything. | |}
==== Imports ==== By default, the super class, any implemented interfaces, and specified properties' classes are all imported (unless they are in the same package as the generated class). Other imports only need to be specified for user specified code strings. e.g. if you specify a property's default value to be something like ^"new MyClass()"^, then you will need to import ^MyClass^. === Class of Constants === The advantage of the class of constants approach is that you can utilize inheritance and refactoring tools to make the metadata more maintainable. === XML File === The XML file DTD is: << >> @ 1.13 log @Automatic Check-In of Wiki File @ text @d27 1 a27 1 | SUPER_CLASS (^Class^) || /component/@@superClass || ^UIComponentBase^ | @ 1.12 log @Automatic Check-In of Wiki File @ text @d5 1 a5 1 In the following table, all constants are of class String unless otherwise noted. d27 1 a27 1 | SUPER_CLASS (Class) || /component/@@superClass || UIComponentBase | d30 1 a30 1 | ABSTRACT (boolean) || /component/@@abstract || ''false'' | d33 1 a33 1 | IMPLEMENTS (Class[]) || /component/interface || '''none''' | d36 1 a36 1 | IMPORTS (Class[]) || /component/import || see [#imports imports] below| d42 1 a42 1 | Any constants of type PropertyInfo || /component/property || '''none''' (See [[HtmlRenderer]]) | d51 1 a51 1 | RENDERER_ABSTRACT (boolean) || /component/renderer/@@abstract || ''false'' | d63 1 a63 1 | INCLUDES (ResourceInfo[]) || /component/renderer/resource || '''none''' (see [[RequiresResources]]) | d66 1 a66 1 | RENDERER_IMPLEMENTS (Class[]) || /component/renderer/interface || '''none''' (Always implements [[RequiresResources]]) | d69 1 a69 1 | RENDER_ATTRIBS (String[]) || /component/renderer/attribute || '''none''' (See [[HtmlRenderer]]) | d96 1 a96 1 | TAG_SUPER (Class<? extends UIComponentELTag>) || /component/tag/@@superClass || '''Must''' be a ''subclass'' of UIComponentELTag. Use com.jsftoolkit.base.TagBase if you don't want to add anything. | d102 1 a102 1 By default, the super class, any implemented interfaces, and specified properties' classes are all imported (unless they are in the same package as the generated class). Other imports only need to be specified for user specified code strings. e.g. if you specify a property's default value to be something like "new MyClass()", then you will need to import MyClass. d181 1 a181 1 >>@ 1.11 log @Automatic Check-In of Wiki File @ text @d56 3 d111 4 a114 3 {{{ <!ELEMENT component ((import|interface|constant|property)*,renderer?,config?,tag?)> <!ATTLIST component a116 2 superClass CDATA #IMPLIED abstract (true|false) "false" d120 2 d123 9 a131 4 <!ELEMENT import (#PCDATA) > <!ELEMENT interface (#PCDATA) > <!ELEMENT constant EMPTY > <!ATTLIST constant d135 4 a138 2 <!ELEMENT property EMPTY > <!ATTLIST property d144 2 a145 2 <!ELEMENT renderer (interface|resource|attribute)* > <!ATTLIST renderer d150 1 d153 2 a154 2 <!ELEMENT resource EMPTY > <!ATTLIST resource d161 4 a164 4 <!ELEMENT attribute (#PCDATA) > <!ELEMENT config EMPTY > <!ATTLIST config facesConfig CDATA #IMPLIED d167 2 a168 2 registerClass CDATA #IMPLIED registerRenderer CDATA #IMPLIED d173 2 a174 2 <!ELEMENT tag (import|interface)> <!ATTLIST tag d180 2 a181 1 }}} @ 1.10 log @Automatic Check-In of Wiki File @ text @d91 3 @ 1.9 log @Automatic Check-In of Wiki File @ text @d80 3 d153 1 @ 1.8 log @Automatic Check-In of Wiki File @ text @d5 1 d27 1 a27 1 | SUPER_CLASS (Class) || /component/@@superClass || UIComponentBase | d30 1 a30 1 | ABSTRACT (boolean) || /component/@@abstract || ''false'' | d33 1 a33 1 | IMPLEMENTS (Class[]) || /component/interface || '''none''' | d36 1 a36 1 | IMPORTS (Class[]) || /component/import || see [#imports imports] below| d42 1 a42 1 | Any constants of type PropertyInfo || /component/property || '''none''' (See [[HtmlRenderer]]) | d51 1 a51 1 | RENDERER_ABSTRACT (boolean) || /component/renderer/@@abstract || ''false'' | d60 1 a60 1 | INCLUDES (ResourceInfo[]) || /component/renderer/resource || '''none''' (see [[RequiresResources]]) | d63 1 a63 1 | RENDERER_IMPLEMENTS (Class[]) || /component/renderer/interface || '''none''' (Always implements [[RequiresResources]]) | d66 1 a66 1 | RENDER_ATTRIBS (String[]) || /component/renderer/attribute || '''none''' (See [[HtmlRenderer]]) | d93 1 a93 1 By default, the super class, any implemented interfaces, and specified properties' classes are all imported (unless they are in the same package as the generated class). Other imports only need to be specified for user specified code strings. e.g. if you specify a property's default value to be something like "new MyClass()", then @ 1.7 log @Automatic Check-In of Wiki File @ text @d62 1 a62 1 | RENDERER_IMPLEMENTS(Class[]) || /component/renderer/interface || '''none''' (Always implements [[RequiresResources]]) | d65 1 a65 1 | RENDER_ATTRIBS (String[]) || /component/renderer/attribute || '''none''' (See [[HtmlRenderer]] | @ 1.6 log @Automatic Check-In of Wiki File @ text @d7 2 a8 1 | |! Constant !! XML !! Default ! d10 2 a11 1 ! Class Name !| CLASS_NAME || /component/@@className || '''''required''''' | d13 74 a86 1 ! Package !| PACKAGE || /component/@@package || '''''required''''' | d90 4 d126 1 a126 1 <!ELEMENT renderer (import|interface|resource|attribute)* > @ 1.5 log @Automatic Check-In of Wiki File @ text @d7 1 a7 1 || ||!! Constant !!!! XML !!!! Default !! d9 1 a9 1 !! Class Name !!|| CLASS_NAME |||| /component/@@className |||| '''''required''''' || d11 1 a11 1 !! Package !!|| PACKAGE |||| /component/@@package |||| '''''required''''' || @ 1.4 log @Automatic Check-In of Wiki File @ text @d5 10 a81 16 Most of that should be self-explanatory, but we will cover each element and attribute here. ==== The Component Element ==== component is the root element of the document. ===== Attributes ===== ; package : ; className : ; superClass : ; abstract : ; family : ; type : ; rendererType :@ 1.3 log @Automatic Check-In of Wiki File @ text @d81 7 a87 16
package
className
superClass
abstract
family
type
rendererType
@ 1.2 log @Automatic Check-In of Wiki File @ text @d71 26 a96 1 }}}@ 1.1 log @Automatic Check-In of Wiki File @ text @d59 1 @




© 2015 - 2025 Weber Informatics LLC | Privacy Policy