HtmlMacroComponent"
m ((via JWB)) |
RebeccaLai (talk | contribs) m |
||
Line 11: | Line 11: | ||
The base class for macro components. | The base class for macro components. | ||
− | + | {{versionSince | 5.0.4}} By default invoking <javadoc method="afterCompose()">org.zkoss.zk.ui.HtmlMacroComponent</javadoc> supports auto forward events and wire accessible variables to this component. | |
For example, (usemacro.zul) | For example, (usemacro.zul) | ||
Line 112: | Line 112: | ||
| 5.0.3 | | 5.0.3 | ||
| June 2010 | | June 2010 | ||
− | | The corresponding DOM element is customizable. It | + | | The corresponding DOM element is customizable. It defaults to SPAN (the same as prior version) but you can change it to any tag by use of <javadoc method="setEnclosingTag(java.lang.String)">org.zkoss.zk.ui.HtmlMacroComponent</javadoc>. |
|- | |- | ||
| 5.0.4 | | 5.0.4 |
Revision as of 03:22, 5 February 2024
Html Macro Component
- Demonstration: N/A
- Java API: AbstractComponent
- JavaScript API: N/A
Employment/Purpose
The base class for macro components.
Since 5.0.4 By default invoking HtmlMacroComponent.afterCompose() supports auto forward events and wire accessible variables to this component.
For example, (usemacro.zul)
<?init zscript="macro.zs"?>
<?component name="username" macroURI="macro.zul" class="Username"?>
<window id="wnd">
<username id="ua"/>
<username label="Account"/>
</window>
(macro.zs)
import org.zkoss.zk.ui.*;
import org.zkoss.zul.*;
public class Username extends HtmlMacroComponent {
Button btn; // auto wire
// auto forward
public void onClick$btn () {
System.out.println("success... and btn varible is not null : " + (btn != null));
}
};
(macro.zul)
<grid id="mc_grid">
<rows>
<row id="r">
<button label="${empty arg.label ? 'Username': arg.label}" id="btn"/>
</row>
</rows>
</grid>
If you want to turn off the auto wiring mechanism, please refer to the following steps:
Turn off auto wire mechanism by specifying the Library Property "org.zkoss.zk.ui.macro.autowire.disabled" to "true" in WEB-INF/zk.xml. If you did not specify the Library Property, the default is false.
<library-property>
<name>org.zkoss.zk.ui.macro.autowire.disabled</name>
<value>true</value>
</library-property>
or turn off auto forward events by specifying the Library Property "org.zkoss.zk.ui.macro.autoforward.disabled" to "true" in WEB-INF/zk.xml. If you did not specify the Library Property, the default is false.
<library-property>
<name>org.zkoss.zk.ui.macro.autoforward.disabled</name>
<value>true</value>
</library-property>
In the early version, if you want to apply the auto-wiring, you can invoke Components.wireVariables(Component, Object) in HtmlMacroComponent.afterCompose() as follows.
public void afterCompose() {
super.afterCompose(); //create components
Components.wireVariables(this, this);
Components.addForward(this, this);
}
Example
N/A
Supported Events
None | None |
See also events inherited from HtmlBasedComponent's Supported Events.
Supported Children
*ALL
Use cases
Version | Description | Example Location |
---|---|---|
Version History
Version | Date | Content |
---|---|---|
5.0.3 | June 2010 | The corresponding DOM element is customizable. It defaults to SPAN (the same as prior version) but you can change it to any tag by use of HtmlMacroComponent.setEnclosingTag(String). |
5.0.4 | August 2010 | By default, invoking HtmlMacroComponent.afterCompose() supports auto forward events and wire accessible variables to this component. |