Package com.adito.table.forms

Source Code of com.adito.table.forms.AbstractPagerForm

        /*
*  Adito
*
*  Copyright (C) 2003-2006 3SP LTD. All Rights Reserved
*
*  This program is free software; you can redistribute it and/or
*  modify it under the terms of the GNU General Public License
*  as published by the Free Software Foundation; either version 2 of
*  the License, or (at your option) any later version.
*  This program is distributed in the hope that it will be useful,
*  but WITHOUT ANY WARRANTY; without even the implied warranty of
*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
*  GNU General Public License for more details.
*
*  You should have received a copy of the GNU General Public
*  License along with this program; if not, write to the Free Software
*  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
     
package com.adito.table.forms;

import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpSession;

import org.apache.struts.action.ActionMapping;

import com.adito.core.forms.CoreForm;
import com.adito.navigation.AbstractFavoriteItem;
import com.adito.properties.PersistentSettings;
import com.adito.security.LogonControllerFactory;
import com.adito.security.SessionInfo;
import com.adito.table.Pager;
import com.adito.table.TableItem;
import com.adito.table.TableItemModel;

public class AbstractPagerForm<T extends TableItem> extends CoreForm {

    ArrayList accounts = new ArrayList();
    boolean isEditable;
    TableItemModel model;
    Pager pager;
    int startRow;
    String sortName;
    boolean sortReverse;
    int pageSize;
    HttpSession session;
    String filterText;
    String selectedItem;
    boolean filterMatchedNothing;
    List userFavorites;
    List globalFavorites;
    String defaultSortColumnId;
    boolean defaultSortReverse;

    public AbstractPagerForm(TableItemModel<T> model) {
        this.model = model;
        pager = new Pager(model);
    }
   
    public List getUserFavorites() {
        return userFavorites;
    }
   
    public void setUserFavorites(List userFavorites) {
        this.userFavorites = userFavorites;
    }
   
    public List getGlobalFavorites() {
        return globalFavorites;
    }
   
    public void setGlobalFavorites(List policyFavorites) {
        this.globalFavorites = policyFavorites;
    }
   
    public String getFavoriteType(int resourceId) {
        if(globalFavorites != null && globalFavorites.contains(new Integer(resourceId))) {
            return AbstractFavoriteItem.GLOBAL_FAVORITE;
        }
        else if(userFavorites != null && userFavorites.contains(new Integer(resourceId))) {
            return AbstractFavoriteItem.USER_FAVORITE;           
        }
        else {
            return AbstractFavoriteItem.NO_FAVORITE;
        }
    }
   
    public TableItemModel<T> getModel() {
        return model;
    }
   
    public String getFilterText() {
        return filterText;
    }
   
    public void setFilterText(String filterText) {
        this.filterText = filterText;
    }

    public void initialize(HttpSession session, String defaultSortColumnId) {
        initialize(session, defaultSortColumnId, false);
    }

    public void initialize(HttpSession session, String defaultSortColumnId, boolean defaultSortReverse) {
        this.session = session;
        this.defaultSortColumnId = defaultSortColumnId;
        this.defaultSortReverse = defaultSortReverse;
        model.clear();
       
        SessionInfo info = LogonControllerFactory.getInstance().getSessionInfo(session);
       
        if(pageSize != -1) {
            pager.setPageSize(pageSize);
            PersistentSettings.setIntValue(info, "pager." + model.getId() + ".pageSize", pageSize, 10);
        }
        else {
            pager.setPageSize(PersistentSettings.getIntValue(info, "pager." + model.getId() + ".pageSize", 10));
        }
       
        if(startRow != -1) {
            pager.setStartRow(startRow);
            session.setAttribute("pager." + model.getId() + ".startRow", new Integer(startRow));
        }
        else {
            Integer startRowAttr = (Integer)session.getAttribute("pager." + model.getId() + ".startRow");
            if(startRowAttr != null) {
                pager.setStartRow(startRowAttr.intValue());
            }
            else {
                pager.setStartRow(0);
            }
        }
        checkSort();
    }
   
    public String getSortName() {
        return sortName;
    }
   
    public void setSortName(String sortName) {
        this.sortName = sortName;
    }
   
    public boolean getSortReverse() {
        return sortReverse;
    }
   
    public void setSortReverse(boolean sortReverse) {
        this.sortReverse = sortReverse;
    }
   
    public int getStartRow() {
        return startRow;
    }
   
    public void setStartRow(int startRow) {
        this.startRow = startRow;
    }
   
    public int getPageSize() {
        return pageSize;
    }
   
    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }
   
    public Pager getPager() {
        return pager;
    }
   
    public String getSelectedItem() {
        return selectedItem;
    }
   
    public void setSelectedItem(String selectedItem) {
        this.selectedItem = selectedItem;
    }

    public void reset(ActionMapping mapping, javax.servlet.http.HttpServletRequest request) {
        startRow = -1;
        sortName = null;
        sortReverse = false;
        pageSize = -1;
    }
   
    protected void checkSort() {
        if(getSortName() != null) {
            String sortId = getSortName().substring(getSortName().lastIndexOf(".") + 1);
            getPager().setSortName(sortId);
            getPager().setSortReverse(getSortReverse());
            session.setAttribute("pager." + model.getId() + ".sortName", sortId);
            session.setAttribute("pager." + model.getId() + ".sortReverse", Boolean.valueOf(getSortReverse()));
        }
        else {
            /* If no sort name has been supplied then use whatever the last sort for this table
             * id.
             */
            String lastSortName = (String)session.getAttribute("pager." + model.getId() + ".sortName");
            if(lastSortName != null) {
                getPager().setSortName(lastSortName);
                getPager().setSortReverse(((Boolean)session.getAttribute("pager." + model.getId() + ".sortReverse")).booleanValue());
            }
            else {
                String colId =  defaultSortColumnId == null ? getModel().getColumnName(0) : defaultSortColumnId;
                getPager().setSortName(colId);
                getPager().setSortReverse(defaultSortReverse);
            }
            setSortName(getPager().getSortName());
            setSortReverse(getPager().getSortReverse());
        }
    }
}
TOP

Related Classes of com.adito.table.forms.AbstractPagerForm

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.