Author: ekoneil Date: Mon Mar 28 20:35:58 2005 New Revision: 159347 URL: http://svn.apache.org/viewcvs?view=rev&rev=159347 Log: Bug fixes.
BEEHIVE-472 page size isn't encoded in the URL BEEHIVE-473 cellOnMouseUp attribute renders as onmousedown for data grid cell tags. This adds the "defaultPageSize" attribute to the <netui-data:configurePager> tag. This allows the default page size to be configured grid-by-grid. The default page size is 10; it is over-ridden by setting this value. Also fix the cellOnMouseUp attribute to render correctly (good catch, Nathan). BB: self BVT: NetUI pass Modified: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/pager/PagerModel.java incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/config/DefaultDataGridStateCodec.java incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/ConfigurePager.java incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/HeaderCell.java incubator/beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/datagrid/PagerModelTest.java incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/misc/messageOverrides.jsp incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/misc/pagerExplicitHref.jsp incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/misc/pagerImplicitHref.jsp incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/misc/pagerMessageOverrides.jsp incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/misc/stickyPagerParam.jsp incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/pager/basic/index.jsp incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/pager/customselect/index.jsp incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/pager/incaption/index.jsp incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/pager/infooter/index.jsp Modified: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/pager/PagerModel.java URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/pager/PagerModel.java?view=diff&r1=159346&r2=159347 ============================================================================== --- incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/pager/PagerModel.java (original) +++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/pager/PagerModel.java Mon Mar 28 20:35:58 2005 @@ -23,30 +23,44 @@ public class PagerModel { private static final int FIRST_ROW = 0; + private static final int DEFAULT_PAGE_SIZE = 10; public static final int DEFAULT_PAGE = 0; - public static final int DEFAULT_PAGE_SIZE = 10; public static final int DEFAULT_ROW = FIRST_ROW; private String _pageHref = null; private String _pageAction = null; private Integer _currentPage = null; - private Integer _currentPageSize = null; private Integer _currentRow = null; private Integer _dataSetSize = null; private Integer _lastPage = null; + private Integer _explicitPageSize = null; + private Integer _defaultPageSize = null; private int _prevPage = -1; private int _nextPage = -1; public PagerModel() { _currentPage = DEFAULT_PAGE; - _currentPageSize = DEFAULT_PAGE_SIZE; _currentRow = DEFAULT_ROW; updatePagerState(); } + public void setDefaultPageSize(int pageSize) { + if(pageSize < 1) + throw new IllegalArgumentException("Illegal default page size; the default page size must be greater than zero."); + + _defaultPageSize = new Integer(pageSize); + updatePagerState(); + } + + public int getDefaultPageSize() { + if(_defaultPageSize != null) + return _defaultPageSize.intValue(); + else return DEFAULT_PAGE_SIZE; + } + public void setDataSetSize(int dataSetSize) { _dataSetSize = new Integer(dataSetSize); updatePagerState(); @@ -75,14 +89,14 @@ } public int getPageSize() { - return (_currentPageSize != null ? _currentPageSize : DEFAULT_PAGE_SIZE); + return _explicitPageSize != null ? _explicitPageSize : getDefaultPageSize(); } public void setPageSize(int pageSize) { if(pageSize < 1) throw new IllegalArgumentException("Can not set a page size that is less than one."); - _currentPageSize = pageSize; + _explicitPageSize = pageSize; updatePagerState(); } Modified: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/config/DefaultDataGridStateCodec.java URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/config/DefaultDataGridStateCodec.java?view=diff&r1=159346&r2=159347 ============================================================================== --- incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/config/DefaultDataGridStateCodec.java (original) +++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/config/DefaultDataGridStateCodec.java Mon Mar 28 20:35:58 2005 @@ -135,10 +135,13 @@ if(row != null && row.intValue() != DEFAULT_ROW) map.put(PARAM_KEY_ROW, new String[] {encodeRow(row)}); -/* not encoding this in the URL yet - if(pageSize != null && pageSize.intValue() != DEFAULT_PAGE_SIZE) + /* only encode the page size if it is not equal to the default page size for this data grid + + for example, if a data grid's default page size is 20 but is set somehow by the application + to be 50, the default will read 20 but overridden pageSize value should be encoded in the URL + */ + if(pageSize != null && pageSize != _state.getPagerModel().getDefaultPageSize()) map.put(PARAM_KEY_PAGE_SIZE, new String[] {encodePageSize(pageSize)}); -*/ return map; } Modified: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/ConfigurePager.java URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/ConfigurePager.java?view=diff&r1=159346&r2=159347 ============================================================================== --- incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/ConfigurePager.java (original) +++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/ConfigurePager.java Mon Mar 28 20:35:58 2005 @@ -46,6 +46,7 @@ private boolean _disableDefaultPager = false; private Integer _pageSize = null; + private Integer _defaultPageSize = null; private String _pagerFormat = null; private String _pageHref = null; private String _pageAction = null; @@ -116,6 +117,16 @@ _pagerRendererClass = pagerRendererClass; } + /** + * @jsptagref.attributedescription Sets the class that renders the pager. + * @jsptagref.databindable true + * @jsptagref.attributesyntaxvalue <i>string</i> + * @netui:attribute required="false" rtexprvalue="true" + */ + public void setDefaultPageSize(Integer defaultPageSize) { + _defaultPageSize = defaultPageSize; + } + public void doTag() throws JspException { @@ -131,6 +142,9 @@ if(_pageSize != null) pm.setPageSize(_pageSize); + + if(_defaultPageSize != null) + pm.setDefaultPageSize(_defaultPageSize); if(_pagerRendererClass != null) { try { Modified: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/HeaderCell.java URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/HeaderCell.java?view=diff&r1=159346&r2=159347 ============================================================================== --- incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/HeaderCell.java (original) +++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/HeaderCell.java Mon Mar 28 20:35:58 2005 @@ -252,7 +252,7 @@ * @netui.tldx:attribute propertyclass="workshop.jspdesigner.properties.EventPropertyClass" category="event" */ public void setCellOnMouseUp(String onMouseUp) { - _cellState.registerAttribute(AbstractHtmlState.ATTR_JAVASCRIPT, HtmlConstants.ONMOUSEDOWN, onMouseUp); + _cellState.registerAttribute(AbstractHtmlState.ATTR_JAVASCRIPT, HtmlConstants.ONMOUSEUP, onMouseUp); } /** Modified: incubator/beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/datagrid/PagerModelTest.java URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/datagrid/PagerModelTest.java?view=diff&r1=159346&r2=159347 ============================================================================== --- incubator/beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/datagrid/PagerModelTest.java (original) +++ incubator/beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/datagrid/PagerModelTest.java Mon Mar 28 20:35:58 2005 @@ -43,7 +43,7 @@ PagerModel pm = DataGridTestUtil.getPagerModel(dgm); assertEquals("Invalid page", PagerModel.DEFAULT_PAGE, pm.getPage()); - assertEquals("Invalid page size", PagerModel.DEFAULT_PAGE_SIZE, pm.getPageSize()); + assertEquals("Invalid page size", pm.getDefaultPageSize(), pm.getPageSize()); assertEquals("Invalid row", PagerModel.DEFAULT_ROW, pm.getRow()); } @@ -57,6 +57,7 @@ DataGridTestUtil.initQueryString(_jspContext, "netui_row=bugs;4&netui_pagesize=bugs;2"); DataGridTagModel dgm = DataGridTestUtil.getDataGridTagModel(_jspContext, name); PagerModel pm = DataGridTestUtil.getPagerModel(dgm); + pm.setDefaultPageSize(2); assertEquals("Invalid page", 2, pm.getPage()); assertEquals("Invalid page size", 2, pm.getPageSize()); @@ -95,6 +96,32 @@ assertEquals("Invalid row", 7, pm.getRow()); } + public void testPagerModelPageSizeOverride() { + /* + row: 7 + pagesize: 3 + current page: 2 + */ + String name = "bugs"; + DataGridTestUtil.initQueryString(_jspContext, "netui_row=bugs;7&netui_pagesize=bugs;3"); + DataGridTagModel dgm = DataGridTestUtil.getDataGridTagModel(_jspContext, name); + PagerModel pm = DataGridTestUtil.getPagerModel(dgm); + + assertEquals(2, pm.getPage()); + assertEquals(3, pm.getPageSize()); + assertEquals(7, pm.getRow()); + + pm.setPageSize(12); + pm.setRow(0); /* this explicitly sets the current row to the beginning */ + assertEquals(12, pm.getPageSize()); + assertEquals(10, pm.getDefaultPageSize()); + assertEquals(0, pm.getLastPage()); + assertEquals(11, pm.getLastRowForPage()); + assertEquals(0, pm.getFirstPage()); + /* todo: not sure if this is right -- the nextPage should probably be 0 */ + assertEquals(1, pm.getNextPage()); + } + public void testPagerModel3() { /* row: 9 @@ -150,7 +177,7 @@ assertNotNull("Expected non-null PagerModel", pm); assertEquals("Invalid current row", PagerModel.DEFAULT_ROW, pm.getRow()); assertEquals("Invalid page", PagerModel.DEFAULT_PAGE, pm.getPage()); - assertEquals("Invalid page size", PagerModel.DEFAULT_PAGE_SIZE, pm.getPageSize()); + assertEquals("Invalid page size", pm.getDefaultPageSize(), pm.getPageSize()); assertEquals("Invalid first page", PagerModel.DEFAULT_PAGE, pm.getFirstPage()); assertEquals("Invalid next page", 1, pm.getNextPage()); Modified: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/misc/messageOverrides.jsp URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/misc/messageOverrides.jsp?view=diff&r1=159346&r2=159347 ============================================================================== --- incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/misc/messageOverrides.jsp (original) +++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/misc/messageOverrides.jsp Mon Mar 28 20:35:58 2005 @@ -14,7 +14,7 @@ <br/> <br/> <netui-data:dataGrid dataSource="pageScope.stocks" name="portfolio"> - <netui-data:configurePager pageSize="2"/> + <netui-data:configurePager defaultPageSize="2"/> <netui:behavior facet="resource" name="pager.msg.next" value=">>"/> <netui:behavior facet="resource" name="pager.msg.previous" value="<<"/> <netui-data:header> Modified: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/misc/pagerExplicitHref.jsp URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/misc/pagerExplicitHref.jsp?view=diff&r1=159346&r2=159347 ============================================================================== --- incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/misc/pagerExplicitHref.jsp (original) +++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/misc/pagerExplicitHref.jsp Mon Mar 28 20:35:58 2005 @@ -11,7 +11,7 @@ <netui:body> <datagrid:portfolioXmlBean/> <netui-data:dataGrid dataSource="pageScope.stocks" name="customers"> - <netui-data:configurePager pageSize="2" pageHref="pagerExplicitHref.jsp"/> + <netui-data:configurePager defaultPageSize="2" pageHref="pagerExplicitHref.jsp"/> <netui-data:caption> Customers </netui-data:caption> Modified: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/misc/pagerImplicitHref.jsp URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/misc/pagerImplicitHref.jsp?view=diff&r1=159346&r2=159347 ============================================================================== --- incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/misc/pagerImplicitHref.jsp (original) +++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/misc/pagerImplicitHref.jsp Mon Mar 28 20:35:58 2005 @@ -11,7 +11,7 @@ <netui:body> <datagrid:portfolioXmlBean/> <netui-data:dataGrid dataSource="pageScope.stocks" name="customers"> - <netui-data:configurePager pageSize="2"/> + <netui-data:configurePager defaultPageSize="2"/> <netui-data:caption> Customers </netui-data:caption> Modified: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/misc/pagerMessageOverrides.jsp URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/misc/pagerMessageOverrides.jsp?view=diff&r1=159346&r2=159347 ============================================================================== --- incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/misc/pagerMessageOverrides.jsp (original) +++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/misc/pagerMessageOverrides.jsp Mon Mar 28 20:35:58 2005 @@ -10,7 +10,7 @@ <datagrid:portfolioXmlBean/> <br/> <netui-data:dataGrid dataSource="pageScope.stocks" name="portfolio" resourceBundlePath="databinding.datagrid.resources.simple-test"> - <netui-data:configurePager pageSize="2"/> + <netui-data:configurePager defaultPageSize="2"/> <netui-data:header> <netui-data:headerCell headerText="Symbol"/> <netui-data:headerCell headerText="Price"/> Modified: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/misc/stickyPagerParam.jsp URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/misc/stickyPagerParam.jsp?view=diff&r1=159346&r2=159347 ============================================================================== --- incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/misc/stickyPagerParam.jsp (original) +++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/misc/stickyPagerParam.jsp Mon Mar 28 20:35:58 2005 @@ -14,7 +14,7 @@ <datagrid:portfolioXmlBean/> <br/> <netui-data:dataGrid dataSource="pageScope.stocks" name="portfolio"> - <netui-data:configurePager pageSize="2" pageHref="stickyPagerParam.jsp"/> + <netui-data:configurePager defaultPageSize="2" pageHref="stickyPagerParam.jsp"/> <netui-data:header> <netui-data:headerCell headerText="Symbol"/> <netui-data:headerCell headerText="Price"/> Modified: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/pager/basic/index.jsp URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/pager/basic/index.jsp?view=diff&r1=159346&r2=159347 ============================================================================== --- incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/pager/basic/index.jsp (original) +++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/pager/basic/index.jsp Mon Mar 28 20:35:58 2005 @@ -11,7 +11,7 @@ <datagrid:portfolioXmlBean/> <br/> <netui-data:dataGrid dataSource="pageScope.stocks" name="portfolio"> - <netui-data:configurePager pageSize="2" pagerFormat="firstPrevNextLast" pageAction="begin.do"/> + <netui-data:configurePager defaultPageSize="2" pagerFormat="firstPrevNextLast" pageAction="begin.do"/> <netui-data:header> <netui-data:headerCell headerText="Symbol"/> <netui-data:headerCell headerText="Price"/> Modified: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/pager/customselect/index.jsp URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/pager/customselect/index.jsp?view=diff&r1=159346&r2=159347 ============================================================================== --- incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/pager/customselect/index.jsp (original) +++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/pager/customselect/index.jsp Mon Mar 28 20:35:58 2005 @@ -12,7 +12,7 @@ <datagrid:portfolioXmlBean/> <br/> <netui-data:dataGrid dataSource="pageScope.stocks" name="portfolio"> - <netui-data:configurePager pageSize="2" pagerFormat="firstPrevNextLast" pageAction="begin.do" disableDefaultPager="true"/> + <netui-data:configurePager defaultPageSize="2" pagerFormat="firstPrevNextLast" pageAction="begin.do" disableDefaultPager="true"/> <netui-data:header> <netui-data:headerCell headerText="Symbol"/> <netui-data:headerCell headerText="Price"/> Modified: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/pager/incaption/index.jsp URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/pager/incaption/index.jsp?view=diff&r1=159346&r2=159347 ============================================================================== --- incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/pager/incaption/index.jsp (original) +++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/pager/incaption/index.jsp Mon Mar 28 20:35:58 2005 @@ -11,7 +11,7 @@ <datagrid:portfolioXmlBean/> <br/> <netui-data:dataGrid dataSource="pageScope.stocks" name="portfolio"> - <netui-data:configurePager pageSize="2" pagerFormat="firstPrevNextLast" pageAction="begin.do" disableDefaultPager="true"/> + <netui-data:configurePager defaultPageSize="2" pagerFormat="firstPrevNextLast" pageAction="begin.do" disableDefaultPager="true"/> <netui-data:header> <netui-data:headerCell headerText="Symbol"/> <netui-data:headerCell headerText="Price"/> Modified: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/pager/infooter/index.jsp URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/pager/infooter/index.jsp?view=diff&r1=159346&r2=159347 ============================================================================== --- incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/pager/infooter/index.jsp (original) +++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/pager/infooter/index.jsp Mon Mar 28 20:35:58 2005 @@ -11,7 +11,7 @@ <datagrid:portfolioXmlBean/> <br/> <netui-data:dataGrid dataSource="pageScope.stocks" name="portfolio"> - <netui-data:configurePager pageSize="2" pagerFormat="firstPrevNextLast" pageAction="begin.do" disableDefaultPager="true"/> + <netui-data:configurePager defaultPageSize="2" pagerFormat="firstPrevNextLast" pageAction="begin.do" disableDefaultPager="true"/> <netui-data:header> <netui-data:headerCell headerText="Symbol"/> <netui-data:headerCell headerText="Price"/>
