Package pl.zgora.uz.wmie.fe.ajax.table.action

Source Code of pl.zgora.uz.wmie.fe.ajax.table.action.DzialTableAjaxAction

package pl.zgora.uz.wmie.fe.ajax.table.action;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.hibernate.criterion.Criterion;
import org.hibernate.criterion.MatchMode;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.ProjectionList;
import org.hibernate.criterion.Projections;
import org.hibernate.criterion.Restrictions;

import pl.zgora.uz.wmie.fe.service.DzialService;
import pl.zgora.uz.wmie.fe.service.StanowiskoService;
import pl.zgora.uz.wmie.fe.dto.DataResult;
import pl.zgora.uz.wmie.fe.enums.DzialType;
import pl.zgora.uz.wmie.fe.hbm.classes.Dzial;
import pl.zgora.uz.wmie.fe.hbm.classes.Pracownik;
import pl.zgora.uz.wmie.fe.hbm.classes.Stanowisko;
import pl.zgora.uz.wmie.fe.util.BusinessUtil;
import pl.zgora.uz.wmie.fe.util.MessageUtil;
import pl.zgora.uz.wmie.fe.util.ValidatorUtil;

import org.directwebremoting.WebContext;
import org.directwebremoting.WebContextFactory;

public class DzialTableAjaxAction {
 
  private final static int ROW_AMOUNT = 10;
 
  public DataResult tableAjax(Map<String, String> filters,
      String[] projections, String columnOrder, String columnOrderDir,
      int startIndex) throws Exception {
    //dostep do sesji
DzialService dzialService = null;
   
    List<Order> orders = null;
    // stala czesc sluzaca sortowaniu
    if (columnOrder.compareTo("null") != 0) {
      orders = new ArrayList<Order>();
      if (columnOrderDir.compareTo("desc") == 0) {
        orders.add(Order.desc(columnOrder));
      } else {
        orders.add(Order.asc(columnOrder));
      }
    }
   
    try {
      dzialService = (DzialService) BusinessUtil
          .findBusiness("DzialService");

      ProjectionList projectionList = Projections.projectionList();
      for (int i = 0; i < projections.length; i++) {
        projectionList.add(Projections.property(projections[i]));
      }

      List<Criterion> criterions = new ArrayList<Criterion>();
      if (filters.size() > 0) {
        if (!ValidatorUtil.isBlankOrNull(filters
            .get(Dzial.PROPERTY_ID))) {
          criterions.add(Restrictions.eq(Dzial.PROPERTY_ID,
              Integer.parseInt(filters
                  .get(Dzial.PROPERTY_ID))));
        }
        if (!ValidatorUtil.isBlankOrNull(filters
            .get(Dzial.PROPERTY_NAZWA_DZIALU))) {
          criterions.add(Restrictions.like(Dzial.PROPERTY_NAZWA_DZIALU,
              filters.get(Dzial.PROPERTY_NAZWA_DZIALU),
              MatchMode.START));
        }
        if (!ValidatorUtil.isBlankOrNull(filters
            .get(Dzial.PROPERTY_TYP))) {
          criterions.add(Restrictions.eq(Dzial.PROPERTY_TYP,
              filters.get(Dzial.PROPERTY_TYP)));
        }
        if (!ValidatorUtil.isBlankOrNull(filters
            .get(Dzial.PROPERTY_OBJECT_PRACOWNIKS + "."
                + Pracownik.PROPERTY_ID))) {
          criterions.add(Restrictions.eq(
              Dzial.PROPERTY_OBJECT_PRACOWNIKS + "."
                  + Pracownik.PROPERTY_ID,
              Integer.valueOf(filters
                  .get(Dzial.PROPERTY_OBJECT_PRACOWNIKS
                      + "." + Pracownik.PROPERTY_ID))));
        }
      }
      DataResult dane = null;

      startIndex = (startIndex - 1) * ROW_AMOUNT;

      if (orders != null) {
        dane = dzialService.findByParams(projectionList,
            criterions, orders, startIndex, ROW_AMOUNT);
      } else {
        dane = dzialService.findByParams(projectionList,
            criterions, startIndex, ROW_AMOUNT);
      }

      //Ta petla bedzie maksymalnie takiej dlugosci ile wierszy na tabeli w
      //tym przypadku 10
      if(dane.getRowCount() > 0){
        for(Object[] element : dane.getRows()){
          if(element[2] instanceof DzialType){
            element[2] = ((DzialType)element[2]).getDescription();
          }
        }
      }
      dane.setRowsPerPage(ROW_AMOUNT);
      return dane;

    } catch (Exception e) {
      e.printStackTrace();
      //pobranie req przy Ajaxie DWR
      WebContext ctx = WebContextFactory.get();
      HttpServletRequest req = ctx.getHttpServletRequest();
      throw new Exception(MessageUtil.getMessage("stanowiska.table.exception", req.getLocale()));
    }
  }

}
TOP

Related Classes of pl.zgora.uz.wmie.fe.ajax.table.action.DzialTableAjaxAction

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.