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

📄 jworksscreenfactory.java

📁 jworks program
💻 JAVA
字号:
/**
 * $RCSfile: JWorksScreenFactory.java,v $
 * $Revision: 1.1 $
 * $Date: 2004/08/26 11:10:26 $
 *
 * Copyright (C) 2002-2004 softme.org (Softme Studio). All rights reserved.
 * ===================================================================
 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED.  IN NO EVENT SHALL COOLSERVLETS INC. OR
 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 * ====================================================================
 */

package org.softme.jworks.assemblerbroker.util;

import org.apache.turbine.modules.Assembler;
import org.apache.turbine.services.assemblerbroker.util.java.JavaActionFactory;

/**
 * <code>JWorksScreenFactory</code> 用于替换<code>Turbine</code>默认的
 * <code>JavaScreenFactory</code> 以便获取{@link org.softme.jworks.assemblerbroker.util.JWorksScreenAssemblerProxy}替换掉默认
 * 的 Turbine Screen。
 * 需要修改 TurbineResources.properties 文件。
 * <ul>
 * <li>services.AssemblerBrokerService.screen=org.apache.turbine.services.assemblerbroker.util.java.JavaScreenFactory</li>
 * 为:
 * <li>services.AssemblerBrokerService.screen=org.softme.jworks.assemblerbroker.util.JWorksScreenFactory</li>
 * </ul><br>
 * @author <a href="mailto:brokendoor@sina.com">boon xiong</a>
 * @version CVS $Revision: 1.1 $ $Date: 2004/08/26 11:10:26 $
 */
public class JWorksScreenFactory extends JavaActionFactory {

    private boolean useJWorks = false;

    /* (non-Javadoc)
     * @see org.apache.turbine.services.assemblerbroker.util.AssemblerFactory#getAssembler(java.lang.String)
     */
    public Assembler getAssembler(String name) {
    	
        // TODO 如何判断是否使用jWork的Screen框架处理Screen?
    	
        // 通过对@param name 的判断来决定是否使用jWorks:
        // jWorks 的Screen Name 约定为 namespace/name.screen    	
        // Turbine Screen Name 是通过 TurbineTemplate.getScreenName(template) 从 
    	// template中分析出来的,
        // jworks通过JWorksParameterParser重载 ParameterParser分析ActionName。
        
        if (isJWorksScreen(name)) {
            // 这里使用xWork的Action支持框架
            return new JWorksScreenAssemblerProxy();
        } 
        
        // 使用Turbine的Screen加载方式
        return super.getAssembler(name);
    }

    /**
     * 判断是否为JWorks的Screen
     * @param name
     * @return
     */
    public boolean isJWorksScreen(String name) {
        int idx = name.lastIndexOf(".screen");
        return (idx==-1) ? false : true;
    }

}

⌨️ 快捷键说明

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