/** * Copyright (c) 2000-present Liferay, Inc. All rights reserved. * * This library is free software; you can redistribute it and/or modify it under * the terms of the GNU Lesser General Public License as published by the Free * Software Foundation; either version 2.1 of the License, or (at your option) * any later version. * * This library is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more * details. */ package com.liferay.taglib.ui; import com.liferay.portal.kernel.util.StringPool; import com.liferay.portal.kernel.util.StringUtil; import com.liferay.portal.kernel.util.Validator; import com.liferay.taglib.BaseBodyTagSupport; import com.liferay.taglib.util.IncludeTag; import javax.servlet.http.HttpServletRequest; import javax.servlet.jsp.JspException; /** * @author Brian Wing Shun Chan * @author Shuyang Zhou */ public class PanelTag extends IncludeTag { @Override public int doStartTag() throws JspException { HttpServletRequest request = (HttpServletRequest)pageContext.getRequest(); if (Validator.isNull(_id)) { _id = StringUtil.randomId(); } if (Validator.isNull(_parentId)) { BaseBodyTagSupport baseBodyTagSupport = (BaseBodyTagSupport)findAncestorWithClass( this, BaseBodyTagSupport.class); if (baseBodyTagSupport instanceof PanelContainerTag) { PanelContainerTag panelContainerTag = (PanelContainerTag)baseBodyTagSupport; _accordion = panelContainerTag.isAccordion(); _parentId = panelContainerTag.getId(); } } request.setAttribute( "liferay-ui:panel:accordion", String.valueOf(_accordion)); request.setAttribute( "liferay-ui:panel:collapsible", String.valueOf(_collapsible)); request.setAttribute("liferay-ui:panel:cssClass", _cssClass); request.setAttribute("liferay-ui:panel:defaultState", _defaultState); request.setAttribute("liferay-ui:panel:extended", _extended); request.setAttribute("liferay-ui:panel:helpMessage", _helpMessage); request.setAttribute("liferay-ui:panel:iconCssClass", _iconCssClass); request.setAttribute("liferay-ui:panel:id", _id); request.setAttribute("liferay-ui:panel:parentId", _parentId); request.setAttribute( "liferay-ui:panel:persistState", String.valueOf(_persistState)); request.setAttribute("liferay-ui:panel:state", _state); request.setAttribute("liferay-ui:panel:title", _title); super.doStartTag(); return EVAL_BODY_INCLUDE; } public void setCollapsible(boolean collapsible) { _collapsible = collapsible; } public void setCssClass(String cssClass) { _cssClass = cssClass; } public void setDefaultState(String defaultState) { _defaultState = defaultState; } public void setEndPage(String endPage) { _endPage = endPage; } public void setExtended(Boolean extended) { _extended = extended; } public void setHelpMessage(String helpMessage) { _helpMessage = helpMessage; } public void setIconCssClass(String iconCssClass) { _iconCssClass = iconCssClass; } public void setId(String id) { _id = id; } public void setMarkupView(String markupView) { _markupView = markupView; } public void setParentId(String parentId) { _parentId = parentId; } public void setPersistState(boolean persistState) { _persistState = persistState; } public void setStartPage(String startPage) { _startPage = startPage; } public void setState(String state) { _state = state; } public void setTitle(String title) { _title = title; } @Override protected void cleanUp() { _accordion = false; _collapsible = true; _cssClass = null; _defaultState = "open"; _endPage = null; _extended = null; _helpMessage = null; _iconCssClass = null; _id = null; _markupView = null; _parentId = StringPool.BLANK; _persistState = true; _startPage = null; _state = null; _title = null; } @Override protected String getEndPage() { if (Validator.isNull(_endPage)) { if (Validator.isNotNull(_markupView)) { return "/html/taglib/ui/panel/" + _markupView + "/end.jsp"; } return "/html/taglib/ui/panel/end.jsp"; } else { return _endPage; } } @Override protected String getStartPage() { if (Validator.isNull(_startPage)) { if (Validator.isNotNull(_markupView)) { return "/html/taglib/ui/panel/" + _markupView + "/start.jsp"; } return "/html/taglib/ui/panel/start.jsp"; } else { return _startPage; } } private boolean _accordion; private boolean _collapsible = true; private String _cssClass; private String _defaultState = "open"; private String _endPage; private Boolean _extended; private String _helpMessage; private String _iconCssClass; private String _id; private String _markupView; private String _parentId = StringPool.BLANK; private boolean _persistState = true; private String _startPage; private String _state; private String _title; }