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