org.zkoss.zk.ui.sys.PageCtrl Maven / Gradle / Ivy
/* PageCtrl.java
Purpose:
Description:
History:
Wed Jun 8 13:55:09 2005, Created by tomyeh
Copyright (C) 2005 Potix Corporation. All Rights Reserved.
{{IS_RIGHT
This program is distributed under LGPL Version 2.1 in the hope that
it will be useful, but WITHOUT ANY WARRANTY.
}}IS_RIGHT
*/
package org.zkoss.zk.ui.sys;
import java.io.IOException;
import java.io.Writer;
import java.util.Collection;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.Desktop;
import org.zkoss.zk.ui.Execution;
import org.zkoss.zk.ui.Page;
import org.zkoss.zk.ui.metainfo.ZScript;
/**
* Addition interface to {@link Page} for implementation purpose.
*
* Application developers shall never access any of this methods.
*
* @author tomyeh
*/
public interface PageCtrl {
/** Pre-initializes this page.
* It initializes {@link org.zkoss.zk.ui.Page#getDesktop},
* but it doesn't add this page to the desktop yet
* (which is done by {@link #init}).
*
*
Note: it is called before
* {@link org.zkoss.zk.ui.util.Initiator#doInit} and {@link #init}.
* Since {@link org.zkoss.zk.ui.Page#getDesktop} is initialized in this
* method, it is OK to create components in
* {@link org.zkoss.zk.ui.util.Initiator#doInit}.
*
* @since 3.5.2
*/
public void preInit();
/** Initializes this page by assigning the info provided by
* the specified {@link PageConfig}, and then adds it
* to a desktop (by use of {@link Execution#getDesktop}).
*
*
Note: this method is called after {@link #preInit} and
* {@link org.zkoss.zk.ui.util.Initiator#doInit}.
*
*
This method shall be called only after the current execution
* is activated.
*
* @param config the info about how to initialize this page
* @since 3.0.0
*/
public void init(PageConfig config);
/** Called when this page is about to be destroyed.
* It is called by desktop, after removing it from the desktop.
*/
public void destroy();
/** Returns the tags that shall be generated inside the head element
* and before ZK's default tags (never null).
* For example, it might consist of <meta> and <link>.
*
*
Since it is generated before ZK's default tags (such as CSS and JS),
* it cannot override ZK's default behaviors.
*
* @see #getAfterHeadTags
* @since 5.0.5
*/
public String getBeforeHeadTags();
/** Returns the tags that shall be generated inside the head element
* and after ZK's default tags (never null).
* For example, it might consist of <meta> and <link>.
*
*
Since it is generated after ZK's default tags (such as CSS and JS),
* it could override ZK's default behaviors.
*
* @see #getBeforeHeadTags
* @since 5.0.5
*/
public String getAfterHeadTags();
/** Adds the tags that will be generated inside the head element
* and before ZK's default tags. For example,
*
((PageCtrl)page).addBeforeHeadTags("");
*
* You could specify the link, meta and script directive to have the similar
* result.
* @since 5.0.5
*/
public void addBeforeHeadTags(String tags);
/** Adds the tags that will be generated inside the head element
* and after ZK's default tags. For example,
*
((PageCtrl)page).addBeforeHeadTags("");
*
* You could specify the link, meta and script directive to have the similar
* result.
* @since 5.0.5
*/
public void addAfterHeadTags(String tags);
/** Returns a readonly collection of response headers (never null).
* The entry is a three-element object array.
* The first element is the header name.
* The second element of the array is the value which is an instance of
* {@link java.util.Date} or {@link String} (and never null).
* The third element indicates whether to add (rather than set)
* theader. It is an instance of Boolean (and never null).
* @since 5.0.2
*/
public Collection