All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.zkoss.zk.ui.metainfo.ZScriptInfo Maven / Gradle / Ivy

There is a newer version: 10.0.0-jakarta
Show newest version
/* ZScriptInfo.java

	Purpose:
		
	Description:
		
	History:
		Thu Jul  7 11:23:01 TST 2011, Created by tomyeh

Copyright (C) 2011 Potix Corporation. All Rights Reserved.

*/
package org.zkoss.zk.ui.metainfo;

import java.net.URL;

import org.zkoss.util.resource.Locator;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.Page;
import org.zkoss.zk.ui.util.ConditionImpl;

/**
 * Represents a zscript element.
 * @author tomyeh
 * @since 6.0.0
 */
public class ZScriptInfo extends ConditionLeafInfo {
	private final ZScript _zs;
	private boolean _deferred;

	/** Creates a {@link ZScriptInfo} with the content directly.
	 *
	 * @param zslang the scripting language. If null, it is the same as
	 * {@link Page#getZScriptLanguage}.
	 * @param content the zscript content
	 */
	public ZScriptInfo(NodeInfo parent, String zslang, String content, ConditionImpl cond) {
		super(parent, cond);
		_zs = new ZScript(zslang, content);
	}

	/** Create a {@link ZScriptInfo} with an URL that is used to load the content.
	 *
	 * @param url the URL to load the content of zscript.
	 */
	public ZScriptInfo(NodeInfo parent, String zslang, URL url, ConditionImpl cond) {
		super(parent, cond);
		_zs = new ZScript(zslang, url);
	}

	/** Constructs a {@link ZScriptInfo} with an URL, which might contain an EL
	 * expression.
	 *
	 * @param url the URL. It may contain XEL expressions.
	 * @param locator the locator used to locate the zscript file
	 */
	public ZScriptInfo(NodeInfo parent, String zslang, String url, Locator locator, ConditionImpl cond) {
		super(parent, cond);
		_zs = new ZScript(parent.getEvaluatorRef(), zslang, url, locator);
	}

	/** Returns the {@link ZScript} object hold in this info.
	 */
	public ZScript getZScript() {
		_zs.setEvaluatorRef(_evalr); //in case that this info has been moved
		return _zs;
	}

	/** Returns the scripting language, or null if the default scripting language
	 * is preferred.
	 */
	public String getLanguage() {
		return _zs.getLanguage();
	}

	/** Sets the scripting language.
	 *
	 * @param zslang the scripting language. If null, the default scripting
	 * language is assume.
	 */
	public void setLanguage(String zslang) {
		_zs.setLanguage(zslang);
	}

	/** Returns the raw content.
	 * It is the content specified in the constructor
	 * ({@link #ZScriptInfo(NodeInfo, String, String, ConditionImpl)}.
	 * If URL is specified in the constructor, null is returned.
	 *
	 * 

On the other hand, {@link #getContent} will load the content * automatically if URL is specified. * * @return the raw content specified in the constructor, or null * if URL is specified instead. */ public String getRawContent() { return _zs.getRawContent(); } /** Returns the content of zscript. * If URL is specified, this method loads the content from it. * If URL is an EL expression, it will be evaluated first. * *

Note: before evaluating the returned script, you have to invoke * {@link #isEffective(Component)} or {@link #isEffective(Page)} first. * * @param page the page when this zscript is interpreted. * Used only if this object is constructed with {@link #ZScriptInfo(NodeInfo, String, String, Locator, ConditionImpl)}. * @param comp the component when this zscript is interpreted. * Used only if this object is constructed with {@link #ZScriptInfo(NodeInfo, String, String, Locator, ConditionImpl)}. * @exception org.zkoss.zk.ui.UiException if failed to load the content */ public String getContent(Page page, Component comp) { _zs.setEvaluatorRef(_evalr); //in case that this info has been moved return _zs.getContent(page, comp); } /** Returns whether the evaluation of the zscript shall be deferred. */ public boolean isDeferred() { return _deferred; } /** Sets whether the evaluation of the zscript shall be deferred. *

Default: false. */ public void setDeferred(boolean deferred) { _deferred = deferred; } //Object// public String toString() { return "[zscript: " + _zs + ']'; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy