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

📄 abstractmenudisplayer.java

📁 文件树形浏览文件树形浏览文件树形浏览文件树形浏览文件树形浏览文件树形浏览文件树形浏览文件树形浏览
💻 JAVA
字号:
/*
 * AbstractMenuDisplayer.java
 *
 * Created on March 30, 2002, 3:34 PM
 */
package net.sf.navigator.displayer;

import net.sf.navigator.menu.MenuComponent;
import net.sf.navigator.menu.PermissionsAdapter;
import net.sf.navigator.util.MessageResources;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.PageContext;
import java.io.IOException;

/**
 * Abstract implementation of <code>MenuDisplayer</code> that can be used as
 * a basis for other menu displayers.
 *
 * @author  ssayles
 * @version
 */
public abstract class AbstractMenuDisplayer implements MenuDisplayer {
    //~ Instance fields ========================================================

    protected final transient Log log = LogFactory.getLog(getClass());
    protected String name;
    protected MessageResources displayStrings;
    protected JspWriter out;
    protected String target;

    /** Holds value of property permissionsAdapter. */
    protected PermissionsAdapter permissionsAdapter;
    protected MenuDisplayerMapping mapping;

    //~ Methods ================================================================

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getConfig() {
        String config = null;

        if (displayStrings != null) {
            config = displayStrings.getConfig();
        }

        return config;
    }

    public void setConfig(String config) {
        displayStrings = MessageResources.getMessageResources(config);
    }

    public String getTarget() {
        return target;
    }

    /**
     * Convenience method that will first return the target for the displayer
     * if it is not null.  If the displayer target is null, then it will
     * return <code>menu.getTarget()</code>.
     *
     * @return the target for the menu link.
     */
    protected String getTarget(MenuComponent menu) {
        String theTarget = null;

        if (target == null) {
            if (menu.getTarget() != null) {
                theTarget = menu.getTarget();
            }
        } else {
            theTarget = target;
        }

        return theTarget;
    }

    public void setTarget(String target) {
        this.target = target;
    }

    /**
     * Getter for property permissionsAdapter.
     * @return Value of property permissionsAdapter.
     */
    public PermissionsAdapter getPermissionsAdapter() {
        return this.permissionsAdapter;
    }

    /**
     * Setter for property permissionsAdapter.
     * @param permissionsAdapter New value of property permissionsAdapter.
     */
    public void setPermissionsAdapter(PermissionsAdapter permissionsAdapter) {
        this.permissionsAdapter = permissionsAdapter;
    }

    /**
     * Lifecycle method that should be called when the <code>MenuDisplayer</code>
     * is being prepared for use.
     *
     * @param pageContext The JSP pageContext to give the displayer access
     *              to any resources it may need.
     * @param mapping The menu displayer mapping used to embody the xml
     *              definition.
     */
    public void init(PageContext pageContext, MenuDisplayerMapping mapping) {
        this.out = pageContext.getOut();
        this.mapping = mapping;
    }

    public abstract void display(MenuComponent menu)
    throws JspException, IOException;

    public void end(PageContext pageContext) {}

    /**
     * Returns <code>true</code> if the specified component is usable.
     * If <code>permissionsAdapter</code> is not defined, this method will
     * return <code>true</code>.  Otherwise, the adapter will be used to check
     * permissions on the menu.
     *
     * @return <code>true</code> if the menu component is usable.
     * @param menu The menu component.
     */
    public boolean isAllowed(MenuComponent menu) {
        return permissionsAdapter == null || permissionsAdapter.isAllowed(menu);
    }
}

⌨️ 快捷键说明

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