1 18 package org.apache.beehive.netui.tags.databinding.datagrid; 19 20 import javax.servlet.jsp.JspException ; 21 import javax.servlet.http.HttpServletRequest ; 22 23 import org.apache.beehive.netui.databinding.datagrid.api.exceptions.DataGridExtensionException; 24 import org.apache.beehive.netui.databinding.datagrid.api.rendering.DataGridTagModel; 25 import org.apache.beehive.netui.databinding.datagrid.api.rendering.PagerRenderer; 26 import org.apache.beehive.netui.databinding.datagrid.runtime.rendering.pager.FirstPreviousNextLastPagerRenderer; 27 import org.apache.beehive.netui.databinding.datagrid.runtime.rendering.pager.PreviousNextPagerRenderer; 28 import org.apache.beehive.netui.databinding.datagrid.runtime.util.JspUtil; 29 import org.apache.beehive.netui.databinding.datagrid.runtime.util.ExtensionUtil; 30 import org.apache.beehive.netui.databinding.datagrid.api.pager.PagerModel; 31 import org.apache.beehive.netui.tags.AbstractSimpleTag; 32 import org.apache.beehive.netui.util.logging.Logger; 33 import org.apache.beehive.netui.util.Bundle; 34 35 56 public class ConfigurePager 57 extends AbstractSimpleTag { 58 59 private static final Logger LOGGER = Logger.getInstance(ConfigurePager.class); 60 private static final String PAGER_FORMAT_FIRST_LAST_PREV_NEXT = "firstPrevNextLast"; 61 private static final String PAGER_FORMAT_PREV_NEXT = "prevNext"; 62 63 private Boolean _disableDefaultPager = null; 64 private Integer _pageSize = null; 65 private Integer _defaultPageSize = null; 66 private String _pagerFormat = null; 67 private String _pageHref = null; 68 private String _pageAction = null; 69 private String _pagerRendererClass = null; 70 71 75 public String getTagName() { 76 return "ConfigurePager"; 77 } 78 79 95 public void setPageSize(int pageSize) { 96 _pageSize = new Integer (pageSize); 97 } 98 99 141 public void setPagerFormat(String pagerFormat) { 142 _pagerFormat = pagerFormat; 143 } 144 145 157 public void setPageHref(String pageHref) { 158 _pageHref = pageHref; 159 } 160 161 173 public void setPageAction(String pageAction) { 174 _pageAction = pageAction; 175 } 176 177 191 public void setDisableDefaultPager(boolean disableDefaultPager) { 192 _disableDefaultPager = Boolean.valueOf(disableDefaultPager); 193 } 194 195 205 public void setPagerRendererClass(String pagerRendererClass) { 206 _pagerRendererClass = pagerRendererClass; 207 } 208 209 223 public void setDefaultPageSize(Integer defaultPageSize) { 224 _defaultPageSize = defaultPageSize; 225 } 226 227 232 public void doTag() 233 throws JspException { 234 235 DataGridTagModel dgm = DataGridUtil.getDataGridTagModel(getJspContext()); 236 if(dgm == null) 237 throw new JspException (Bundle.getErrorString("DataGridTags_MissingDataGridModel")); 238 239 PagerModel pm = dgm.getState().getPagerModel(); 240 assert pm != null; 241 242 if(_disableDefaultPager != null) 243 dgm.setDisableDefaultPagerRendering(_disableDefaultPager.booleanValue()); 244 245 if(_pageSize != null) 246 pm.setPageSize(_pageSize.intValue()); 247 248 if(_defaultPageSize != null) 249 pm.setDefaultPageSize(_defaultPageSize.intValue()); 250 251 PagerRenderer pagerRenderer = null; 252 if(_pagerRendererClass != null) { 253 try { 254 pagerRenderer = (PagerRenderer)ExtensionUtil.instantiateClass(_pagerRendererClass, PagerRenderer.class); 255 assert pagerRenderer != null : "Expected a non-null pager renderer of type \"" + _pagerRendererClass + "\""; 256 } 257 catch(DataGridExtensionException e) { 258 String msg = Bundle.getErrorString("ConfigurePager_CantCreateCustomPagerRenderer", new Object []{e}); 259 throw new JspException (msg, e); 260 } 261 } 262 else if(_pagerFormat != null) { 263 if(_pagerFormat.equals(PAGER_FORMAT_FIRST_LAST_PREV_NEXT)) 264 pagerRenderer = new FirstPreviousNextLastPagerRenderer(); 265 else if(_pagerFormat.equals(PAGER_FORMAT_PREV_NEXT)) 266 pagerRenderer = new PreviousNextPagerRenderer(); 267 else 268 throw new JspException (Bundle.getErrorString("ConfigurePager_UnsupportedPagerFormat", new Object []{_pagerFormat})); 269 } 270 271 if(pagerRenderer != null) 272 dgm.setPagerRenderer(pagerRenderer); 273 274 if(_pageHref != null && _pageAction != null) 275 throw new JspException (Bundle.getErrorString("ConfigurePager_CantSetHrefAndAction")); 276 277 if(_pageHref == null && _pageAction == null) { 278 LOGGER.info("The configurePager tag has no page action or HREF specified; using the current request URI instead."); 279 _pageHref = ((HttpServletRequest )JspUtil.getRequest(getJspContext())).getRequestURI(); 280 } 281 282 if(_pageHref != null) 283 pm.setPageHref(_pageHref); 284 285 if(_pageAction != null) 286 pm.setPageAction(_pageAction); 287 } 288 } 289 290 | Popular Tags |