亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? namespaces.java

?? ZK 基礎介紹 功能操作 模塊 結合數據庫操作
?? JAVA
字號:
/* Namespaces.java{{IS_NOTE	Purpose:			Description:			History:		Fri Jun 16 00:01:09     2006, Created by tomyeh}}IS_NOTECopyright (C) 2006 Potix Corporation. All Rights Reserved.{{IS_RIGHT}}IS_RIGHT*/package org.zkoss.zk.scripting;import java.util.Map;import java.util.HashMap;import java.util.List;import java.util.LinkedList;import java.util.Iterator;import org.zkoss.util.logging.Log;import org.zkoss.zk.ui.Desktop;import org.zkoss.zk.ui.Page;import org.zkoss.zk.ui.Component;import org.zkoss.zk.ui.Execution;import org.zkoss.zk.ui.Executions;import org.zkoss.zk.scripting.util.SimpleNamespace;/** * {@link Namespace} relevant utilities. * * @author tomyeh */public class Namespaces {	private static final Log log = Log.lookup(Namespaces.class);	/** Prepares builtin variable before calling {@link Page#interpret}.	 *	 * <p>Typical use:	 * <pre><code>final Map backup = new HashMap();final Namespace ns = Namespaces.beforeInterpret(backup, comp, false);try {  Namespaces.backupVariable(backup, ns, "some");  page.interpret(zslang, zscript, ns); //it will push ns as the current namespace} finally {  Namespaces.afterInterpret(backup, ns, false);}</code></pre>	 *	 * <p>Another example:	 * <pre><code>final Map backup = new HashMap();final Namespace ns = Namespaces.beforeInterpret(backup, comp, true);try {  Namespaces.backupVariable(backup, ns, "some");  constr.validate(comp); //if constr might be an instance of a class implemented in zscript} finally {  Namespaces.afterInterpret(backup, ns, true);}</code></pre>	 *	 * <p>If you need to backup some variables, you can invoke	 * {@link #backupVariable} between {@link #beforeInterpret}	 * and {@link #afterInterpret}.	 *	 * @param backup the map to hold the backup variables. Never null.	 * @param comp the component, never null.	 * @param pushNS whether to make the namespace being returned	 * as the current namespace ({@link #getCurrent}).	 * Note: its value must be the same as the popNS argument of	 * {@link #afterInterpret}.	 * @return the namespace that owns the specified component	 */	public static final Namespace beforeInterpret(Map backup, Component comp,	boolean pushNS) {		Namespace ns = comp.getNamespace();		if (ns == null) ns = new SimpleNamespace();		backupVariable(backup, ns, "self");		backupVariable(backup, ns, "componentScope");		backupVariable(backup, ns, "arg");		ns.setVariable("self", comp, true);		ns.setVariable("componentScope",			comp.getAttributes(Component.COMPONENT_SCOPE), true);		final Execution exec = Executions.getCurrent();		final Object arg = exec != null ? exec.getArg(): null;		ns.setVariable("arg", arg, true);		if (pushNS) push(ns);		return ns;	}	/** Prepares builtin variable before calling	 * {@link org.zkoss.zk.ui.Page#interpret} or a method that might be	 * implemented with zscript.	 *	 * @see #beforeInterpret	 * @param backup the map to hold the backup variables. Never null.	 * @param page the page, never null.	 * @param pushNS whether to make the namespace being returned	 * as the current namespace ({@link #getCurrent}).	 * Note: its value must be the same as the popNS argument of	 * {@link #afterInterpret}.	 * @return the namespace that owns the specified page	 */	public static final Namespace beforeInterpret(Map backup, Page page,	boolean pushNS) {		final Namespace ns = page.getNamespace();		backupVariable(backup, ns, "arg");		final Execution exec = Executions.getCurrent();		final Object arg = exec != null ? exec.getArg(): null;		ns.setVariable("arg", arg, true);		if (pushNS) push(ns);		return ns;	}	/** Used with {@link #beforeInterpret} to clean up builtin	 * variables.	 *	 * @param backup the map to hold the backup variables. Never null.	 * It must be the same as the backup argument of {@link #beforeInterpret}.	 * @param ns the namespace returned by {@link #beforeInterpret}	 * @param popNS whether to pop out the current namespace.	 * Its value must be the same as the pushNS argument of {@link #beforeInterpret}.	 */	public static final void afterInterpret(Map backup, Namespace ns,	boolean popNS) {		for (Iterator it = backup.entrySet().iterator(); it.hasNext();) {			final Map.Entry me = (Map.Entry)it.next();			final String name = (String)me.getKey();			final Object val = me.getValue();			//if (D.ON && log.finerable()) log.finer("Restore "+name+"="+val);			if (val != VOID) ns.setVariable(name, val, true);			else ns.unsetVariable(name, true);		}		if (popNS) pop(ns);	}	/** Backup the specfied variable, such that it can be restored with	 * {@link #afterInterpret}.	 *	 * <p>Note: you have to invoke {@link #beforeInterpret} before calling	 * this method. Then, backup-ed variables will be restored together	 * when {@link #afterInterpret} is called.	 *	 * @param backup the map to hold the backup variables. Never null.	 * It must be the same as the backup argument of {@link #beforeInterpret}.	 * @param name the variable to backup.	 */	public static final void backupVariable(Map backup, Namespace ns, String name) {		final Object val = ns.getVariable(name, true);		backup.put(name,			val != null || ns.getVariableNames().contains(name) ? val: VOID);	}	private static final Object VOID = new Object();	/** Returns the current namespace.	 * The current namespace is the event target's namespace if this thread	 * is processing an event ({@link org.zkoss.zk.ui.event.Event#getTarget}.	 * Otherwise, the namespace of the page specified is assumed.	 *	 * <p>This method is used only to implement {@link org.zkoss.zk.scripting.Interpreter}.	 * You rarely need to access it other than implementing an interpreter.	 */	public static final Namespace getCurrent(Page page) {		final List nss = (List)_curnss.get();		final Namespace ns =			nss != null && !nss.isEmpty() ? (Namespace)nss.get(0): null;		return ns != null ? ns: page.getNamespace();	}	/** Pushes the specified namespace as the current namespace.	 *	 * @param ns the namespace. If null, it means page's namespace.	 */	private static final void push(Namespace ns) {		List nss = (List)_curnss.get();		if (nss == null)			_curnss.set(nss = new LinkedList());		nss.add(0, ns);	}	/** Pops the current namespce (pushed by {@link #push}).	 */	private static final void pop(Namespace ns) {		final List nss = (List)_curnss.get();		if (nss.remove(0) != ns)			log.realCauseBriefly(new IllegalStateException("Unmatched pop the current namespace"));	}	/** A stack of current namespace. */	private static final ThreadLocal _curnss = new ThreadLocal();}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
9l国产精品久久久久麻豆| 日本91福利区| 久久精品夜色噜噜亚洲a∨| 欧美日本在线看| 91蜜桃视频在线| 97se狠狠狠综合亚洲狠狠| proumb性欧美在线观看| 福利电影一区二区| 成人精品视频一区二区三区 | 中文字幕在线不卡视频| 26uuu亚洲综合色| 亚洲精品一区二区在线观看| 日韩女优制服丝袜电影| 久久久久久久久久美女| 国产精品久久久久影院老司| 国产性做久久久久久| 国产精品久久夜| 亚洲一二三区视频在线观看| 日韩成人免费电影| 国产一区二三区| 97久久超碰国产精品| 欧美日韩精品免费观看视频| 欧美一区二区三区成人| 国产午夜精品久久久久久免费视| 欧美国产亚洲另类动漫| 亚洲天堂免费在线观看视频| 亚洲国产精品久久人人爱| 丝袜亚洲精品中文字幕一区| 久久精品国产免费| 成人精品在线视频观看| 欧美日韩专区在线| 欧美大白屁股肥臀xxxxxx| 久久久99久久| 亚洲国产aⅴ天堂久久| 免费观看一级欧美片| 国产成a人亚洲精| 欧洲av在线精品| 2欧美一区二区三区在线观看视频| 中文字幕欧美一| 奇米色777欧美一区二区| 国产精品亚洲成人| 欧美日韩性生活| 日本一区二区成人| 免费在线观看日韩欧美| av亚洲精华国产精华| 欧美一区二区三区的| 亚洲精品一二三| 国产一区亚洲一区| 91麻豆精品国产自产在线观看一区| 日本一区二区电影| 日产欧产美韩系列久久99| 97se亚洲国产综合自在线不卡| 欧美一区二区日韩一区二区| **性色生活片久久毛片| 国产乱码一区二区三区| 欧美日韩电影在线| 亚洲欧美日韩综合aⅴ视频| 久久99久久99| 欧美一级二级在线观看| 一区二区欧美精品| 91麻豆自制传媒国产之光| wwwwww.欧美系列| 日韩高清欧美激情| 精品视频一区三区九区| 日韩理论电影院| 成人一区二区三区视频在线观看| 日韩欧美国产电影| 日本欧美在线看| 91精品国产色综合久久久蜜香臀| 亚洲综合丝袜美腿| 91美女片黄在线观看| 亚洲人成伊人成综合网小说| 粉嫩蜜臀av国产精品网站| 欧美精品一区二区三区很污很色的| 亚洲韩国一区二区三区| 欧美色窝79yyyycom| 一区二区三区四区蜜桃| 91成人在线观看喷潮| 一区二区在线看| 色婷婷久久久综合中文字幕| 成人欧美一区二区三区1314| av电影一区二区| 亚洲视频每日更新| 色噜噜夜夜夜综合网| 亚洲综合一区二区精品导航| 色欧美日韩亚洲| 亚洲一区日韩精品中文字幕| 欧美日韩一区在线| 日本伊人精品一区二区三区观看方式| 欧美日韩国产天堂| 免费视频最近日韩| 国产日韩v精品一区二区| 风流少妇一区二区| 亚洲精品日韩专区silk| 欧美色图一区二区三区| 日韩电影在线观看电影| 欧美成人bangbros| 成人av网址在线| 亚洲精品国产精华液| 欧美丰满美乳xxx高潮www| 毛片不卡一区二区| 国产精品超碰97尤物18| 欧美日本一道本在线视频| 裸体歌舞表演一区二区| 国产人成一区二区三区影院| 91免费精品国自产拍在线不卡| 亚洲成人免费看| 久久精品免视看| 91传媒视频在线播放| 国内偷窥港台综合视频在线播放| 欧美国产国产综合| 欧美性生交片4| 国内久久婷婷综合| 五月综合激情网| 国产免费观看久久| 制服丝袜一区二区三区| 高清日韩电视剧大全免费| 亚洲成a人片在线观看中文| 久久久精品欧美丰满| 欧美色男人天堂| 成人美女视频在线看| 久久国产免费看| 夜夜嗨av一区二区三区网页| 久久精品夜夜夜夜久久| 3d动漫精品啪啪一区二区竹菊| 成人黄色小视频| 韩国毛片一区二区三区| 亚洲一区二区欧美激情| 久久精品视频一区二区| 欧美一区二区三区的| 精品污污网站免费看| 波多野结衣的一区二区三区| 奇米影视7777精品一区二区| 亚洲精品免费视频| 中文字幕第一区第二区| 精品久久久久久久久久久久久久久| 一本久道中文字幕精品亚洲嫩| 国产很黄免费观看久久| 麻豆国产精品777777在线| 亚洲成人免费影院| 一区二区三区毛片| 亚洲日本欧美天堂| 国产精品九色蝌蚪自拍| 国产欧美精品日韩区二区麻豆天美| 日韩欧美一区二区视频| 欧美精品v国产精品v日韩精品 | 亚洲欧美日韩一区二区三区在线观看 | 日韩av在线播放中文字幕| 亚洲愉拍自拍另类高清精品| 中文字幕人成不卡一区| 国产精品每日更新在线播放网址| wwww国产精品欧美| 久久亚洲精精品中文字幕早川悠里| 在线不卡a资源高清| 欧美人xxxx| 欧美精品自拍偷拍| 91精品国产91综合久久蜜臀| 欧美老女人第四色| 91精品一区二区三区在线观看| 欧美在线不卡视频| 欧美老肥妇做.爰bbww视频| 在线播放欧美女士性生活| 欧美日本在线播放| 日韩亚洲欧美在线| 精品国产一区二区在线观看| 精品国产免费人成在线观看| 精品国产免费人成电影在线观看四季 | 日韩欧美一级精品久久| 日韩欧美专区在线| 国产亲近乱来精品视频| 国产精品久久久久久久蜜臀 | 欧美网站一区二区| 在线播放亚洲一区| 精品理论电影在线| 国产精品婷婷午夜在线观看| 国产精品国产自产拍高清av| 一区二区三区四区在线播放 | 成人一区二区三区视频在线观看| 成人白浆超碰人人人人| 欧美综合色免费| 日韩一级在线观看| 国产欧美日韩久久| 亚洲一卡二卡三卡四卡无卡久久 | 粉嫩av一区二区三区| 91国产精品成人| 精品少妇一区二区| 亚洲欧美一区二区久久| 日韩精品高清不卡| 成人在线视频首页| 欧美一级视频精品观看| 国产午夜亚洲精品理论片色戒| 亚洲欧美日韩综合aⅴ视频| 蜜臀精品久久久久久蜜臀| 国产99久久久精品| 欧美美女喷水视频| 国产精品乱码人人做人人爱| 日日夜夜一区二区| 国产91高潮流白浆在线麻豆| 欧美日韩综合不卡| 国产精品萝li|