/*
 * Displayer.java
 *
 * Created on January 28, 2001, 9:57 PM
 */
package es.ejie.frmk.presentacion.iu.taglib.html.menu.displayer;

import java.io.IOException;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.PageContext;

import es.ejie.frmk.presentacion.iu.taglib.html.menu.base.Q70MenuComponent;

/**
 *
 * @author  ssayles
 * @version
 */
public interface Q70MenuDisplayer {
    //~ Static fields/initializers =============================================

    public static final String DEFAULT_CONFIG =
        "es.ejie.frmk.presentacion.iu.taglib.html.menu.displayer.DisplayerStrings";
    public static final String _SELF = "_self";
    public static final String NBSP = "&nbsp;";
    public static final String EMPTY = "";

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


    /**
     * Display Menu
     * @param menu
     * @param pageContext
     */
    public void display(Q70MenuComponent menu,PageContext pageContext) throws JspException, IOException;

    /**
     * Returns the name of the <code>Q70MenuDisplayer</code>.
     * @return Value of property name.
     */
    
    public String getName();

    /**
     * Sets the name of the <code>Q70MenuDisplayer</code>
     * @param name New value of property name.
     */
    public void setName(String name);

    /**
     * Returns the name of the message resources bundle that contains
     * display and/or configuration definitions.
     *
     * @return Value of property config.
     */
    public String getConfig();

    /**
     * Sets the name of the message resources bundle that contains
     * display and/or configuration definitions.
     *
     * @param config New value of property config.
     */
    public void setConfig(String config);

    /**
     * Returns the target name for any hrefs that may be generated.
     *
     * @return the value for target.
     */
    public String getTarget();

    /** Setter for property target.
     * @param target New value of property target.
     */
    public void setTarget(String target);

    /**
     * Lifecycle method that should be called when the <code>Q70MenuDisplayer</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, Q70MenuDisplayerMapping mapping) throws JspException;

    /**
     * Lifecycle method that should be called when the <code>Q70MenuDisplayer</code>
     * is done being used.
     *
     * @param pageContext The JSP pageContext to give the displayer access
     *              to any resources it may need.
     */
    public void end(PageContext pageContext);

}
