001
014
015 package com.liferay.taglib.ui;
016
017 import com.liferay.portal.kernel.servlet.PortalIncludeUtil;
018 import com.liferay.portal.kernel.servlet.taglib.BaseBodyTagSupport;
019 import com.liferay.portal.kernel.util.IntegerWrapper;
020 import com.liferay.portal.kernel.util.StringPool;
021 import com.liferay.portal.kernel.util.Validator;
022 import com.liferay.util.PwdGenerator;
023
024 import javax.servlet.http.HttpServletRequest;
025 import javax.servlet.jsp.JspException;
026 import javax.servlet.jsp.tagext.BodyTag;
027
028
031 public class PanelFloatingContainerTag
032 extends BaseBodyTagSupport implements BodyTag {
033
034 @Override
035 public int doAfterBody() {
036 HttpServletRequest request =
037 (HttpServletRequest)pageContext.getRequest();
038
039 IntegerWrapper panelCount = (IntegerWrapper)request.getAttribute(
040 "liferay-ui:panel-container:panelCount" + _id);
041
042 if ((panelCount != null) && (panelCount.getValue() == 1)) {
043
044 bodyContent.clearBody();
045
046 return EVAL_BODY_AGAIN;
047 }
048 else {
049 return SKIP_BODY;
050 }
051 }
052
053 @Override
054 public int doEndTag() throws JspException {
055 try {
056 HttpServletRequest request =
057 (HttpServletRequest)pageContext.getRequest();
058
059 IntegerWrapper panelCount = (IntegerWrapper)request.getAttribute(
060 "liferay-ui:panel-container:panelCount" + _id);
061
062 request.removeAttribute(
063 "liferay-ui:panel-container:panelCount" + _id);
064
065 if ((panelCount != null) && (panelCount.getValue() >= 1)) {
066 PortalIncludeUtil.include(pageContext, getStartPage());
067 }
068
069 writeBodyContent(pageContext.getOut());
070
071 if ((panelCount != null) && (panelCount.getValue() >= 1)) {
072 PortalIncludeUtil.include(pageContext, getEndPage());
073 }
074
075 request.removeAttribute("liferay-ui:panel-floating-container:id");
076 request.removeAttribute(
077 "liferay-ui:panel-floating-container:trigger");
078 request.removeAttribute(
079 "liferay-ui:panel-floating-container:accordion");
080 request.removeAttribute(
081 "liferay-ui:panel-floating-container:persistState");
082 request.removeAttribute(
083 "liferay-ui:panel-floating-container:paging");
084 request.removeAttribute(
085 "liferay-ui:panel-floating-container:pagingElements");
086 request.removeAttribute(
087 "liferay-ui:panel-floating-container:resultsPerPage");
088 request.removeAttribute(
089 "liferay-ui:panel-floating-container:width");
090 request.removeAttribute(
091 "liferay-ui:panel-floating-container:extended");
092 request.removeAttribute(
093 "liferay-ui:panel-floating-container:cssClass");
094
095 return EVAL_PAGE;
096 }
097 catch (Exception e) {
098 throw new JspException(e);
099 }
100 }
101
102 @Override
103 public int doStartTag() {
104 HttpServletRequest request =
105 (HttpServletRequest)pageContext.getRequest();
106
107 if (Validator.isNull(_id)) {
108 _id = PwdGenerator.getPassword(PwdGenerator.KEY3, 4);
109 }
110
111 request.setAttribute("liferay-ui:panel-floating-container:id", _id);
112 request.setAttribute(
113 "liferay-ui:panel-floating-container:trigger", _trigger);
114 request.setAttribute(
115 "liferay-ui:panel-floating-container:accordion",
116 String.valueOf(_accordion));
117 request.setAttribute(
118 "liferay-ui:panel-floating-container:persistState",
119 String.valueOf(_persistState));
120 request.setAttribute(
121 "liferay-ui:panel-floating-container:paging",
122 String.valueOf(_paging));
123 request.setAttribute(
124 "liferay-ui:panel-floating-container:pagingElements",
125 _pagingElements);
126 request.setAttribute(
127 "liferay-ui:panel-floating-container:resultsPerPage",
128 String.valueOf(_resultsPerPage));
129 request.setAttribute(
130 "liferay-ui:panel-floating-container:width",
131 String.valueOf(_width));
132 request.setAttribute(
133 "liferay-ui:panel-floating-container:extended", _extended);
134 request.setAttribute(
135 "liferay-ui:panel-floating-container:cssClass", _cssClass);
136 request.setAttribute(
137 "liferay-ui:panel-container:panelCount" + _id,
138 new IntegerWrapper());
139
140 return EVAL_BODY_BUFFERED;
141 }
142
143 public String getId() {
144 return _id;
145 }
146
147 public void setAccordion(boolean accordion) {
148 _accordion = accordion;
149 }
150
151 public void setCssClass(String cssClass) {
152 _cssClass = cssClass;
153 }
154
155 public void setEndPage(String endPage) {
156 _endPage = endPage;
157 }
158
159 public void setExtended(Boolean extended) {
160 _extended = extended;
161 }
162
163 public void setId(String id) {
164 _id = id;
165 }
166
167 public void setPaging(boolean paging) {
168 _paging = paging;
169 }
170
171 public void setPagingElements(String pagingElements) {
172 _pagingElements = pagingElements;
173 }
174
175 public void setPersistState(boolean persistState) {
176 _persistState = persistState;
177 }
178
179 public void setResultsPerPage(int resultsPerPage) {
180 _resultsPerPage = resultsPerPage;
181 }
182
183 public void setStartPage(String startPage) {
184 _startPage = startPage;
185 }
186
187 public void setTrigger(String trigger) {
188 _trigger = trigger;
189 }
190
191 public void setWidth(int width) {
192 _width = width;
193 }
194
195 protected String getEndPage() {
196 if (Validator.isNull(_endPage)) {
197 return _END_PAGE;
198 }
199 else {
200 return _endPage;
201 }
202 }
203
204 protected String getStartPage() {
205 if (Validator.isNull(_startPage)) {
206 return _START_PAGE;
207 }
208 else {
209 return _startPage;
210 }
211 }
212
213 private static final String _END_PAGE =
214 "/html/taglib/ui/panel_floating_container/end.jsp";
215
216 private static final String _START_PAGE =
217 "/html/taglib/ui/panel_floating_container/start.jsp";
218
219 private boolean _accordion;
220 private String _cssClass = StringPool.BLANK;
221 private String _endPage;
222 private Boolean _extended;
223 private String _id;
224 private boolean _paging;
225 private String _pagingElements = "ul";
226 private boolean _persistState;
227 private int _resultsPerPage = 1;
228 private String _startPage;
229 private String _trigger;
230 private int _width = 300;
231
232 }