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

📄 tabbedpanetag.java

📁 GridSphere 门户 提供一个基于 portlet 的高级开放源代码门户。GridSphere 是在欧盟提供基金的 GridLab 项目下开发的
💻 JAVA
字号:
/** * @author <a href="mailto:novotny@gridsphere.org">Jason Novotny</a> * @version $Id: TabbedPaneTag.java 4666 2006-03-27 17:47:56Z novotny $ */package org.gridsphere.provider.portletui.tags;import org.gridsphere.portlet.impl.SportletProperties;import org.gridsphere.portlet.impl.StoredPortletResponseImpl;import org.gridsphere.provider.portletui.beans.TabBean;import javax.portlet.PortletURL;import javax.portlet.RenderRequest;import javax.portlet.RenderResponse;import javax.servlet.ServletResponse;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.jsp.JspException;import javax.servlet.jsp.JspWriter;import javax.servlet.jsp.PageContext;import java.io.StringWriter;import java.util.ArrayList;import java.util.List;/** * A <code>TabbedPaneTag</code> represents a tabbed pane</code> */public class TabbedPaneTag extends BaseComponentTag {    protected String TAB_LABEL_PARAM = "ui.tab.label";    protected String currentPage = "";    protected String currentTabLabel = "";    protected List<TabBean> tabBeans = new ArrayList<TabBean>();    public void addTabBean(TabBean tabBean) {        tabBeans.add(tabBean);    }    public void setCurrentTab(String currentTab) {        this.currentTabLabel = currentTab;    }    public String getCurrentTab() {        return currentTabLabel;    }    public void setCurrentPage(String currentPage) {        this.currentPage = currentPage;    }    public int doStartTag() throws JspException {        super.doStartTag();        return EVAL_BODY_INCLUDE;    }    public int doEndTag() throws JspException {        if (tabBeans.isEmpty()) return EVAL_PAGE;        try {            RenderRequest req = (RenderRequest) pageContext.getAttribute(SportletProperties.RENDER_REQUEST, PageContext.REQUEST_SCOPE);            currentTabLabel = req.getParameter(TAB_LABEL_PARAM);            if (currentTabLabel == null) {                currentTabLabel = (String) req.getPortletSession(true).getAttribute(getClass().getName());            }            JspWriter out = pageContext.getOut();            out.println("<ul class=\"ui-tab\">");            // if this tab is not set, then use this tab (the first tab in the sequence)            if (currentTabLabel == null) {                currentTabLabel = ((TabBean) tabBeans.get(0)).getLabel();            }            RenderResponse res = (RenderResponse) pageContext.getAttribute(SportletProperties.RENDER_RESPONSE, PageContext.REQUEST_SCOPE);            // print out all tabs            for (int i = 0; i < tabBeans.size(); i++) {                TabBean tabBean = (TabBean) tabBeans.get(i);                PortletURL url = res.createRenderURL();                url.setParameter(TAB_LABEL_PARAM, tabBean.getLabel());                String href = url.toString();                if (tabBean.getLabel().equals(currentTabLabel)) {                    req.getPortletSession(true).setAttribute(getClass().getName(), currentTabLabel);                    currentPage = tabBean.getPage();                    out.println("<li class=\"selected\">");                } else {                    out.println("<li>");                }                out.println("<a href=\"" + href + "\">" + tabBean.getValue() + "</a>");                out.println("</li>");            }            out.println("</ul>");            StringWriter writer = new StringWriter();            ServletResponse sres = pageContext.getResponse();            if (res instanceof HttpServletResponse) {                HttpServletResponse hres = (HttpServletResponse) sres;                HttpServletRequest hreq = (HttpServletRequest) pageContext.getRequest();                StoredPortletResponseImpl resWrapper = new StoredPortletResponseImpl(hreq, hres, writer);                pageContext.getServletContext().getRequestDispatcher(currentPage).include(pageContext.getRequest(), resWrapper);                out.println(writer.getBuffer());            }            tabBeans.clear();        } catch (Exception e) {            throw new JspException(e);        }        super.release();        return EVAL_PAGE;    }}

⌨️ 快捷键说明

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