Package cn.org.rapid_framework.extremecomponents

Source Code of cn.org.rapid_framework.extremecomponents.ExtremeTablePageRequestFactory

package cn.org.rapid_framework.extremecomponents;

import java.sql.Timestamp;
import java.util.HashMap;
import java.util.Map;

import org.extremecomponents.table.limit.Filter;
import org.extremecomponents.table.limit.Limit;
import org.extremecomponents.table.limit.Sort;

import cn.org.rapid_framework.beanutils.BeanUtils;
import cn.org.rapid_framework.page.PageRequest;

/**
* @author badqiu
*/
public class ExtremeTablePageRequestFactory {
 
    /**
   * 通过ExtremeTable的Limit对象创建PageRequest对象
   * @param limit
   * @param defaultSortColumns 默认的排序字段s,如 username desc,age asc
   * @return
   * @deprecated 使用bindPageRequest()替换
   */
  public static PageRequest<Map> createFromLimit(Limit limit,String defaultSortColumns) {
    PageRequest result = new PageRequest();
    return bindPageRequest(result,limit, defaultSortColumns);
  }
 
  /**
   * @deprecated 使用bindPageRequest()替换
   */
    public static PageRequest createFromLimit(Limit limit) {
        return createFromLimit(limit,null);
    }
 
    /**
     * 绑定PageRequest的属性值
     */
    public static PageRequest<Map> bindPageRequest(PageRequest pageRequest,Limit limit,String defaultSortColumns) {
        Map filters = getFilters(limit);
        pageRequest.setFilters(filters);
        BeanUtils.copyProperties(pageRequest, filters);
       
        pageRequest.setPageNumber(limit.getPage());
    pageRequest.setPageSize(limit.getCurrentRowsDisplayed());
    pageRequest.setSortColumns(getSortingColumns(limit, defaultSortColumns));
    return pageRequest;
    }
 
  private static Map getFilters(Limit limit) {
    Filter[] filters = limit.getFilterSet().getFilters();
    Map result = new HashMap();
    for(int i = 0; i < filters.length; i++) {
      Filter filter = filters[i];
      result.put(filter.getAlias(), filter.getValue());
    }
    return result;
  }

  private static String getSortingColumns(Limit limit, String defaultSortColumns) {
    Sort sort = limit.getSort();
    if(sort.getProperty() == null) {
      return defaultSortColumns;
    }
   
    String sortOrder = sort.getSortOrder() == null ? ""  : " " + sort.getSortOrder();
    String column = sort.isAliased() ? sort.getAlias() : sort.getProperty();
    String sortColumns = column + sortOrder;
    return sortColumns;
  }

}
TOP

Related Classes of cn.org.rapid_framework.extremecomponents.ExtremeTablePageRequestFactory

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.