⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 initiators.java

📁 非常接近C/S操作方式的Java Ajax框架-ZK 用ZK框架使你的B/S应用程序更漂亮更易操作。 官网:www.zkoss.org
💻 JAVA
字号:
/* Initiators.java{{IS_NOTE	Purpose:			Description:			History:		Wed Dec 14 09:02:20     2005, Created by tomyeh}}IS_NOTECopyright (C) 2005 Potix Corporation. All Rights Reserved.{{IS_RIGHT	This program is distributed under GPL Version 2.0 in the hope that	it will be useful, but WITHOUT ANY WARRANTY.}}IS_RIGHT*/package org.zkoss.zk.ui.impl;import java.util.Iterator;import java.util.List;import java.util.LinkedList;import org.zkoss.lang.Classes;import org.zkoss.util.logging.Log;import org.zkoss.zk.ui.Page;import org.zkoss.zk.ui.UiException;import org.zkoss.zk.ui.util.Initiator;import org.zkoss.zk.ui.metainfo.PageDefinition;/** * A helper class used with {@link org.zkoss.zk.ui.sys.UiEngine} to process * {@link Initiator} * @author tomyeh *//*package*/ class Initiators {	/*package(inner)*/ static final Log log = Log.lookup(Initiators.class);	/** Invokes {@link Initiator#doInit}, if any, and returns	 * an instance of{@link Initiators}.	 */	public static final Initiators doInit(PageDefinition pagedef, Page page) {		final List inits = pagedef.doInit(page);		if (inits.isEmpty()) return new Initiators();		return new RealInits(inits);	}	protected Initiators() {	}	public void doAfterCompose(Page page) throws Exception {	}	public void doCatch(Throwable t) {	}	public void doFinally() {	}}/*package*/ class RealInits extends Initiators {	private final List _inits;	/**	 * @param inits a collection of {@link Initiator}.	 */	/*package*/ RealInits(List inits) {		_inits = inits;			}	public void doAfterCompose(Page page) throws Exception {		for (Iterator it = _inits.iterator(); it.hasNext();) {			((Initiator)it.next()).doAfterCompose(page);		}	}	/** Invokes {@link Initiator#doCatch}.	 * It eats all exception without throwing one (but logging).	 * Caller has to re-throw the exception.	 */	public void doCatch(Throwable t) {		for (Iterator it = _inits.iterator(); it.hasNext();) {			final Initiator init = (Initiator)it.next();			try {				init.doCatch(t);			} catch (Throwable ex) {				Initiators.log.error(ex);			}		}	}	/** Invokes {@link Initiator#doFinally}.	 */	public void doFinally() {		Throwable t = null;		for (Iterator it = _inits.iterator(); it.hasNext();) {			final Initiator init = (Initiator)it.next();			try {				init.doFinally();			} catch (Throwable ex) {				Initiators.log.error(ex);				if (t == null) t = ex;			}		}		if (t != null) throw UiException.Aide.wrap(t);	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -