Wire Variables"
Line 32: | Line 32: | ||
=ID Space= | =ID Space= | ||
+ | |||
+ | For components that are inside of another ID space, you could use <code>id1$id2$id3</code> to access it. More precisely, it will cause GenericForwardComposer to look for <code>id1</code> in the same ID space as the applied component, and then look for, if found and it is another ID space, <code>id2</code>, and so on. For example, you could find the textbox by <code>inner$input</code>. | ||
+ | |||
+ | <source lang="xml"> | ||
+ | <window apply="foo.MyComposer"> | ||
+ | <window id="inner"> | ||
+ | <textbox id="input"/> | ||
+ | ... | ||
+ | </source> | ||
=Version History= | =Version History= |
Revision as of 07:26, 12 November 2010
Wiring Sequence
GenericForwardComposer will wire members defined in the composer. Here is the sequence:
- It searches any setter if its name matches any of the following
- Any fellow with the same name (Component.getFellow(String))
- Any variable defined in Page.addVariableResolver(VariableResolver) with the same name
- Any variable defined in zscript with the same name
- Any implicit object with the same name
- Then, it searches any field to see if it matches any fellow, any variable,... the same as the above.
zscript and Variable Resolver
By default, variables defined in both zscript and variable resolvers will be checked[1]. There might be some performance penalty if you have too much zscript code, or your variable resolver is too slow.
You could turn them off by passing false to the second and third argument of GenericForwardComposer.GenericForwardComposer(char, boolean, boolean):
public class MyComposer extends GenericForwardComposer {
public MyComposer() {
super('$', false, false);
}
}
- ↑ It will be default to false in ZK 6 for better performance.
ID Space
For components that are inside of another ID space, you could use id1$id2$id3
to access it. More precisely, it will cause GenericForwardComposer to look for id1
in the same ID space as the applied component, and then look for, if found and it is another ID space, id2
, and so on. For example, you could find the textbox by inner$input
.
<window apply="foo.MyComposer">
<window id="inner">
<textbox id="input"/>
...
Version History
Last Update : 2010/11/12
Version | Date | Content |
---|---|---|