Class Configuration

java.lang.Object
org.zkoss.zk.ui.util.Configuration

public class Configuration extends Object
The ZK configuration.

To retrieve the current configuration, use WebApp.getConfiguration().

Note: A Configuration instance can be assigned to at most one WebApp instance.

Author:
tomyeh
  • Constructor Details

    • Configuration

      public Configuration()
      Constructor.
  • Method Details

    • getWebApp

      public WebApp getWebApp()
      Returns the Web application that this configuration belongs to, or null if it is not associated yet.
    • setWebApp

      public void setWebApp(WebApp wapp)
      Associates it with a web application.
    • addListener

      public void addListener(Class<?> klass) throws Exception
      Adds a listener class.

      Notice that there is only one listener allowed for the following classes: Monitor, PerformanceMeter, and DesktopRecycle. On the other hand, any number listeners are allowed for other classes.

      Notice that if the listener implements Composer, it can also implement ComposerExt and/or FullComposer to have more detailed control. However, ComposerExt and FullComposer are meaningless to richlets. In additions, an independent composer is instantiated for each page so there is synchronization required.

      By default, a listener is instantiated when required, and dropped after invoked. In other words, a new instance will be instantiated in the next invocation. It means you don't have to worry the threading,

      However, for better performance, the following listeners will be instantiated in addListener(java.lang.Class<?>), and then used repeatedly. It means it has to be thread safe. These listeners include URIInterceptor, RequestInterceptor, EventInterceptor, UiLifeCycle, and PropertiesRenderer.

      Parameters:
      klass - the listener class must implement at least one of Monitor, PerformanceMeter, EventThreadInit, EventThreadCleanup, EventThreadSuspend, EventThreadResume, WebAppInit, WebAppCleanup, SessionInit, SessionCleanup, DesktopInit, DesktopCleanup, ExecutionInit, ExecutionCleanup, Composer, Initiator (since 5.0.7), SEORenderer (since 5.0.7), PropertiesRenderer (since 5.0.7), VariableResolver, URIInterceptor, RequestInterceptor, UiLifeCycle, DesktopRecycle, and/or EventInterceptor interfaces.
      Throws:
      Exception
      See Also:
    • removeListener

      public void removeListener(Class<?> klass)
      Removes a listener class.
      See Also:
    • newEventThreadInits

      public List<EventThreadInit> newEventThreadInits(Component comp, Event evt) throws UiException
      Constructs a list of EventThreadInit instances and invokes EventThreadInit.prepare(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.event.Event) for each relevant listener registered by addListener(java.lang.Class<?>).

      Used only internally (by UiEngine before starting an event processing thread).

      Returns:
      a list of EventThreadInit instances that are constructed in this method (and their EventThreadInit.prepare(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.event.Event) are called successfully), or null.
      Throws:
      UiException - to prevent a thread from being processed if EventThreadInit.prepare(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.event.Event) throws an exception
    • invokeEventThreadInits

      public boolean invokeEventThreadInits(List<EventThreadInit> inits, Component comp, Event evt) throws UiException
      Parameters:
      inits - a list of EventThreadInit instances returned from newEventThreadInits(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.event.Event), or null if no instance at all.
      comp - the component which the event is targeting
      evt - the event to process
      Returns:
      false if you want to ignore the event, i.e., not to proceed any event processing for the specified event (evt).
      Throws:
      UiException - to prevent a thread from being processed if EventThreadInit.init(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.event.Event) throws an exception
    • newEventThreadCleanups

      public List<EventThreadCleanup> newEventThreadCleanups(Component comp, Event evt, List<Throwable> errs, boolean silent)
      Invokes EventThreadCleanup.cleanup(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.event.Event, java.util.List<java.lang.Throwable>) for each relevant listener registered by addListener(java.lang.Class<?>).

      Used only internally.

      An instance of EventThreadCleanup is constructed first, and then invoke EventThreadCleanup.cleanup(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.event.Event, java.util.List<java.lang.Throwable>).

      It never throws an exception but logs and adds it to the errs argument, if not null.

      Parameters:
      comp - the component which the event is targeting
      evt - the event to process
      errs - a list of exceptions (java.lang.Throwable) if any exception occurred before this method is called, or null if no exception at all. Note: you can manipulate the list directly to add or clean up exceptions. For example, if exceptions are fixed correctly, you can call errs.clear() such that no error message will be displayed at the client.
      silent - whether not to log the exception
      Returns:
      a list of EventThreadCleanup, or null
      Since:
      3.6.3
    • invokeEventThreadCompletes

      public void invokeEventThreadCompletes(List<EventThreadCleanup> cleanups, Component comp, Event evt, List<Throwable> errs, boolean silent)
      Invoke EventThreadCleanup.complete(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.event.Event) for each instance returned by newEventThreadCleanups(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.event.Event, java.util.List<java.lang.Throwable>, boolean).

      Used only internally.

      It never throws an exception but logs and adds it to the errs argument, if not null.

      Parameters:
      cleanups - a list of EventThreadCleanup instances returned from newEventThreadCleanups(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.event.Event, java.util.List<java.lang.Throwable>, boolean), or null if no instance at all.
      errs - used to hold the exceptions that are thrown by EventThreadCleanup.complete(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.event.Event). If null, all exceptions are ignored (but logged).
      silent - whether not to log the exception
      Since:
      3.6.3
    • newEventThreadSuspends

      public List<EventThreadSuspend> newEventThreadSuspends(Component comp, Event evt, Object obj)
      Constructs a list of EventThreadSuspend instances and invokes EventThreadSuspend.beforeSuspend(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.event.Event, java.lang.Object) for each relevant listener registered by addListener(java.lang.Class<?>).

      Used only internally.

      Note: caller shall execute in the event processing thread.

      Parameters:
      comp - the component which the event is targeting
      evt - the event to process
      obj - which object that Executions.wait(java.lang.Object) is called with.
      Returns:
      a list of EventThreadSuspend, or null
      Throws:
      UiException - to prevent a thread from suspending
    • invokeEventThreadSuspends

      public void invokeEventThreadSuspends(List<EventThreadSuspend> suspends, Component comp, Event evt) throws UiException
      Parameters:
      suspends - a list of EventThreadSuspend instances returned from newEventThreadSuspends(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.event.Event, java.lang.Object), or null if no instance at all.
      comp - the component which the event is targeting
      evt - the event to process
      Throws:
      UiException
    • newEventThreadResumes

      public List<EventThreadResume> newEventThreadResumes(Component comp, Event evt) throws UiException
      Constructs a list of EventThreadResume instances and invokes EventThreadResume.beforeResume(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.event.Event) for each relevant listener registered by addListener(java.lang.Class<?>).

      Used only internally (by UiEngine when resuming a suspended event thread). Notice: it executes in the main thread (i.e., the servlet thread).

      Parameters:
      comp - the component which the event is targeting
      evt - the event to process
      Returns:
      a list of EventThreadResume instances that are constructed in this method (and their EventThreadResume.beforeResume(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.event.Event) are called successfully), or null.
      Throws:
      UiException - to prevent a thread from being resumed if EventThreadResume.beforeResume(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.event.Event) throws an exception
    • invokeEventThreadResumes

      public void invokeEventThreadResumes(List<EventThreadResume> resumes, Component comp, Event evt) throws UiException
      Invokes EventThreadResume.afterResume(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.event.Event) for each instance returned by newEventThreadResumes(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.event.Event).

      Used only internally.

      It never throws an exception but logs and adds it to the errs argument, if not null.

      Parameters:
      resumes - a list of EventThreadResume instances returned from newEventThreadResumes(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.event.Event), or null if no instance at all.
      comp - the component which the event is targeting
      evt - the event to process If null, all exceptions are ignored (but logged)
      Throws:
      UiException
    • invokeEventThreadResumeAborts

      public void invokeEventThreadResumeAborts(Component comp, Event evt)
      Invokes EventThreadResume.abortResume(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.event.Event) for each relevant listener registered by addListener(java.lang.Class<?>).

      Used only internally.

      An instance of EventThreadResume is constructed first, and then invoke EventThreadResume.abortResume(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.event.Event).

      It never throws an exception but logging.

      Parameters:
      comp - the component which the event is targeting
      evt - the event to process
    • invokeWebAppInits

      public void invokeWebAppInits() throws UiException
      Invokes WebAppInit.init(org.zkoss.zk.ui.WebApp) for each relevant listener registered by addListener(java.lang.Class<?>).

      Used only internally.

      An instance of WebAppInit is constructed first, and then invoke WebAppInit.init(org.zkoss.zk.ui.WebApp).

      Throws:
      UiException - to prevent a webapp from being created
    • invokeWebAppCleanups

      public void invokeWebAppCleanups()
      Invokes WebAppCleanup.cleanup(org.zkoss.zk.ui.WebApp) for each relevant listener registered by addListener(java.lang.Class<?>).

      Used only internally.

      An instance of WebAppCleanup is constructed first, and then invoke WebAppCleanup.cleanup(org.zkoss.zk.ui.WebApp).

      It never throws an exception.

    • invokeSessionInits

      public void invokeSessionInits(Session sess, Object request) throws UiException
      Invokes SessionInit.init(org.zkoss.zk.ui.Session, java.lang.Object) for each relevant listener registered by addListener(java.lang.Class<?>).

      Used only internally.

      An instance of SessionInit is constructed first, and then invoke SessionInit.init(org.zkoss.zk.ui.Session, java.lang.Object).

      Parameters:
      sess - the session that is created
      request - the original request. If HTTP, it is jakarta.servlet.http.HttlServletRequest.
      Throws:
      UiException - to prevent a session from being created
      Since:
      3.0.1
    • invokeSessionCleanups

      public void invokeSessionCleanups(Session sess)
      Invokes SessionCleanup.cleanup(org.zkoss.zk.ui.Session) for each relevant listener registered by addListener(java.lang.Class<?>).

      Used only internally.

      An instance of SessionCleanup is constructed first, and then invoke SessionCleanup.cleanup(org.zkoss.zk.ui.Session).

      It never throws an exception.

      Parameters:
      sess - the session that is being destroyed
    • invokeDesktopInits

      public void invokeDesktopInits(Desktop desktop, Object request) throws UiException
      Invokes DesktopInit.init(org.zkoss.zk.ui.Desktop, java.lang.Object) for each relevant listener registered by addListener(java.lang.Class<?>).

      Used only internally.

      An instance of DesktopInit is constructed first, and then invoke DesktopInit.init(org.zkoss.zk.ui.Desktop, java.lang.Object).

      Parameters:
      desktop - the desktop that is created
      request - the original request. If HTTP, it is jakarta.servlet.http.HttlServletRequest.
      Throws:
      UiException - to prevent a desktop from being created
      Since:
      3.0.1
    • invokeDesktopCleanups

      public void invokeDesktopCleanups(Desktop desktop)
      Invokes DesktopCleanup.cleanup(org.zkoss.zk.ui.Desktop) for each relevant listener registered by addListener(java.lang.Class<?>).

      Used only internally.

      An instance of DesktopCleanup is constructed first, and then invoke DesktopCleanup.cleanup(org.zkoss.zk.ui.Desktop).

      It never throws an exception.

      Parameters:
      desktop - the desktop that is being destroyed
    • invokeExecutionInits

      public void invokeExecutionInits(Execution exec, Execution parent) throws UiException
      Invokes ExecutionInit.init(org.zkoss.zk.ui.Execution, org.zkoss.zk.ui.Execution) for each relevant listener registered by addListener(java.lang.Class<?>).

      Used only internally.

      An instance of ExecutionInit is constructed first, and then invoke ExecutionInit.init(org.zkoss.zk.ui.Execution, org.zkoss.zk.ui.Execution).

      Parameters:
      exec - the execution that is created
      parent - the previous execution, or null if no previous at all
      Throws:
      UiException - to prevent an execution from being created
    • invokeExecutionCleanups

      public void invokeExecutionCleanups(Execution exec, Execution parent, List<Throwable> errs)
      Invokes ExecutionCleanup.cleanup(org.zkoss.zk.ui.Execution, org.zkoss.zk.ui.Execution, java.util.List<java.lang.Throwable>) for each relevant listener registered by addListener(java.lang.Class<?>).

      Used only internally.

      An instance of ExecutionCleanup is constructed first, and then invoke ExecutionCleanup.cleanup(org.zkoss.zk.ui.Execution, org.zkoss.zk.ui.Execution, java.util.List<java.lang.Throwable>).

      It never throws an exception but logs and adds it to the errs argument, if not null.

      Parameters:
      exec - the execution that is being destroyed
      parent - the previous execution, or null if no previous at all
      errs - a list of exceptions (java.lang.Throwable) if any exception occurred before this method is called, or null if no exception at all. Note: you can manipulate the list directly to add or clean up exceptions. For example, if exceptions are fixed correctly, you can call errs.clear() such that no error message will be displayed at the client.
    • invokeURIInterceptors

      public void invokeURIInterceptors(String uri)
      Invokes URIInterceptor.request(java.lang.String) for each relevant listener registered by addListener(java.lang.Class<?>).

      Used only internally.

      If any of them throws an exception, the exception is propagated to the caller.

      Throws:
      UiException - if it is rejected by the interceptor. Use Throwable.getCause() to retrieve the cause.
    • invokeRequestInterceptors

      public void invokeRequestInterceptors(Session sess, Object request, Object response)
      Invokes RequestInterceptor.request(org.zkoss.zk.ui.Session, java.lang.Object, java.lang.Object) for each relevant listener registered by addListener(java.lang.Class<?>).

      Used only internally.

      If any of them throws an exception, the exception is propagated to the caller.

      Throws:
      UiException - if it is rejected by the interceptor. Use Throwable.getCause() to retrieve the cause.
    • addLabelLocation

      public void addLabelLocation(String location)
      Adds the location of a properties file for i18n labels.

      Default: none (/WEB-INF/zk-label.properties is assumed).

      Notice that this method has no effect after the web server has been started. Thus, it is suggested to use the label-location element in zk.xml instead.

      Since:
      5.0.7
    • getLabelLocations

      public String[] getLabelLocations()
      Returns an array of the locations of properties files registered by addLabelLocation(java.lang.String).
      Since:
      5.0.7
    • getComposer

      public Composer<?> getComposer(Page page) throws Exception
      Returns the system-level composer or null if none is registered. To register a system-level composer, use addListener(java.lang.Class<?>).

      Notice that any number of composers can be registered, and a single composer is returned to represent them all.

      Throws:
      Exception
      Since:
      5.0.1
    • getInitiators

      public Initiator[] getInitiators()
      Returns a readonly list of the system-level initiators. It is empty if none is registered. To register a system-level initiator, use addListener(java.lang.Class<?>).
      Since:
      5.0.7
    • getNamespaceParsers

      public List<NamespaceParser> getNamespaceParsers()
      Returns a readonly list of the system-level NamespaceParsers. It is empty if none is registered. To register a system-level NamespaceParsers, use addListener(java.lang.Class<?>).
      Since:
      7.0.3
    • getSEORenderers

      public SEORenderer[] getSEORenderers()
      Returns a readonly list of the system-level SEO renderer. It is empty if none is registered. To register a system-level SEO renderers, use addListener(java.lang.Class<?>).

      Notice that, once registered, an instance is instantiated before invoking SEORenderer.render(org.zkoss.zk.ui.Page, java.io.Writer).

      Since:
      5.0.7
    • init

      public void init(Page page)
      Initializes the given page with the variable resolvers registered by addListener(java.lang.Class<?>). It must be called before accessing a page (actually in PageCtrl.preInit()).
      Since:
      5.0.4
    • getPropertiesRenderers

      public PropertiesRenderer[] getPropertiesRenderers()
      Returns a readonly list of the system-level properties renders. It is empty if none is registered. To register a system-level properties renders, use addListener(java.lang.Class<?>).

      Notice that, once registered, it is instantiated immediately, and the same instance is shared for rendering the properties of every component.

      Since:
      5.0.7
    • afterComponentAttached

      public void afterComponentAttached(Component comp, Page page)
      Since:
      3.0.6
    • afterComponentDetached

      public void afterComponentDetached(Component comp, Page prevpage)
      Since:
      3.0.6
    • invokeCallback

      public void invokeCallback(String name, Object data)
      Invokes a callback function Callback.call(Object data)
      Parameters:
      name - the name of the callback function.
      data - the parameter for the callback function.
      Since:
      8.5.2
    • registerCallBack

      public void registerCallBack(String name, Callback callback)
      Register a callback function Callback.call(Object data)
      Parameters:
      name - the name of the callback function.
      callback - the callback function to register into Configuration class.
      Since:
      8.5.2
    • unregisterCallBack

      public void unregisterCallBack(String name)
      Unregister a callback function Callback.call(Object data)
      Parameters:
      name - the name of the callback function.
      Since:
      8.5.2
    • hasCallBack

      public boolean hasCallBack(String name)
      Returns if a callback function Callback.call(Object data) is registered.
      Parameters:
      name - the name of the callback function.
      Returns:
      If a callback function is registered.
      Since:
      8.5.2
    • afterShadowAttached

      public void afterShadowAttached(ShadowElement shadow, Component host)
      Invokes UiLifeCycle.afterShadowAttached(ShadowElement, Component) when a shadow is attached to a host.
      Since:
      8.0.0
    • afterShadowDetached

      public void afterShadowDetached(ShadowElement shadow, Component prevhost)
      Invokes UiLifeCycle.afterShadowDetached(ShadowElement, Component) when a shadow is detached from a host.
      Since:
      8.0.0
    • afterComponentMoved

      public void afterComponentMoved(Component parent, Component child, Component prevparent)
      Since:
      3.0.6
    • afterPageAttached

      public void afterPageAttached(Page page, Desktop desktop)
      Since:
      3.0.6
    • afterPageDetached

      public void afterPageDetached(Page page, Desktop prevdesktop)
      Since:
      3.0.6
    • addThemeURI

      public void addThemeURI(String uri)
      Adds an CSS resource that will be generated for each ZUML desktop.

      Note: if ThemeProvider is specified (setThemeProvider(org.zkoss.zk.ui.util.ThemeProvider)), the final theme URIs generated depend on ThemeProvider.getThemeURIs(org.zkoss.zk.ui.Execution, java.util.List<java.lang.Object>).

    • getThemeURIs

      public String[] getThemeURIs()
      Returns a readonly list of the URI of the CSS resources that will be generated for each ZUML desktop (never null).

      Default: an array with zero length.

    • addDisabledThemeURI

      public void addDisabledThemeURI(String uri)
      Parameters:
      uri - the theme URI to disable
      Since:
      3.0.0
    • getDisabledThemeURIs

      public Set<String> getDisabledThemeURIs()
      Returns a set of the theme URIs that are disabled (never null).
      Since:
      3.0.0
      See Also:
    • addThemeURIHandler

      public void addThemeURIHandler(ThemeURIHandler themeURIHandler)
      Since:
      9.6.0
    • getThemeURIHandlers

      public List<ThemeURIHandler> getThemeURIHandlers()
      Returns a list of ThemeURIHandler.
      Since:
      9.6.0
    • getThemeProvider

      public ThemeProvider getThemeProvider()
      Returns the theme provider for the current execution, or null if not available.

      Default: null.

      Note: if specified, the final theme URIs is decided by the provider. The URIs specified in getThemeURIs() are passed to provider, and it has no effect if the provider decides to ignore them.

      Since:
      3.0.0
      See Also:
    • setThemeProvider

      public void setThemeProvider(ThemeProvider provider)
      Sets the theme provider for the current execution, or null if not available.
      Parameters:
      provider - the theme provide. If null, the default theme URIs will be used.
      Since:
      3.0.0
      See Also:
    • setUiEngineClass

      public void setUiEngineClass(Class<?> cls)
      Sets the class used to handle UI loading and updates, or null to use the default. It must implement UiEngine.
    • getUiEngineClass

      public Class<?> getUiEngineClass()
      Returns the class used to handle UI loading and updates, or null if default is used. It must implement UiEngine.
    • setWebAppClass

      public void setWebAppClass(Class<?> cls)
      Sets the class used to represent this Web application, or null to use the default. It must implement WebApp and WebAppCtrl

      Note: you have to set the class before WebApp is created. Otherwise, it won't have any effect.

    • getWebAppClass

      public Class<?> getWebAppClass()
      Returns the class used to represent this Web application, or null if default is used. It must implement WebApp and WebAppCtrl
    • setWebAppFactoryClass

      public void setWebAppFactoryClass(Class<?> cls)
      Sets the class used to instantiate an instance representing this Web application, or null to use the default.

      Note: setWebAppClass(java.lang.Class<?>) has the higher priority if not null.

      Note: you have to set the class before WebApp is created. Otherwise, it won't have any effect.

      Parameters:
      cls - the class that implements WebAppFactory.
      Since:
      6.0.0
    • getWebAppFactoryClass

      public Class<?> getWebAppFactoryClass()
      Returns the class used to instantiate an instance representing this Web application, or null if default is used. It must implement WebAppFactory.

      Note: getWebAppClass() has the higher priority if not null.

      Since:
      6.0.0
    • setDesktopCacheProviderClass

      public void setDesktopCacheProviderClass(Class<?> cls)
      Sets the class used to provide the desktop cache, or null to use the default. It must implement DesktopCacheProvider.

      Note: you have to set the class before WebApp is created. Otherwise, it won't have any effect.

    • getDesktopCacheProviderClass

      public Class<?> getDesktopCacheProviderClass()
      Returns the class used to provide the desktop cache, or null if default is used. It must implement DesktopCacheProvider.
    • setUiFactoryClass

      public void setUiFactoryClass(Class<?> cls)
      Sets the class used to instantiate desktops, pages and components, or null to use the default. It must implement UiFactory,

      Note: you have to set the class before WebApp is created. Otherwise, it won't have any effect.

    • getUiFactoryClass

      public Class<?> getUiFactoryClass()
      Returns the class used to instantiate desktops, pages and components, or null if default is used. It must implement UiFactory,
    • setFailoverManagerClass

      public void setFailoverManagerClass(Class<?> cls)
      Sets the class used to handle the failover mechanism, or null if no custom failover mechanism. It must implement FailoverManager.

      Note: you have to set the class before WebApp is created. Otherwise, it won't have any effect.

    • getFailoverManagerClass

      public Class<?> getFailoverManagerClass()
      Returns the class used to handle the failover mechanism, or null if no custom failover mechanism. It must implement FailoverManager.
    • setIdGeneratorClass

      public void setIdGeneratorClass(Class<?> cls)
      Sets the class that is used to generate UUID/ID of desktop, page and components, or null to use the default. It must implement IdGenerator.

      Note: you have to set the class before WebApp is created. Otherwise, it won't have any effect.

      Since:
      2.4.1
    • getIdGeneratorClass

      public Class<?> getIdGeneratorClass()
      Returns the class used to generate UUID/ID for desktop, page and components, or null if the default shall be used. It must implement IdGenerator
      Since:
      2.4.1
    • setSessionCacheClass

      public void setSessionCacheClass(Class<?> cls)
      Sets the class that is used to store ZK sessions, or null to use the default. It must implement SessionCache.

      Note: you have to set the class before WebApp is created. Otherwise, it won't have any effect.

      Since:
      3.0.5
    • getSessionCacheClass

      public Class<?> getSessionCacheClass()
      Returns the class used to store ZK sessions, or null if the default shall be used. It must implement SessionCache.
      Since:
      3.0.5
    • setFileItemFactoryClass

      public void setFileItemFactoryClass(Class<?> cls)
      Sets the class that is used to create a file item for fileupload, or null to use the default. It must implement DiskFileItemFactory.
      Since:
      8.0.2
    • getFileItemFactoryClass

      public Class<?> getFileItemFactoryClass()
      Returns the class used to create a file item for fileupload, or null if the default shall be used. It must implement DiskFileItemFactory.
      Since:
      8.0.2
    • setAuDecoderClass

      public void setAuDecoderClass(Class<?> cls)
      Sets the class that is used to decode AU requests, or null to use the default. It must implement AuDecoder.

      Note: you have to set the class before WebApp is created. Otherwise, it won't have any effect.

      Since:
      5.0.4
    • getAuDecoderClass

      public Class<?> getAuDecoderClass()
      Returns the class used to decode AU requests, or null if the default shall be used. It must implement AuDecoder.
      Since:
      5.0.4
    • setMaxProcessTime

      public void setMaxProcessTime(int time)
      Specifies the maximal allowed time to process events, in milliseconds. ZK will keep processing the requests until all requests are processed, or the maximal allowed time expires.

      Default: 3000.

      Note: since 3.0.0, this setting has no effect on AU requests. It controls only the requests from the client-polling server push.

      Parameters:
      time - the maximal allowed time to process events. It must be positive.
    • getMaxProcessTime

      public int getMaxProcessTime()
      Returns the maximal allowed time to process events, in milliseconds. It is always positive.
    • setMaxUploadSize

      public void setMaxUploadSize(int sz)
      Specifies the maximal allowed upload size, in kilobytes.

      Default: 5120.

      Parameters:
      sz - the maximal allowed upload size. A negative value indicates there is no limit.
    • getMaxUploadSize

      public int getMaxUploadSize()
      Returns the maximal allowed upload size, in kilobytes, or a negative value if no limit.
    • setFileSizeThreshold

      public void setFileSizeThreshold(int sz)
      Specifies the threshold at which a temporary file is created as a buffer, in kilobytes.

      Default: 128.

      Parameters:
      sz - the file size threshold A negative value implies default setting.
      Since:
      5.0.8
    • getFileSizeThreshold

      public int getFileSizeThreshold()
      Returns the threshold at which a temporary file is created as a buffer, in kilobytes, or a negative value which implies default setting.
      Since:
      5.0.8
    • setFileRepository

      public void setFileRepository(String directory)
      Sets the directory in which uploaded files will be stored, if stored on disk.
      Parameters:
      directory -
      Since:
      8.0.2
    • getFileRepository

      public String getFileRepository()
      Returns the directory in which uploaded files will be stored, if stored on disk.

      Default: null

      Since:
      8.0.2
    • getUploadCharset

      public String getUploadCharset()
      Returns the charset used to encode the uploaded text file (never null).

      Default: UTF-8.

      See Also:
    • setUploadCharset

      public void setUploadCharset(String charset)
      Sets the charset used to encode the upload text file.

      Note: setUploadCharsetFinder(org.zkoss.zk.ui.util.CharsetFinder) has the higher priority.

      Parameters:
      charset - the charset to use. If null or empty, UTF-8 is assumed.
      See Also:
    • getUploadCharsetFinder

      public CharsetFinder getUploadCharsetFinder()
      Returns the finder that is used to decide the character set for the uploaded text file(s), or null if not available.

      Default: null

      Since:
      3.0.0
      See Also:
    • setUploadCharsetFinder

      public void setUploadCharsetFinder(CharsetFinder finder)
      Sets the finder that is used to decide the character set for the uploaded text file(s), or null if not available.

      It has the higher priority than setUploadCharset(java.lang.String). In other words, getUploadCharset() is used only if this method returns null or CharsetFinder.getCharset(java.lang.String, java.io.InputStream) returns null.

      Since:
      3.0.0
      See Also:
    • setDesktopMaxInactiveInterval

      public void setDesktopMaxInactiveInterval(int secs)
      Specifies the time, in seconds, between client requests before ZK will invalidate the desktop.

      Default: 3600 (1 hour).

      A negative value indicates the desktop should never timeout.

    • getDesktopMaxInactiveInterval

      public int getDesktopMaxInactiveInterval()
      Returns the time, in seconds, between client requests before ZK will invalidate the desktop.

      Notice that this timeout is used only if JVM starts GC when the memory is running low.

      A negative value indicates the desktop should never timeout.

    • setProcessingPromptDelay

      public void setProcessingPromptDelay(int minisecs)
      Specifies the time, in milliseconds, before ZK Client Engine shows a dialog to prompt users that the request is in processing.

      Default: 900

    • getProcessingPromptDelay

      public int getProcessingPromptDelay()
      Returns the time, in milliseconds, before ZK Client Engine shows a dialog to prompt users that the request is in processing.
    • setTooltipDelay

      public void setTooltipDelay(int minisecs)
      Specifies the time, in milliseconds, before ZK Client Engine shows the tooltip when a user moves the mouse over particular UI components.

      Default: 800

    • getTooltipDelay

      public int getTooltipDelay()
      Returns the time, in milliseconds, before ZK Client Engine shows the tooltip when a user moves the mouse over particular UI components.
    • setAutoResendTimeout

      public void setAutoResendTimeout(int minisecs)
      Specifies the timeout, in milliseconds, to re-send the AU request when the server's service unavailable or timeout.

      Default: 200

      Since:
      6.5.2
    • getAutoResendTimeout

      public int getAutoResendTimeout()
      Returns the timeout, in milliseconds, for re-sending the AU request when the server's service unavailable or timeout.
      Since:
      6.5.2

      Default: 200

    • isCrawlable

      public boolean isCrawlable()
      Returns whether this Web application can be crawled by search engines. Notice that there is some performance loss for huge web pages.

      Default: false.

      Since:
      5.0.0
    • setCrawlable

      public void setCrawlable(boolean crawlable)
      Sets whether this Web application is crawlable. Make a Web application that allows search engines to crawl the application. Notice that there is some performance loss for huge web pages. (EE only)
      Since:
      5.0.0
    • isCspEnabled

      public boolean isCspEnabled()
      Returns whether this Web application enables Content Security Policy (CSP). It is required for other CSP settings and applies a default policy when enabled.

      Default: false.

      Since:
      10.3.0
    • setCspEnabled

      public void setCspEnabled(boolean cspEnabled)
      Sets whether CSP is enabled.
      Since:
      10.3.0
    • isCspStrictDynamicEnabled

      public boolean isCspStrictDynamicEnabled()
      Returns whether this Web application enables nonce-based strict CSP mode.

      Default: false.

      Since:
      10.3.0
    • setCspStrictDynamicEnabled

      public void setCspStrictDynamicEnabled(boolean cspStrictDynamicEnabled)
      Sets whether nonce-based strict CSP mode is enabled.
      Since:
      10.3.0
    • getCspPolicy

      public String getCspPolicy()
      Returns the developer-defined policy used to override the default CSP rules, or null if not specified.
      Returns:
      the current Csp Header Content
      Since:
      10.3.0
    • setCspPolicy

      public void setCspPolicy(String policy)
      Sets the developer-defined policy used to override the default CSP rules.
      Parameters:
      policy - the CSP policy to use, or null to use the default
      Since:
      10.3.0
    • isCspReportOnly

      public boolean isCspReportOnly()
      Returns whether CSP is enforced in report-only mode.

      Default: false.

      Since:
      10.3.0
    • setCspReportOnly

      public void setCspReportOnly(boolean cspReportOnly)
      Sets whether to enforce CSP in report-only mode.
      Since:
      10.3.0
    • getCspReportURI

      public String getCspReportURI()
      Returns the URI destination for CSP violation reports, or null if not specified.

      Default: null.

      Since:
      10.3.0
    • setCspReportURI

      public void setCspReportURI(String cspReportURI)
      Sets the URI destination for CSP violation reports.
      Parameters:
      cspReportURI - the URI to send CSP reports to, or null to disable reporting
      Since:
      10.3.0
    • getCspProvider

      public CspProvider getCspProvider()
      Returns the CSP provider responsible for generating the CSP header and managing nonce, or null if not available.

      Default: an instance of CspProviderImpl.

      Since:
      10.3.0
    • setCspProvider

      public void setCspProvider(CspProvider cspProvider)
      Sets the CSP provider.
      Parameters:
      cspProvider - the CSP provider to use, or null to use the default
      Since:
      10.3.0
    • getTimeoutURI

      public URIInfo getTimeoutURI(String deviceType)
      Returns the timeout URI for this device. It is used to show the error message if the desktop being requested is not found. It is usually caused by session timeout.

      Default: null (to shown an error message).

      Parameters:
      deviceType - the device type: ajax or mil. If null, ajax is assumed.
      Since:
      3.6.3
    • setTimeoutURI

      public URIInfo setTimeoutURI(String deviceType, String timeoutURI, int type)
      Sets the timeout URI. It is used to show the error message if the desktop being requested is not found. It is usually caused by session timeout.
      Parameters:
      deviceType - the device type: ajax or mil. If null, ajax is assumed.
      timeoutURI - the timeout URI. If empty, it means to reload the same page. If null, an error message is shown instead of redirecting to another page.
      type - how to handle the timeout URI. It is one of URIInfo.SEND_REDIRECT or URIInfo.POPUP. However, it supports only URIInfo.SEND_REDIRECT currently.
      Returns:
      the previous timeout URI, or null if not available.
      Since:
      3.6.3
    • getTimeoutMessage

      public String getTimeoutMessage(String deviceType)
      Returns the timeout message for this device, or null if the default message is preferred. It is used only if getTimeoutURI(java.lang.String) returns null.
      Since:
      5.0.5
      See Also:
    • setTimeoutMessage

      public String setTimeoutMessage(String deviceType, String message)
      Sets the timeout message for this device, or null if the default message is preferred. It is used only if getTimeoutURI(java.lang.String) returns null.

      To specify an I18N label, prefix the key with label:. To specify the JavaScript code, prefix the code with script:. Refer to ZK Configuration Reference for more information.

      Returns:
      the previous message, if any
      Since:
      5.0.5
    • isAutomaticTimeout

      public boolean isAutomaticTimeout(String deviceType)
      Returns whether to automatically trigger the timeout at the client. Refer to setAutomaticTimeout(java.lang.String, boolean) for details.
      Parameters:
      deviceType - the device type: ajax or mil. If null, ajax is assumed.
      Since:
      3.6.3
      See Also:
    • setAutomaticTimeout

      public boolean setAutomaticTimeout(String deviceType, boolean auto)
      Sets whether to automatically trigger the timeout at the client.

      Default: false. It means this page is redirected to the timeout URI when the use takes some action after timeout. In other words, nothing happens if the user does nothing. If it is set to true, it is redirected as soon as the timeout URI, no matter the user takes any action.

      Parameters:
      deviceType - the device type: ajax or mil. If null, ajax is assumed.
      Since:
      3.6.3
      See Also:
    • setClientErrorReload

      public String setClientErrorReload(String deviceType, int errCode, String uri, String connType)
      Sets the URI to redirect to, when ZK Client Engine receives an error.
      Parameters:
      deviceType - the device type: ajax or mil. If null, ajax is assumed.
      errCode - the error code.
      uri - the URI to redirect to. It cannot be null. If empty, the client will reload the same page again. If null, it is the same as removeClientErrorReload(java.lang.String, int, java.lang.String)
      connType - the connection type: au or server-push. If null, "au" is assumed.
      Returns:
      the previous URI associated with the specified error code
      Since:
      3.6.3
    • removeClientErrorReload

      public String removeClientErrorReload(String deviceType, int errCode, String connType)
      Removes the URI to redirect to, when ZK Client Engine receives an error.
      Parameters:
      deviceType - the device type: ajax or mil. If null, ajax is assumed.
      errCode - the error code.
      connType - the connection type: au or server-push. If null, "au" is assumed.
      Returns:
      the previous URI associated with the specified error code
      Since:
      3.6.3
    • getClientErrorReload

      public String getClientErrorReload(String deviceType, int errCode, String connType)
      Returns the URI that is associated with the specified error code, or null if no URI is associated.
      Parameters:
      deviceType - the device type: ajax or mil. If null, ajax is assumed.
      errCode - the error code.
      connType - the connection type: au or server-push. If null, "au" is assumed.
      Since:
      3.6.3
    • getClientErrorReloads

      public Object[][] getClientErrorReloads(String deviceType, String connType)
      Returns an array of pairs of the error code and URI info of the specified device and connection (never null).

      Default: none (none since 3.6.0, while older version: 302, 401 and 403 are associated with an empty URI).

      Parameters:
      deviceType - the device type: ajax or mil. If null, ajax is assumed.
      connType - the connection type: au or server-push. If null, "au" is assumed.
      Returns:
      an array of pairs (two-element arrays) of the error code and URI info. In other words, each element of the returned array is a pair of Integer and URIInfo. For example, [[410, new URIInfo("/login.zul")], [310, new URIInfo("/login2.zul")]].
      Since:
      3.6.3
    • setSessionMaxInactiveInterval

      public void setSessionMaxInactiveInterval(int secs)
      Specifies the time, in seconds, between client requests before ZK will invalidate the session.

      Default: 0 (means the system default).

      See Also:
    • getSessionMaxInactiveInterval

      public int getSessionMaxInactiveInterval()
      Returns the time, in seconds, between client requests before ZK will invalidate the session.

      Default: 0 (means the system default).

      A negative value indicates that there is no limit. Zero means to use the system default (usually defined in web.xml).

      See Also:
    • setSessionMaxDesktops

      public void setSessionMaxDesktops(int max)
      Specifies the maximal allowed number of desktop per session.

      Default: 15.

      A negative value indicates there is no limit.

      Since:
      3.0.1
    • getSessionMaxDesktops

      public int getSessionMaxDesktops()
      Returns the maximal allowed number of desktop per session.

      A negative value indicates there is no limit.

      Since:
      3.0.1
    • setSessionMaxRequests

      public void setSessionMaxRequests(int max)
      Specifies the maximal allowed number of concurrent requests per session.

      Default: 5.

      A negative value indicates there is no limit, but it is not recommended due to the possibility of the DoS attacks.

      Since:
      3.0.1
    • getSessionMaxRequests

      public int getSessionMaxRequests()
      Returns the maximal allowed number of concurrent requests per session.

      A negative value indicates there is no limit, but it is not recommended due to the possibility of the DoS attacks.

      Since:
      3.0.1
    • setSessionMaxPushes

      public void setSessionMaxPushes(int max)
      Specifies the maximal allowed number of concurrent server-pushes per session.

      Default: -1 (no limitation).

      Parameters:
      max - the maximal allowed number. A negative value indicates there is no limit.
      Since:
      5.0.0
    • getSessionMaxPushes

      public int getSessionMaxPushes()
      Returns the maximal allowed number of concurrent server-pushes per session.
    • setMaxSpareThreads

      public void setMaxSpareThreads(int max)
      Specifies the maximal allowed number of the spare pool for queuing the event processing threads (per Web application).

      Default: 100.

      A negative value indicates there is no limit.

      ZK uses a thread pool to keep the idle event processing threads. It speeds up the service of an event by reusing the thread queued in this pool.

      See Also:
    • getMaxSpareThreads

      public int getMaxSpareThreads()
      Returns the maximal allowed number of the spare pool for queuing event processing threads (per Web application).
      See Also:
    • setMaxSuspendedThreads

      public void setMaxSuspendedThreads(int max)
      Specifies the maximal allowed number of suspended event processing threads (per Web application).

      Default: -1 (no limit).

      A negative value indicates there is no limit.

      It is ignored if the use of the event processing thread is disable (isEventThreadEnabled().

    • getMaxSuspendedThreads

      public int getMaxSuspendedThreads()
      Returns the maximal allowed number of suspended event processing threads (per Web application).

      It is ignored if the use of the event processing thread is disable (isEventThreadEnabled().

      See Also:
    • enableEventThread

      public void enableEventThread(boolean enable)
      Deprecated.
      as of release 10.0.0. (not recommended to use in production)
      Sets whether to use the event processing thread.

      Default: false (disabled).

      Throws:
      IllegalStateException - if there is suspended thread and use is false.
    • isEventThreadEnabled

      public boolean isEventThreadEnabled()
      Deprecated.
      as of release 10.0.0. (not recommended to use in production)
      Returns whether to use the event processing thread.

      Default: false (disabled).

    • enableZScript

      public void enableZScript(boolean enable)
      Sets whether zscript is allowed.

      Default: true (enabled).

      Since:
      6.0.0
    • isZScriptEnabled

      public boolean isZScriptEnabled()
      Returns whether zscript is allowed.

      Default: true (enabled).

      Since:
      6.0.0
    • getMonitor

      public Monitor getMonitor()
      Returns the monitor for this application, or null if not set.
    • setMonitor

      public Monitor setMonitor(Monitor monitor)
      Sets the monitor for this application, or null to disable it.

      Default: null.

      There is at most one monitor for each Web application. The previous monitor will be replaced when this method is called.

      In addition to call this method, you could specify a monitor in zk.xml

      Parameters:
      monitor - the performance meter. If null, the meter function is disabled.
      Returns:
      the previous monitor, or null if not available.
    • getPerformanceMeter

      public PerformanceMeter getPerformanceMeter()
      Returns the performance meter for this application, or null if not set.
      Since:
      3.0.0
    • setPerformanceMeter

      public PerformanceMeter setPerformanceMeter(PerformanceMeter meter)
      Sets the performance meter for this application, or null to disable it.

      Default: null.

      There is at most one performance meter for each Web application. The previous meter will be replaced when this method is called.

      In addition to call this method, you could specify a performance meter in zk.xml

      Parameters:
      meter - the performance meter. If null, the meter function is disabled.
      Returns:
      the previous performance meter, or null if not available.
      Since:
      3.0.0
    • getExecutionMonitor

      public ExecutionMonitor getExecutionMonitor()
      Returns the execution monitor for this application, or null if not set.
      Since:
      6.0.0
    • setExecutionMonitor

      public ExecutionMonitor setExecutionMonitor(ExecutionMonitor monitor)
      Sets the execution monitor for this application, or null to disable it.

      Default: null.

      There is at most one execution monitor for each Web application. The previous meter will be replaced when this method is called.

      In addition to call this method, you could specify an execution monitor in zk.xml

      Parameters:
      monitor - the execution monitor. If null, the monitor function is disabled.
      Returns:
      the previous execution monitor, or null if not available.
      Since:
      6.0.0
    • getDesktopRecycle

      public DesktopRecycle getDesktopRecycle()
      Returns the desktop recycle for this application, or null if not set.
      Since:
      5.0.0
    • setDesktopRecycle

      public DesktopRecycle setDesktopRecycle(DesktopRecycle dtRecycle)
      Sets the desktop recycler for this application, or null to disable it.

      Default: null.

      There is at most one desktop recycle for each Web application. The previous instance will be replaced when this method is called.

      In addition to call this method, you could specify a desktop recycle in zk.xml

      Parameters:
      dtRecycle - the desktop recycle. If null, the recycle function is disabled.
      Returns:
      the previous desktop recycle, or null if not available.
      Since:
      5.0.0
    • getResponseCharset

      public String getResponseCharset()
      Returns the charset used to generate the HTTP response or null to use the container's default. It is currently used by DHtmlLayoutServlet,

      Default: UTF-8.

    • setResponseCharset

      public void setResponseCharset(String charset)
      Sets the charset used to generate HTTP response. It is currently used by DHtmlLayoutServlet,
      Parameters:
      charset - the charset to use. If null or empty, the container's default is used.
    • getPreference

      public String getPreference(String name, String defaultValue)
      Returns the value of the preference defined in zk.xml, or by setPreference(java.lang.String, java.lang.String).

      Preference is application specific. You can specify whatever you want as you specifying context-param for a Web application.

      Parameters:
      defaultValue - the default value that is used if the specified preference is not found.
    • setPreference

      public void setPreference(String name, String value)
      Sets the value of the preference.
    • getPreferenceNames

      public Set<String> getPreferenceNames()
      Returns a readonly set of all preference names.
    • addRichlet

      public Object addRichlet(String name, Class<?> richletClass, Map<String,String> params)
      Adds the definition of a richlet.

      If there was a richlet associated with the same name, the the old richlet will be replaced.

      Parameters:
      name - the richlet name
      params - the initial parameters, or null if no initial parameter at all. Once called, the caller cannot access params any more.
      Returns:
      the previous richlet class or class-name with the specified name, or null if no previous richlet.
    • addRichlet

      public Object addRichlet(String name, String richletClassName, Map<String,String> params)
      Adds the definition of a richlet.

      If there was a richlet associated with the same name, the the old servlet will be replaced.

      Parameters:
      name - the richlet name
      richletClassName - the class name. The class will be loaded only when the richlet is loaded.
      params - the initial parameters, or null if no initial parameter at all. Once called, the caller cannot access params any more.
      Returns:
      the previous richlet class or class-name with the specified name, or null if no previous richlet.
    • addRichlet

      public Object addRichlet(String name, Richlet richlet)
      Adds the richlet.

      If there was a richlet associated with the same name, the the old one will be replaced.

      Parameters:
      name - the richlet name
      richlet - the richlet implemetation.
      Returns:
      the previous richlet class or class-name with the specified name, or null if no previous richlet.
      Since:
      7.0.2
    • removeRichlet

      public Object removeRichlet(String name)
      Removes the richlet and associated richlet mappings.
      Parameters:
      name - the richlet name
      Returns:
      the removed richlet class or class-name with the specified name, or null if the richlet is not found.
      Since:
      7.0.2
    • addRichletMapping

      public void addRichletMapping(String name, String path)
      Adds a richlet mapping.
      Parameters:
      name - the name of the richlet.
      path - the URL pattern. It must start with '/' and may end with '/*'.
      Throws:
      UiException - if the richlet is not defined yet. See addRichlet(java.lang.String, java.lang.Class<?>, java.util.Map<java.lang.String, java.lang.String>).
      Since:
      2.4.0
    • getRichlet

      public Richlet getRichlet(String name)
      Returns an instance of richlet of the specified name, or null if not found.
    • getRichletByPath

      public Richlet getRichletByPath(String path)
      Returns an instance of richlet for the specified path, or null if not found.
    • detroyRichlets

      public void detroyRichlets()
      Destroys all richlets.
    • setKeepDesktopAcrossVisits

      public void setKeepDesktopAcrossVisits(boolean keep)
      Specifies whether to keep the desktops across visits. If false, the desktops are removed when an user reloads an URL or browses to another URL.

      Default: false.

    • isKeepDesktopAcrossVisits

      public boolean isKeepDesktopAcrossVisits()
      Returns whether to keep the desktops across visits. If false, the desktops are removed when an user reloads an URL or browses to another URL.
    • setTimerKeepAlive

      public void setTimerKeepAlive(boolean alive)
      Specifies whether to keep the session alive, when receiving the onTimer event.

      Default: false.

      A session is expired (and then invalidated), if it didn't receive any client request in the specified timeout interval (getSessionMaxInactiveInterval()). By setting this option to true, the session timeout will be reset when onTimer is received (just like any other event).

      Note: if true and the timer is shorter than the session timeout (getSessionMaxInactiveInterval()), the session is never expired.

      Parameters:
      alive - whether to keep the session alive when receiving onTimer
      Since:
      3.0.0
    • isTimerKeepAlive

      public boolean isTimerKeepAlive()
      Returns whether to keep the session alive, when receiving the onTimer event. In other words, it returns whether to reset the session timeout counter when receiving onTimer, just like any other events.
      Since:
      3.0.0
    • isDebugJS

      public boolean isDebugJS()
      Returns whether to debug JavaScript files. If true, it means the original (i.e., uncompressed) JavaScript files shall be loaded instead of the compressed JavaScript files.
      Since:
      3.0.4
      See Also:
    • setDebugJS

      public void setDebugJS(boolean debug)
      Sets whether to debug JavaScript files.

      Default: false.

      If true is specified, it will try to load the original Java (i.e., uncompressed) file instead of the compressed one. For example, if ClassWebResource.service(jakarta.servlet.http.HttpServletRequest, jakarta.servlet.http.HttpServletResponse) is called to load abc.js, and isDebugJS(), then ClassWebResource.service(jakarta.servlet.http.HttpServletRequest, jakarta.servlet.http.HttpServletResponse) will try to load abc.org.js first. If not found, it load ab.js insted.

      If isDebugJS() is false (default), abc.js is always loaded.

      Prior to 5.0.3, the setting won't affect JavaScript files that have been loaded. That is, the reboot is required.

      Parameters:
      debug - whether to debug JavaScript files. If true, the original JavaScript files shall be loaded instead of the compressed files.
      Since:
      3.0.4
    • setExpressionFactoryClass

      public void setExpressionFactoryClass(Class<? extends org.zkoss.xel.ExpressionFactory> expfcls)
      Sets the implementation of the expression factory that shall be used by the whole system.

      Default: null -- it means the org.zkoss.xel.el.ELFactory class (it requires zcommons-el.jar).

      Note: you can only specify an implementation that is compatible with JSP EL here, since ZK's builtin pages depend on it. However, you can use any factory you like in an individual page, as long as all expressions in the page follow the syntax of the evaluator you are using.

      Parameters:
      expfcls - the implemtation class, or null to use the default. Note: expfcls must implement ExpressionFactory.
      Since:
      3.0.0
    • getExpressionFactoryClass

      public Class<? extends org.zkoss.xel.ExpressionFactory> getExpressionFactoryClass()
      Returns the implementation of the expression factory that is used by the whole system, or null if the system default is used.
      Since:
      3.0.0
      See Also:
    • beforeSendEvent

      public Event beforeSendEvent(Event event)
      Invokes EventInterceptor.beforeSendEvent(org.zkoss.zk.ui.event.Event) registered by addListener(java.lang.Class<?>) with a class implementing EventInterceptor.

      Used only internally.

      Since:
      3.0.0
    • beforePostEvent

      public Event beforePostEvent(Event event)
      Invokes EventInterceptor.beforePostEvent(org.zkoss.zk.ui.event.Event) registered by addListener(java.lang.Class<?>) with a class implementing EventInterceptor.

      Used only internally.

      Since:
      3.0.0
    • beforeProcessEvent

      public Event beforeProcessEvent(Event event)
      Since:
      3.0.0
    • afterProcessEvent

      public void afterProcessEvent(Event event)
      Since:
      3.0.0
    • getAttributes

      public Map<String,Object> getAttributes()
      Returns a map of application-specific attributes.
      Since:
      5.0.0
    • getAttribute

      public Object getAttribute(String name)
      Returns the value of an application-specific attribute, or null if not found.
      Since:
      5.0.0
    • setAttribute

      public Object setAttribute(String name, Object value)
      Returns the value of an application-specific attribute.
      Parameters:
      value - the value of the attribute. If null, it means removal, i.e., removeAttribute(java.lang.String).
      Returns:
      the previous value, or null if no such value.
      Since:
      5.0.0
    • removeAttribute

      public Object removeAttribute(String name)
      Removes the value of an application-specific attribute.
      Returns:
      the previous value, or null if no such value.
      Since:
      5.0.0
    • addClientPackage

      public void addClientPackage(String pkg)
      Adds a client (JavaScript) package that is provided by this server.

      Default: none.

      If no package is defined (default), ZK Client Engine assumes all packages coming from the server generating the HTML page.

      However, it might not be true if you want to load some client codes from different server (such as Ajax-asService). Therefore, you have to invoke this method to add the client packages if this server is going to provide JavaScript codes for other servers.

      Since:
      5.0.0
    • getClientPackages

      public String[] getClientPackages()
      Returns a readonly list of the names of the client pages that are provided by this server
      Since:
      5.0.0
    • getEventTimeWarning

      public int getEventTimeWarning()
      Returns the time, in seconds, to show a warning message if an event has been processinged longer than it.

      Default: 600

      Since:
      3.6.3
    • setEventTimeWarning

      public void setEventTimeWarning(int secs)
      Set the time, in seconds, to show a warning message if an event has been processinged longer than it.
      Parameters:
      secs - the number of seconds. If a non-positive number is specified, no warning message at all.
      Since:
      3.6.3
    • addErrorPage

      public String addErrorPage(String deviceType, Class<?> type, String location)
      Adds an error page.
      Parameters:
      deviceType - the device type: ajax or mil
      type - what type of errors the error page is associated with.
      location - where is the error page.
      Returns:
      the previous location of the same error, or null if not defined yet.
      Since:
      2.4.1
    • getErrorPage

      public String getErrorPage(String deviceType, Throwable error)
      Returns the error page that matches the specified error, or null if not found.
      Parameters:
      deviceType - the device type: ajax or mil
      error - the exception being thrown
      Since:
      2.4.1
    • isCustomThemeProvider

      public boolean isCustomThemeProvider()
      Returns whether to use custom ThemeProvider. If true, it means the default ThemeProvider shall be ignored. It is set to true if declare custom ThemeProvider in zk.xml

      Default: false

      Since:
      7.0.0
    • setCustomThemeProvider

      public void setCustomThemeProvider(boolean customThemeProvider)
      Sets whether to use custom ThemeProvider.

      Default: false.

      It is set to true if declare custom ThemeProvider in zk.xml

      Note: internal use only

      Parameters:
      customThemeProvider - whether to use custom ThemeProvider.
      Since:
      7.0.0
    • isCustomThemeRegistry

      public boolean isCustomThemeRegistry()
      Returns whether to use custom ThemeRegistry. If true, it means the default ThemeRegistry shall be ignored. It is set to true if declare custom ThemeRegistry in zk.xml

      Default: false

      Since:
      7.0.0
    • setCustomThemeRegistry

      public void setCustomThemeRegistry(boolean customThemeRegistry)
      Sets whether to use custom ThemeRegistry.

      Default: false.

      It is set to true if declare custom ThemeRegistry in zk.xml.

      Note: internal use only

      Parameters:
      customThemeRegistry - whether to use custom ThemeRegistry.
      Since:
      7.0.0
    • isCustomThemeResolver

      public boolean isCustomThemeResolver()
      Returns whether to use custom ThemeResolver. If true, it means the default ThemeResolver shall be ignored. It is set to true if declare custom ThemeResolver in zk.xml

      Default: false

      Since:
      7.0.0
    • setCustomThemeResolver

      public void setCustomThemeResolver(boolean customThemeResolver)
      Sets whether to use custom ThemeResolver.

      Default: false.

      It is set to true if declare custom ThemeResolver in zk.xml.

      Note: internal use only

      Parameters:
      customThemeResolver - whether to use custom ThemeResolver.
      Since:
      7.0.0
    • setInitCrashScript

      public void setInitCrashScript(String script)
      Sets user customized init crash script

      User can customize init crash page layout by defining a javascript function which is assigned to window.zkShowCrashMessage

      Parameters:
      script -
      Since:
      7.0.4
    • setInitCrashTimeout

      public void setInitCrashTimeout(int timeout)
      Sets user customized init crash timeout

      User can customize init crash timeout by simply giving a number(sec).

      Parameters:
      timeout -
      Since:
      7.0.4
    • getInitCrashScript

      public String getInitCrashScript()
      Returns init crash script, if null, use default, see crashmsg.js
      Returns:
      String
      Since:
      7.0.4
    • getInitCrashTimeout

      public int getInitCrashTimeout()
      Returns init crash timeout, if -1, use default, which is 60 sec
      Returns:
      int
      Since:
      7.0.4
    • getBinderInitAttribute

      public String getBinderInitAttribute()
      Returns binder init attribute name
      Returns:
      String
      Since:
      8.0.0
    • setBinderInitAttribute

      public void setBinderInitAttribute(String binderInitAttribute)
      Set binder init attribute name
      Since:
      8.0.0
    • getBinderAnnotations

      public Set<String> getBinderAnnotations()
      Returns binder annotations
      Returns:
      Set
      Since:
      8.0.0
    • setBinderAnnotations

      public void setBinderAnnotations(Set<String> binderAnnotations)
      Set binder annotations
      Since:
      8.0.0
    • addDataHandler

      public void addDataHandler(DataHandlerInfo info)
      Adds client data attribute handler
      Since:
      8.0.0
    • getDataHandlers

      public Map<String,DataHandlerInfo> getDataHandlers()
      Returns all of the client data attribute handlers
      Since:
    • enableSourceMap

      public void enableSourceMap(boolean enable)
      Sets whether source map is enabled.

      Default: false (disabled).

      Since:
      8.5.0
    • isSourceMapEnabled

      public boolean isSourceMapEnabled()
      Returns whether source map is enabled.

      Default: false (disabled).

      Since:
      8.5.0
    • enableHistoryState

      public void enableHistoryState(boolean enable)
      Sets whether history state handle is enabled. If disabled, ZK won't generate any onHistoryPopState event even if history state is popped. It is desirable to avoid unnecessary events back to server if history state is handled by front-end.

      Default: true (enabled).

      Since:
      8.6.1
    • isHistoryStateEnabled

      public boolean isHistoryStateEnabled()
      Returns whether history state handle is enabled.

      Default: true (enabled).

      Since:
      8.6.1
    • setSendClientErrors

      public void setSendClientErrors(boolean send)
      Sets whether to send client errors to the server for logging the page url where the error occurred and its stack trace.

      Default: false.

      Since:
      10.0.0
    • isSendClientErrors

      public boolean isSendClientErrors()
      Returns whether to send client errors to the server for logging the page url where the error occurred and its stack trace.

      Default: false.

      Since:
      10.0.0