|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.zkoss.zk.ui.AbstractComponent
org.zkoss.zul.Script
public class Script
A component to generate script codes that will be evaluated at the client.
It is similar to HTML SCRIPT tag, except the defer option (setDefer(boolean)
)
will cause the evaluation of JavaScript until the widget has been
instantiated and mounted to the DOM tree.
Note: it is the script codes running at the client, not at the
server. Don't confuse it with the zscript
element.
There are several way to embed script codes in a ZUML page:
Approach 1: Specify the URL of the JS file without defer. The JavaScript codes are evaluated as soon as the file is loaded.
<script src="my.js"/>
Approach 2: Specify the JavaScript codes directly without defer. The JavaScript codes are evaluated immediately before the widget is instantiated, so you cannot access any widget. Rather, it is used to do desktop-level initialization, such as defining a widget class, and a global function.
<script defer="true">
zk.$package('foo');
zk.load('zul.wgt', function () {
foo.Foo = zk.$extends(zul.Widget, {
//...
</script>
Approach 3: Specify the JavaScript codes directly with defer.
The JavaScipt codes are evaluated after the widget is instantiated and
mounted. Moreover, this
references to the script widget,
so you can access the widgets as follows.
<script defer="true">
this.getFellow('l').setValue('new value');
//...
</script>
Alternative to Approach 1, you can use the script directive as shown below..
<:?script src="/js/mine.js"?/>
Nested Class Summary |
---|
Nested classes/interfaces inherited from class org.zkoss.zk.ui.AbstractComponent |
---|
AbstractComponent.Children |
Field Summary |
---|
Fields inherited from class org.zkoss.zk.ui.AbstractComponent |
---|
_visible |
Fields inherited from interface org.zkoss.zk.ui.Component |
---|
APPLICATION_SCOPE, COMPONENT_SCOPE, DESKTOP_SCOPE, PAGE_SCOPE, REQUEST_SCOPE, SESSION_SCOPE, SPACE_SCOPE |
Fields inherited from interface org.zkoss.zk.ui.sys.ComponentCtrl |
---|
CE_BUSY_IGNORE, CE_DUPLICATE_IGNORE, CE_IMPORTANT, CE_NON_DEFERRABLE, CE_REPEAT_IGNORE |
Constructor Summary | |
---|---|
Script()
|
Method Summary | |
---|---|
java.lang.String |
getCharset()
Returns the character enconding of the source. |
java.lang.String |
getContent()
Returns the content of the script element. |
java.lang.String |
getPackages()
Returns the list of packages to load before evaluating the script defined in getContent() . |
java.lang.String |
getSrc()
Returns the URI of the source that contains the script codes. |
java.lang.String |
getType()
Deprecated. As of release 5.0.0, it is meaningless since text/javascript is always assumed. |
protected boolean |
isChildable()
Not childable. |
boolean |
isDefer()
Returns whether to defer the execution of the script codes until the widget is instantiated and mounted. |
void |
redraw(java.io.Writer out)
Redraws this component and all its decendants. |
protected void |
renderProperties(ContentRenderer renderer)
Called by ( ComponentCtrl.redraw(java.io.Writer) ) to render the
properties, excluding the enclosing tag and children. |
void |
setCharset(java.lang.String charset)
Sets the character encoding of the source. |
void |
setContent(java.lang.String content)
Sets the content of the script element. |
void |
setDefer(boolean defer)
Sets whether to defer the execution of the script codes. |
void |
setPackages(java.lang.String packages)
Sets the list of packages to load before evaluating the script defined in getContent() . |
void |
setSrc(java.lang.String src)
Sets the URI of the source that contains the script codes. |
void |
setType(java.lang.String type)
Deprecated. As of release 5.0.0, it is meaningless since text/javascript is always assumed. |
Methods inherited from class java.lang.Object |
---|
finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public Script()
Method Detail |
---|
public java.lang.String getType()
getType
in interface Script
public void setType(java.lang.String type)
setType
in interface Script
public java.lang.String getCharset()
getSrc()
.
Default: null.
getCharset
in interface Script
public void setCharset(java.lang.String charset)
setSrc(java.lang.String)
.
setCharset
in interface Script
public java.lang.String getSrc()
Default: null.
getSrc
in interface Script
public void setSrc(java.lang.String src)
You either add the script codes directly with the Label
children, or
set the URI to load the script codes with setSrc(java.lang.String)
.
But, not both.
setSrc
in interface Script
src
- the URI of the source that contains the script codespublic boolean isDefer()
Default: false.
Specifying false (default), if you want to do the desktop-level (or class-level) initialization, such as defining a widget class or a global function.
Specifying true, if you want to access widgets. Notice that
this
references to this script widget.
isDefer
in interface Script
public void setDefer(boolean defer)
setDefer
in interface Script
isDefer()
public java.lang.String getContent()
Default: null.
Deriving class can override this method to return whatever it prefers (ingored if null).
getContent
in interface Script
public void setContent(java.lang.String content)
setContent
in interface Script
public java.lang.String getPackages()
getContent()
.
It is meaning only if getContent()
not null.
Default: null.
public void setPackages(java.lang.String packages)
getContent()
.
If more than a package to load, separate them with comma.
public void redraw(java.io.Writer out) throws java.io.IOException
AbstractComponent
Default: It uses JsContentRenderer
to render all information
in JavaScript codes. For devices that don't support JavaScript,
it must override this method.
To generate all information, it first invokes
AbstractComponent.renderProperties(org.zkoss.zk.ui.sys.ContentRenderer)
to render component's
properties,
and then AbstractComponent.redrawChildren(java.io.Writer)
to redraw children (and descendants)
(by calling their AbstractComponent.redraw(java.io.Writer)
).
If a dervied class wants to render more properties, it can override
AbstractComponent.renderProperties(org.zkoss.zk.ui.sys.ContentRenderer)
.
If a derived class renders only a subset of its children
(such as paging/cropping), it could override AbstractComponent.redrawChildren(java.io.Writer)
.
If a deriving class wants to do something before
AbstractComponent.renderProperties(org.zkoss.zk.ui.sys.ContentRenderer)
, it has to override AbstractComponent.redraw(java.io.Writer)
.
If a deriving class doesn't want to render in JavaScript codes,
it has to override AbstractComponent.redraw(java.io.Writer)
with the proper implementation
of ContentRenderer
.
redraw
in interface ComponentCtrl
redraw
in class AbstractComponent
java.io.IOException
protected void renderProperties(ContentRenderer renderer) throws java.io.IOException
AbstractComponent
ComponentCtrl.redraw(java.io.Writer)
) to render the
properties, excluding the enclosing tag and children.
Default: it renders AbstractComponent.getId()
if it was assigned,
and event names if listened (and listed in AbstractComponent.getClientEvents()
).
Note: it doesn't render AbstractComponent.getWidgetClass()
, AbstractComponent.getUuid()
and AbstractComponent.getMold()
, which are caller's job.
renderProperties
in class AbstractComponent
java.io.IOException
protected boolean isChildable()
isChildable
in class AbstractComponent
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |