Class Clients
- java.lang.Object
-
- org.zkoss.zk.ui.util.Clients
-
public class Clients extends java.lang.Object
Utilities to sendAuResponse
to the client.Utilities here are mainly to control how the client (a.k.a., the browser window) behaves. To get the status, you might refer to
ClientInfoEvent
. Note: this class makes accessing 'client-side' more directly. Methods such asshowBusy(String)
orshowNotification(String)
will not encode the strings passed into them, thus the formatting of messages at 'client-side' is allowed. User input should be escaped carefully especially when usingevalJavaScript(String)
to execute dynamically concatenated JavaScript code.- Author:
- tomyeh
- See Also:
ClientInfoEvent
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
NOTIFICATION_TYPE_ERROR
Notification type: errorstatic java.lang.String
NOTIFICATION_TYPE_INFO
Notification type: informationstatic java.lang.String
NOTIFICATION_TYPE_WARNING
Notification type: warning
-
Constructor Summary
Constructors Constructor Description Clients()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static void
alert(java.lang.String msg)
Shows an error message at the browser.static void
alert(java.lang.String msg, java.lang.String title, java.lang.String icon)
Shows an error message at the browser.static void
clearBusy()
Cleans the busy message at the browser.static void
clearBusy(Component comp)
Clears the busy message at the browser that covers only the specified component.static void
clearWrongValue(java.util.List<Component> comps)
Closes the error message of the specified components, if any, at the browser.static void
clearWrongValue(Component comp)
Closes the error message of the specified component, if any, at the browser.static void
clearWrongValue(Component[] comps)
Closes the error message of the specified components, if any, at the browser.static void
confirmClose(java.lang.String mesg)
Asks the browser to confirm users whether to close the browser window.static void
evalJavaScript(java.lang.String javaScript)
Asks the browser to evaluate the specified JavaScript.static void
focus(java.lang.String selector)
Focus the first matching component (HtmlBasedComponent) by using selector Note: The Selector will locate the components in the first page of current Desktop.static void
focus(Component component)
Focus the component (HtmlBasedComponent)static void
loadCSS(java.lang.String url)
Loads a CSS file.static void
loadScript(java.lang.String url)
Loads a JavaScript file to client and execute it.static void
loadScript(java.lang.String url, java.lang.String callback, boolean cache)
Loads a JavaScript file to client and execute it.static void
log(java.lang.Object msg)
Logs the message to the client.static void
log(java.lang.String msg)
Logs the message to the client.static void
moveBy(int x, int y)
Moves the current desktop (a.k.a., browser window) by the specified number of pixels.static void
moveTo(int x, int y)
Moves the current desktop (a.k.a., browser window) to the specified location (in pixels).static void
print()
Asks the client to print the current desktop (a.k.a., browser window).static void
reloadMessages(java.util.Locale locale)
Reloads the client-side messages in the specified locale.static void
resize(Component comp)
Forces the client to re-calculate the size of the given component.static void
resizeBy(int x, int y)
Resizes the current desktop (a.k.a., browser window) by the specified number of pixels.static void
resizeTo(int x, int y)
Resizes the current desktop (a.k.a., browser window) to the specified size (in pixels).static void
response(java.lang.String key, AuResponse response)
Sends an AU response (AuResponse
) to the client with the given key (instead ofAuResponse.getOverrideKey()
).static void
response(AuResponse response)
Sends an AU response (AuResponse
) to the client.static void
scrollBy(int x, int y)
Scrolls the current desktop (a.k.a., browser window) by the specified number of pixels.static void
scrollIntoView(java.lang.String selector)
Scrolls the ancestor elements to make the selector matched element visible Note: The Selector will locate the components in the first page of current Desktop.static void
scrollIntoView(Component cmp)
Scrolls the ancestor elements to make the specified element visible.static void
scrollTo(int x, int y)
Scrolls the current desktop (a.k.a., browser window) to the specified location (in pixels).static void
sendClientCommand(Component component, java.lang.String commandName, java.lang.Object data)
Send a command to client (afterCommand)static void
showBusy(java.lang.String msg)
Shows the busy message at the browser such that the user knows the system is busy.static void
showBusy(Component comp, java.lang.String msg)
Shows the busy message at the browser that covers only the specified component.static void
showNotification(java.lang.String msg)
Shows a message at the center of the browser window.static void
showNotification(java.lang.String msg, boolean closable)
Shows a message at the center of the browser window.static void
showNotification(java.lang.String msg, java.lang.String type, Component ref, int x, int y, int duration)
Displays a message.static void
showNotification(java.lang.String msg, java.lang.String type, Component ref, int x, int y, int duration, boolean closable)
Displays a message.static void
showNotification(java.lang.String msg, java.lang.String type, Component ref, java.lang.String position, int duration)
Displays a message.static void
showNotification(java.lang.String msg, java.lang.String type, Component ref, java.lang.String position, int duration, boolean closable)
Displays a message.static void
showNotification(java.lang.String msg, Component ref)
Shows a message at the right side of the given component.static void
showNotification(java.lang.String msg, Component ref, boolean closable)
Shows a message at the right side of the given component.static void
submitForm(java.lang.String formId)
Submits the form with the specified ID.static void
submitForm(Component form)
Submits the form with the specified form.static void
syncErrorbox()
Send a command to sync all the errorboxes and its reference component position on the desktop.static void
syncErrorbox(Component component)
Send a command to sync a target component and its errorbox position.static void
wrongValue(Component comp, java.lang.String msg)
Shows an error message for the specified component, if any, at the browser.
-
-
-
Field Detail
-
NOTIFICATION_TYPE_INFO
public static final java.lang.String NOTIFICATION_TYPE_INFO
Notification type: information- See Also:
- Constant Field Values
-
NOTIFICATION_TYPE_WARNING
public static final java.lang.String NOTIFICATION_TYPE_WARNING
Notification type: warning- See Also:
- Constant Field Values
-
NOTIFICATION_TYPE_ERROR
public static final java.lang.String NOTIFICATION_TYPE_ERROR
Notification type: error- See Also:
- Constant Field Values
-
-
Method Detail
-
response
public static final void response(AuResponse response)
Sends an AU response (AuResponse
) to the client. It is the same asresponse(response.getOverrideKey(), response)
.- Since:
- 3.0.0
-
response
public static final void response(java.lang.String key, AuResponse response)
Sends an AU response (AuResponse
) to the client with the given key (instead ofAuResponse.getOverrideKey()
).- Parameters:
key
- could be anything. The second invocation of this method in the same execution with the same key will override the previous one. In other words, the previous one will be dropped. If null is specified, the response is simply appended to the end without overriding any previous one.- Since:
- 3.0.4
- See Also:
response(org.zkoss.zk.au.AuResponse)
-
confirmClose
public static final void confirmClose(java.lang.String mesg)
Asks the browser to confirm users whether to close the browser window.If an non-null (non-empty) string is set, the browser will show up a confirmation dialog when an user tries to close the browser window, or browse to another URL. To reset (i.e., not showing any confirmation dialog), just call this method again with null.
- Parameters:
mesg
- the message to show when confirming users. If null (default) or empty, users can close the browser window directly.
-
alert
public static final void alert(java.lang.String msg)
Shows an error message at the browser. It works and looks similar toMessagebox
. However, it is not customizable (at the server), but it is much faster and light-weighted.- Since:
- 5.0.3
-
alert
public static final void alert(java.lang.String msg, java.lang.String title, java.lang.String icon)
Shows an error message at the browser. It is similar toMessagebox
.- Parameters:
msg
- the message to display.title
- the title of the message boxicon
- the icon to show. It could null, "QUESTION", "EXCLAMATION", "INFORMATION", "ERROR", "NONE". If null, "ERROR" is assumed- Since:
- 5.0.3
-
wrongValue
public static final void wrongValue(Component comp, java.lang.String msg)
Shows an error message for the specified component, if any, at the browser.You have to clear the error message manually with
clearWrongValue(org.zkoss.zk.ui.Component)
.- Since:
- 5.0.0
-
clearWrongValue
public static final void clearWrongValue(Component comp)
Closes the error message of the specified component, if any, at the browser.- Since:
- 5.0.0
-
clearWrongValue
public static final void clearWrongValue(java.util.List<Component> comps)
Closes the error message of the specified components, if any, at the browser.- Since:
- 5.0.0
-
clearWrongValue
public static final void clearWrongValue(Component[] comps)
Closes the error message of the specified components, if any, at the browser.- Since:
- 5.0.0
-
submitForm
public static final void submitForm(java.lang.String formId)
Submits the form with the specified ID.
-
submitForm
public static final void submitForm(Component form)
Submits the form with the specified form. It assumes the form component is a HTML form.
-
print
public static void print()
Asks the client to print the current desktop (a.k.a., browser window).
-
scrollIntoView
public static final void scrollIntoView(Component cmp)
Scrolls the ancestor elements to make the specified element visible.- Since:
- 3.6.1
-
scrollIntoView
public static final void scrollIntoView(java.lang.String selector)
Scrolls the ancestor elements to make the selector matched element visible Note: The Selector will locate the components in the first page of current Desktop.- Parameters:
selector
- the selector string- Since:
- 9.5.0
- See Also:
Selectors.find(org.zkoss.zk.ui.Page, String)
,Selectors.find(Component, String)
-
scrollBy
public static final void scrollBy(int x, int y)
Scrolls the current desktop (a.k.a., browser window) by the specified number of pixels. If the number passed is positive, the desktop is scrolled down. If negative, it is scrolled up.- See Also:
scrollTo(int, int)
-
scrollTo
public static final void scrollTo(int x, int y)
Scrolls the current desktop (a.k.a., browser window) to the specified location (in pixels).- See Also:
scrollBy(int, int)
-
resizeBy
public static final void resizeBy(int x, int y)
Resizes the current desktop (a.k.a., browser window) by the specified number of pixels. If the numbers passed are positive, the desktop size is increased. Negative numbers reduce the size of the desktop.- See Also:
resizeTo(int, int)
-
resizeTo
public static final void resizeTo(int x, int y)
Resizes the current desktop (a.k.a., browser window) to the specified size (in pixels).- See Also:
resizeBy(int, int)
-
moveBy
public static final void moveBy(int x, int y)
Moves the current desktop (a.k.a., browser window) by the specified number of pixels. If the number passed is positive, the desktop is moved down. If negative, it is moved up.- See Also:
moveTo(int, int)
-
moveTo
public static final void moveTo(int x, int y)
Moves the current desktop (a.k.a., browser window) to the specified location (in pixels).- See Also:
moveBy(int, int)
-
evalJavaScript
public static final void evalJavaScript(java.lang.String javaScript)
Asks the browser to evaluate the specified JavaScript.It has no effect if the client doesn't support JavaScript.
- Parameters:
javaScript
- the javaScript codes to run at the browser
-
showNotification
public static final void showNotification(java.lang.String msg)
Shows a message at the center of the browser window.- Parameters:
msg
- the message to show- Since:
- 6.0.1
- See Also:
Notification.show(String)
-
showNotification
public static final void showNotification(java.lang.String msg, boolean closable)
Shows a message at the center of the browser window.- Parameters:
msg
- the message to showclosable
- whether to close notification manually or not. If true there will be a close button on notification message and won't close until user click the button or duration time up, default false.- Since:
- 6.5.0
- See Also:
Notification.show(String, boolean)
-
showNotification
public static final void showNotification(java.lang.String msg, Component ref)
Shows a message at the right side of the given component.- Parameters:
msg
- the message to showref
- the referenced component, null to be based on browser window- Since:
- 6.0.1
- See Also:
Notification.show(String, Component)
-
showNotification
public static final void showNotification(java.lang.String msg, Component ref, boolean closable)
Shows a message at the right side of the given component.- Parameters:
msg
- the message to showref
- the referenced component, null to be based on browser windowclosable
- whether to close notification manually or not. If true there will be a close button on notification message and won't close until user click the button or duration time up, default false.- Since:
- 6.5.0
- See Also:
Notification.show(String, Component, boolean)
-
showNotification
public static final void showNotification(java.lang.String msg, java.lang.String type, Component ref, java.lang.String position, int duration)
Displays a message.- Parameters:
msg
- the message to showtype
- available types are "info", "warning", "error"ref
- the referenced component, null to be based on browser windowposition
- predefined positions.Available options are:
- before_start
the message appears above the anchor, aligned to the left. - before_center
the message appears above the anchor, aligned to the center. - before_end
the message appears above the anchor, aligned to the right. - after_start
the message appears below the anchor, aligned to the left. - after_center
the message appears below the anchor, aligned to the center. - after_end
the message appears below the anchor, aligned to the right. - start_before
the message appears to the left of the anchor, aligned to the top. - start_center
the message appears to the left of the anchor, aligned to the middle. - start_after
the message appears to the left of the anchor, aligned to the bottom. - end_before
the message appears to the right of the anchor, aligned to the top. - end_center
the message appears to the right of the anchor, aligned to the middle. - end_after
the message appears to the right of the anchor, aligned to the bottom. - overlap/top_left
the message overlaps the anchor, with anchor and message aligned at top-left. - top_center
the message overlaps the anchor, with anchor and message aligned at top-center. - overlap_end/top_right
the message overlaps the anchor, with anchor and message aligned at top-right. - middle_left
the message overlaps the anchor, with anchor and message aligned at middle-left. - middle_center
the message overlaps the anchor, with anchor and message aligned at middle-center. - middle_right
the message overlaps the anchor, with anchor and message aligned at middle-right. - overlap_before/bottom_left
the message overlaps the anchor, with anchor and message aligned at bottom-left. - bottom_center
the message overlaps the anchor, with anchor and message aligned at bottom-center. - overlap_after/bottom_right
the message overlaps the anchor, with anchor and message aligned at bottom-right. - at_pointer
the message appears with the upper-left aligned with the mouse cursor. - after_pointer
the message appears with the top aligned with the bottom of the mouse cursor, with the left side of the message at the horizontal position of the mouse cursor.
- before_start
duration
- the duration of notification in millisecond. If zero or negative the notification does not dismiss until user left-clicks outside of the notification box.- Since:
- 6.0.1
- See Also:
Notification.show(String, String, Component, String, int)
-
showNotification
public static final void showNotification(java.lang.String msg, java.lang.String type, Component ref, java.lang.String position, int duration, boolean closable)
Displays a message.- Parameters:
msg
- the message to showtype
- available types are "info", "warning", "error"ref
- the referenced component, null to be based on browser windowposition
- predefined positions.Available options are:
- before_start
the message appears above the anchor, aligned to the left. - before_center
the message appears above the anchor, aligned to the center. - before_end
the message appears above the anchor, aligned to the right. - after_start
the message appears below the anchor, aligned to the left. - after_center
the message appears below the anchor, aligned to the center. - after_end
the message appears below the anchor, aligned to the right. - start_before
the message appears to the left of the anchor, aligned to the top. - start_center
the message appears to the left of the anchor, aligned to the middle. - start_after
the message appears to the left of the anchor, aligned to the bottom. - end_before
the message appears to the right of the anchor, aligned to the top. - end_center
the message appears to the right of the anchor, aligned to the middle. - end_after
the message appears to the right of the anchor, aligned to the bottom. - overlap/top_left
the message overlaps the anchor, with anchor and message aligned at top-left. - top_center
the message overlaps the anchor, with anchor and message aligned at top-center. - overlap_end/top_right
the message overlaps the anchor, with anchor and message aligned at top-right. - middle_left
the message overlaps the anchor, with anchor and message aligned at middle-left. - middle_center
the message overlaps the anchor, with anchor and message aligned at middle-center. - middle_right
the message overlaps the anchor, with anchor and message aligned at middle-right. - overlap_before/bottom_left
the message overlaps the anchor, with anchor and message aligned at bottom-left. - bottom_center
the message overlaps the anchor, with anchor and message aligned at bottom-center. - overlap_after/bottom_right
the message overlaps the anchor, with anchor and message aligned at bottom-right. - at_pointer
the message appears with the upper-left aligned with the mouse cursor. - after_pointer
the message appears with the top aligned with the bottom of the mouse cursor, with the left side of the message at the horizontal position of the mouse cursor.
- before_start
duration
- the duration of notification in millisecond. If zero or negative the notification does not dismiss until user left-clicks outside of the notification box.closable
- whether to close notification manually or not. If true there will be a close button on notification message and won't close until user click the button or duration time up, default false.- Since:
- 6.5.0
- See Also:
Notification.show(String, String, Component, String, int, boolean)
-
showNotification
public static final void showNotification(java.lang.String msg, java.lang.String type, Component ref, int x, int y, int duration)
Displays a message.- Parameters:
msg
- the message to showtype
- available types are "info", "warning", "error"ref
- the referenced component, null to be based on browser windowx
- the horizontal position of the notification, aligned at top-left (in pixel)y
- the vertical position of the notification, aligned at top-left (in pixel)duration
- the duration of notification in millisecond. If zero or negative the notification does not dismiss until user left-clicks outside of the notification box.- Since:
- 6.0.1
- See Also:
Notification.show(String, String, Component, int, int, int)
-
showNotification
public static final void showNotification(java.lang.String msg, java.lang.String type, Component ref, int x, int y, int duration, boolean closable)
Displays a message.- Parameters:
msg
- the message to showtype
- available types are "info", "warning", "error"ref
- the referenced component, null to be based on browser windowx
- the horizontal position of the notification, aligned at top-left (in pixel)y
- the vertical position of the notification, aligned at top-left (in pixel)duration
- the duration of notification in millisecond. If zero or negative the notification does not dismiss until user left-clicks outside of the notification box.closable
- whether to close notification manually or not. If true there will be a close button on notification message and won't close until user click the button or duration time up, default false.- Since:
- 6.5.0
- See Also:
Notification.show(String, String, Component, int, int, int, boolean)
-
showBusy
public static final void showBusy(java.lang.String msg)
Shows the busy message at the browser such that the user knows the system is busy.It is usually used with
Events.echoEvent(java.lang.String, org.zkoss.zk.ui.Component, java.lang.String)
to prevent the user to click another buttons or components.To cover only a particular component, use
showBusy(Component, String)
. To close, useclearBusy()
.- Parameters:
msg
- the message to show. If null, the default message (processing) is shown.- Since:
- 5.0.0
- See Also:
clearBusy()
-
showBusy
public static final void showBusy(Component comp, java.lang.String msg)
Shows the busy message at the browser that covers only the specified component. It is used to denote a portion of the desktop is busy, and the user still can access the other part. In other words, it means there is a long operation taking place.To execute a long operation asynchronously, the developer can use a working thread, or use
EventQueue.subscribe(org.zkoss.zk.ui.event.EventListener,boolean)
.See also Long Operations
- Parameters:
comp
- the component that the busy message to cover. Ignored if null. Notice that if the component is not found, the busy message won't be shown. In additions, the busy message is removed automatically if the component is detached later. To manually remove the busy message, useclearBusy(Component)
msg
- the message to show. If null, the default message (processing) is shown.- Since:
- 5.0.0
- See Also:
clearBusy(Component)
-
clearBusy
public static final void clearBusy()
Cleans the busy message at the browser.- Since:
- 5.0.0
- See Also:
showBusy(String)
-
clearBusy
public static final void clearBusy(Component comp)
Clears the busy message at the browser that covers only the specified component.- Parameters:
comp
- the component that the busy message to cover.- Since:
- 5.0.0
- See Also:
showBusy(Component, String)
-
resize
public static final void resize(Component comp)
Forces the client to re-calculate the size of the given component. For better performance, ZK Client Engine will cache the size of components with hflex=min or vflex=min, and recalculate it only necessary. However, sometimes it is hard (too costly) to know if the size of a component with flex=min is changed. For example, If another component is added to it and causes the size changed. In this case, you could use this method to enforce the re-calculation.- Since:
- 5.0.8
-
reloadMessages
public static final void reloadMessages(java.util.Locale locale) throws java.io.IOException
Reloads the client-side messages in the specified locale. It is used if you allow the user to change the locale dynamically.Notice that this method only reloads the standard messages. The application has to update the component's content (such as labels) manually if necessary.
Limitation: it reloads only the messages of ZK Client Engine and ZUL components. It does not reload messages loaded by your own JavaScript codes.
- Parameters:
locale
- the locale. If null,Locales.getCurrent()
is assumed.- Throws:
java.lang.UnsupportedOperationException
- if the device is not ajax.java.io.IOException
- Since:
- 3.6.3
-
log
public static final void log(java.lang.String msg)
Logs the message to the client.data[0]: the title
- Since:
- 5.0.8
-
log
public static final void log(java.lang.Object msg)
Logs the message to the client.- Parameters:
msg
- message, cast to String- Since:
- 8.0.0
-
loadScript
public static final void loadScript(java.lang.String url)
Loads a JavaScript file to client and execute it.By default, this method won't cache the JavaScript file, but you can enable it by invoking
loadScript(String, String, boolean)
.- Parameters:
url
- the JavasScript file path, it will be encoded withEncodes.encodeURL(javax.servlet.ServletContext, javax.servlet.ServletRequest, javax.servlet.ServletResponse, String)
if any.- Since:
- 8.0.0
- See Also:
Encodes.encodeURL(javax.servlet.ServletContext, javax.servlet.ServletRequest, javax.servlet.ServletResponse, java.lang.String)
,loadScript(String, String, boolean)
-
loadScript
public static final void loadScript(java.lang.String url, java.lang.String callback, boolean cache)
Loads a JavaScript file to client and execute it.- Parameters:
url
- the JavasScript file path, it will be encoded withEncodes.encodeURL(javax.servlet.ServletContext, javax.servlet.ServletRequest, javax.servlet.ServletResponse, String)
if any.callback
- a callback script to execute when the JavaScript file has loaded.cache
- true means the url will be cached and executed only once.- Since:
- 8.0.0
- See Also:
Encodes.encodeURL(javax.servlet.ServletContext, javax.servlet.ServletRequest, javax.servlet.ServletResponse, java.lang.String)
-
loadCSS
public static final void loadCSS(java.lang.String url)
Loads a CSS file.- Parameters:
url
- the URL of the CSS file- Since:
- 8.0.0
-
sendClientCommand
public static final void sendClientCommand(Component component, java.lang.String commandName, java.lang.Object data)
Send a command to client (afterCommand)- Parameters:
component
- target componentcommandName
- the command name which would be triggered in clientdata
- data which would be sent to client- Since:
- 8.0.0
-
syncErrorbox
public static final void syncErrorbox()
Send a command to sync all the errorboxes and its reference component position on the desktop.- Since:
- 8.5.2
-
syncErrorbox
public static final void syncErrorbox(Component component)
Send a command to sync a target component and its errorbox position.- Parameters:
component
- target component- Since:
- 8.5.2
-
focus
public static final void focus(Component component)
Focus the component (HtmlBasedComponent)- Parameters:
component
- target component- Since:
- 9.5.0
-
focus
public static final void focus(java.lang.String selector)
Focus the first matching component (HtmlBasedComponent) by using selector Note: The Selector will locate the components in the first page of current Desktop.- Parameters:
selector
- the selector string- Since:
- 9.5.0
- See Also:
Selectors.find(org.zkoss.zk.ui.Page, String)
,Selectors.find(Component, String)
-
-