component"

From Documentation
Line 78: Line 78:
  
 
It specifies the component's Java class at the server side. It is required if you define a new component.
 
It specifies the component's Java class at the server side. It is required if you define a new component.
 +
 +
=widget-class=
 +
[Required if no extends][EL expressions allowed]
 +
 +
It specifies the widget's class at the client side. For Ajax clients, it must be a JavaScript class. It is required if you define a new component.
 +
 +
=property=
 +
[Optional][EL expressions allowed in the property value]
 +
 +
It specifies an initial property. Once the property is specified, the corresponding setter will be called when ZK Loader instantiates from a ZUML document. Of course, if you instantiate it directly in Java, this setting has no effect.
 +
 +
Suppose we want to make all window's border default to <tt>normal</tt>, we could do as follows.
 +
 +
<source lang="xml">
 +
<property>
 +
    <property-name>border</property-name>
 +
    <property-value>normal</property-value>
 +
</property>
 +
</source>
 +
 
=Version History=
 
=Version History=
 
{{LastUpdated}}
 
{{LastUpdated}}

Revision as of 07:15, 19 November 2010

Syntax:

<component>
  <component-name>a_name</component-name>
  <extends>a_name</extends>
  <component-class>a_class_name</component-class>
  <widget-class>a_class_name</widget-class>

  <mold>
    <mold-name>a_mold</mold-name>
    <mold-uri>a_uri</mold-uri>
  </mold>

  <text-as>a_property_name</text-as>

  <property>
    <property-name>a_name</property-name>
    <property-value>a_value</property-value>
  </property>

  <annotation>
    <annotation-name>an_annotation_name</annotation-name>
    <property-name>a_property_name</property-name>
    <attribute>
      <attribute-name>an_annotation_attr_name</attribute-name>
      <attribute-value>an_annotation_attr_value</attribute-value>
    </attribute>
  </annotation>

   <custom-attribute>
    <attribute-name>a_custom_attr_name</attribute-name>
    <attribute-value>a_custom_attr_value</attribute-value>
  </custom-attribute>
</component>

It specifies a component definition.

Example,

<component>
	<component-name>area</component-name>
	<component-class>org.zkoss.zul.Area</component-class>
	<widget-class>zul.wgt.Area</widget-class>
	<mold>
		<mold-name>default</mold-name>
		<mold-uri>mold/area.js</mold-uri>
	</mold>
</component>
<component>
	<component-name>bandbox</component-name>
	<extends>bandbox</extends>
	<annotation>
		<annotation-name>default-bind</annotation-name>
		<property-name>value</property-name>
		<attribute>
			<attribute-name>access</attribute-name>
			<attribute-value>both</attribute-value>
		</attribute>
	</annotation>
</component>

component-name

[Required]

The name of the component. It must be unique in the whole language.

extends

[Optional]

It specifies whether this definition is extending from another definition. If omitted, it is considered a definition of a new component. If specified, it extends from the given component definition (which must be defined first).

Notice that the component's name could be the same as the definition it extends from. If the same, the existent definition is simply overriden (no new component definition is created). It is a useful technique to change a component definition, such as adding annotation, providing the initial properties and so on.

component-class

[Required if no extends]

It specifies the component's Java class at the server side. It is required if you define a new component.

widget-class

[Required if no extends][EL expressions allowed]

It specifies the widget's class at the client side. For Ajax clients, it must be a JavaScript class. It is required if you define a new component.

property

[Optional][EL expressions allowed in the property value]

It specifies an initial property. Once the property is specified, the corresponding setter will be called when ZK Loader instantiates from a ZUML document. Of course, if you instantiate it directly in Java, this setting has no effect.

Suppose we want to make all window's border default to normal, we could do as follows.

<property>
    <property-name>border</property-name>
    <property-value>normal</property-value>
</property>

Version History

Last Update : 2010/11/19


Version Date Content
     



Last Update : 2010/11/19

Copyright © Potix Corporation. This article is licensed under GNU Free Documentation License.