All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.tapestry.contrib.table.components.TablePages Maven / Gradle / Ivy

There is a newer version: 4.1.6
Show newest version
// Copyright 2004, 2005 The Apache Software Foundation
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package org.apache.tapestry.contrib.table.components;

import org.apache.tapestry.IRequestCycle;
import org.apache.tapestry.contrib.table.model.ITableModelSource;
import org.apache.tapestry.util.ComponentAddress;

/**
 * A low level Table component that renders the pages in the table.
 * This component must be wrapped by {@link org.apache.tapestry.contrib.table.components.TableView}.
 * 

* The component generates a list of pages in the Table centered around the * current one and allows you to navigate to other pages. *

* Please see the Component Reference for details on how to use this component. * * [Component Reference] * * @author mindbridge * */ public abstract class TablePages extends AbstractTableViewComponent { // Transient private int m_nDisplayPage; // Bindings public abstract int getPagesDisplayed(); /** * Returns the displayPage. * @return int */ public int getDisplayPage() { return m_nDisplayPage; } /** * Sets the displayPage. * @param displayPage The displayPage to set */ public void setDisplayPage(int displayPage) { m_nDisplayPage = displayPage; } public int getCurrentPage() { return getTableModelSource().getTableModel().getPagingState().getCurrentPage() + 1; } public int getPageCount() { return getTableModelSource().getTableModel().getPageCount(); } public boolean getCondBack() { return getCurrentPage() > 1; } public boolean getCondFwd() { return getCurrentPage() < getPageCount(); } public boolean getCondCurrent() { return getDisplayPage() == getCurrentPage(); } public int getStartPage() { int nCurrent = getCurrentPage(); int nPagesDisplayed = getPagesDisplayed(); int nRightMargin = nPagesDisplayed / 2; int nStop = nCurrent + nRightMargin; int nLastPage = getPageCount(); int nLeftAddon = 0; if (nStop > nLastPage) nLeftAddon = nStop - nLastPage; int nLeftMargin = (nPagesDisplayed - 1) / 2 + nLeftAddon; int nStart = nCurrent - nLeftMargin; int nFirstPage = 1; if (nStart < nFirstPage) nStart = nFirstPage; return nStart; } public int getStopPage() { int nCurrent = getCurrentPage(); int nPagesDisplayed = getPagesDisplayed(); int nLeftMargin = (nPagesDisplayed - 1) / 2; int nStart = nCurrent - nLeftMargin; int nFirstPage = 1; int nRightAddon = 0; if (nStart < nFirstPage) nRightAddon = nFirstPage - nStart; int nRightMargin = nPagesDisplayed / 2 + nRightAddon; int nStop = nCurrent + nRightMargin; int nLastPage = getPageCount(); if (nStop > nLastPage) nStop = nLastPage; return nStop; } public Integer[] getPageList() { int nStart = getStartPage(); int nStop = getStopPage(); Integer[] arrPages = new Integer[nStop - nStart + 1]; for (int i = nStart; i <= nStop; i++) arrPages[i - nStart] = new Integer(i); return arrPages; } public Object[] getFirstPageContext() { ComponentAddress objAddress = new ComponentAddress(getTableModelSource()); return new Object[] { objAddress, new Integer(1)}; } public Object[] getLastPageContext() { ComponentAddress objAddress = new ComponentAddress(getTableModelSource()); return new Object[] { objAddress, new Integer(getPageCount())}; } public Object[] getBackPageContext() { ComponentAddress objAddress = new ComponentAddress(getTableModelSource()); return new Object[] { objAddress, new Integer(getCurrentPage() - 1)}; } public Object[] getFwdPageContext() { ComponentAddress objAddress = new ComponentAddress(getTableModelSource()); return new Object[] { objAddress, new Integer(getCurrentPage() + 1)}; } public Object[] getDisplayPageContext() { ComponentAddress objAddress = new ComponentAddress(getTableModelSource()); return new Object[] { objAddress, new Integer(m_nDisplayPage)}; } public void changePage(IRequestCycle objCycle) { Object[] arrParameters = objCycle.getListenerParameters(); if (arrParameters.length != 2 && !(arrParameters[0] instanceof ComponentAddress) && !(arrParameters[1] instanceof Integer)) { // error return; } ComponentAddress objAddress = (ComponentAddress)arrParameters[0]; ITableModelSource objSource = (ITableModelSource)objAddress.findComponent(objCycle); int page = ((Integer)arrParameters[1]).intValue(); objSource.storeTableAction(new TableActionPageChange(page)); } public void setCurrentPage(ITableModelSource objSource, int nPage) { objSource.getTableModel().getPagingState().setCurrentPage(nPage - 1); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy