![JAR search and dependency download from the Maven repository](/logo.png)
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