Coverage Report - org.apache.tapestry.contrib.table.components.TableFormPages
 
Classes in this File Line Coverage Branch Coverage Complexity
TableFormPages
0%
0/35
0%
0/8
1.286
 
 1  
 // Copyright 2004, 2005 The Apache Software Foundation
 2  
 //
 3  
 // Licensed under the Apache License, Version 2.0 (the "License");
 4  
 // you may not use this file except in compliance with the License.
 5  
 // You may obtain a copy of the License at
 6  
 //
 7  
 //     http://www.apache.org/licenses/LICENSE-2.0
 8  
 //
 9  
 // Unless required by applicable law or agreed to in writing, software
 10  
 // distributed under the License is distributed on an "AS IS" BASIS,
 11  
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 12  
 // See the License for the specific language governing permissions and
 13  
 // limitations under the License.
 14  
 
 15  
 package org.apache.tapestry.contrib.table.components;
 16  
 
 17  
 import org.apache.tapestry.IRequestCycle;
 18  
 import org.apache.tapestry.contrib.table.model.ITableModelSource;
 19  
 import org.apache.tapestry.event.PageBeginRenderListener;
 20  
 import org.apache.tapestry.event.PageDetachListener;
 21  
 import org.apache.tapestry.event.PageEvent;
 22  
 
 23  
 /**
 24  
  * A low level Table component that renders the pages in the table.
 25  
  * 
 26  
  * This component is a variant of {@link org.apache.tapestry.contrib.table.components.TablePages}, 
 27  
  * but is designed for operation in a form. The necessary page data is stored 
 28  
  * in hidden fields, so that no StaleLink exceptions occur during a rewind. 
 29  
  * The links also submit the form, which ensures that the data in the other 
 30  
  * form fields is preserved even when the page chages.
 31  
  *  
 32  
  * The component must be wrapped by {@link org.apache.tapestry.contrib.table.components.TableView}.
 33  
  * <p>
 34  
  * The component generates a list of pages in the Table centered around the 
 35  
  * current one and allows you to navigate to other pages.
 36  
  * <p> 
 37  
  * Please see the Component Reference for details on how to use this component. 
 38  
  * 
 39  
  *  [<a href="../../../../../../../ComponentReference/contrib.TableFormPages.html">Component Reference</a>]
 40  
  * 
 41  
  * @author mindbridge
 42  
  *
 43  
  */
 44  
 public abstract class TableFormPages extends TablePages 
 45  
     implements PageDetachListener, PageBeginRenderListener
 46  
 {
 47  
     private int m_nCurrentPage;
 48  
     private int m_nPageCount;
 49  
     private int m_nStartPage;
 50  
     private int m_nStopPage;    
 51  
 
 52  
     public TableFormPages()
 53  0
     {
 54  0
         initialize();
 55  0
     }
 56  
 
 57  
     /**
 58  
      * @see org.apache.tapestry.event.PageDetachListener#pageDetached(org.apache.tapestry.event.PageEvent)
 59  
      */
 60  
     public void pageDetached(PageEvent event)
 61  
     {
 62  0
         initialize();
 63  0
     }
 64  
     
 65  
     /**
 66  
      * @see org.apache.tapestry.event.PageBeginRenderListener#pageBeginRender(org.apache.tapestry.event.PageEvent)
 67  
      */
 68  
     public void pageBeginRender(PageEvent event)
 69  
     {
 70  
         // values set during rewind are removed
 71  0
         initialize();
 72  0
     }
 73  
 
 74  
     /**
 75  
      * Initialize the values and return the object to operation identical
 76  
      * to that of the super class.
 77  
      */
 78  
     private void initialize()
 79  
     {
 80  0
         m_nCurrentPage = -1;
 81  0
         m_nPageCount = -1;
 82  0
         m_nStartPage = -1;
 83  0
         m_nStopPage = -1;
 84  0
     }
 85  
 
 86  
     // This would ideally be a delayed invocation -- called after the form rewind
 87  
     public void changePage(IRequestCycle objCycle)
 88  
     {
 89  0
         ITableModelSource objSource = getTableModelSource(); 
 90  0
         objSource.storeTableAction(new TableActionPageChange(getSelectedPage()));
 91  0
     }
 92  
 
 93  
     // defined in the JWC file
 94  
     public abstract int getSelectedPage();
 95  
 
 96  
 
 97  
     /**
 98  
      * @return the current page
 99  
      */
 100  
     public int getCurrentPage()
 101  
     {
 102  0
         if (m_nCurrentPage < 0)
 103  0
             m_nCurrentPage = super.getCurrentPage();
 104  0
         return m_nCurrentPage;
 105  
     }
 106  
 
 107  
     /**
 108  
      * @return number of all pages to display
 109  
      */
 110  
     public int getPageCount()
 111  
     {
 112  0
         if (m_nPageCount < 0)
 113  0
             m_nPageCount = super.getPageCount();
 114  0
         return m_nPageCount;
 115  
     }
 116  
 
 117  
     /**
 118  
      * @return the first page to display
 119  
      */
 120  
     public int getStartPage()
 121  
     {
 122  0
         if (m_nStartPage < 0)
 123  0
             m_nStartPage = super.getStartPage();
 124  0
         return m_nStartPage;
 125  
     }
 126  
 
 127  
     /**
 128  
      * @return the last page to display
 129  
      */
 130  
     public int getStopPage()
 131  
     {
 132  0
         if (m_nStopPage < 0)
 133  0
             m_nStopPage = super.getStopPage();
 134  0
         return m_nStopPage;
 135  
     }
 136  
 
 137  
     /**
 138  
      * @param i the current page
 139  
      */
 140  
     public void setCurrentPage(int i)
 141  
     {
 142  0
         m_nCurrentPage = i;
 143  0
     }
 144  
 
 145  
     /**
 146  
      * @param i number of all pages to display
 147  
      */
 148  
     public void setPageCount(int i)
 149  
     {
 150  0
         m_nPageCount = i;
 151  0
     }
 152  
 
 153  
     /**
 154  
      * @param i the first page to display
 155  
      */
 156  
     public void setStartPage(int i)
 157  
     {
 158  0
         m_nStartPage = i;
 159  0
     }
 160  
 
 161  
     /**
 162  
      * @param i the last page to display
 163  
      */
 164  
     public void setStopPage(int i)
 165  
     {
 166  0
         m_nStopPage = i;
 167  0
     }
 168  
 
 169  
 }