/trunk/SPS/sps.administration/WEB-INF/src/pl/zgora/uz/wmie/fe/admin/ajax/table/action/CompanyTableAjaxAction.java

http://fatal-error.googlecode.com/ · Java · 149 lines · 60 code · 16 blank · 73 comment · 9 complexity · b2bffa2c838a61ac91dd8374e651ccee MD5 · raw file

  1. package pl.zgora.uz.wmie.fe.admin.ajax.table.action;
  2. import java.lang.reflect.Field;
  3. import java.util.ArrayList;
  4. import java.util.Iterator;
  5. import java.util.List;
  6. import java.util.Map;
  7. import java.util.Set;
  8. import javax.swing.plaf.basic.BasicBorders.MarginBorder;
  9. import org.apache.log4j.Logger;
  10. import org.hibernate.criterion.Criterion;
  11. import org.hibernate.criterion.MatchMode;
  12. import org.hibernate.criterion.ProjectionList;
  13. import org.hibernate.criterion.Projections;
  14. import org.hibernate.criterion.Order;
  15. import org.hibernate.criterion.Restrictions;
  16. import pl.zgora.uz.wmie.fe.gui.common.util.FiltersUtil;
  17. import pl.zgora.uz.wmie.fe.sps.database.classes.Administrator;
  18. import pl.zgora.uz.wmie.fe.sps.database.classes.Company;
  19. import pl.zgora.uz.wmie.fe.sps.business.service.CompanyService;
  20. import pl.zgora.uz.wmie.fe.sps.business.util.ValidatorUtil;
  21. import pl.zgora.uz.wmie.fe.sps.business.util.BusinessUtil;
  22. import pl.zgora.uz.wmie.fe.sps.business.dto.DataResult;
  23. public class CompanyTableAjaxAction extends BaseTableAjaxAction {
  24. private static final int ROW_AMOUNT = 10;
  25. @Override
  26. public DataResult tableAjax(Map<String, String> filters,
  27. String[] projections, String columnOrder, String columnOrderDir,
  28. int startIndex) throws Exception {
  29. CompanyService companyService = (CompanyService)BusinessUtil
  30. .findBusiness("CompanyService");
  31. List<Order> orders = null;
  32. // stala czesc sluzaca sortowaniu
  33. if (columnOrder.compareTo("null") != 0) {
  34. orders = new ArrayList<Order>();
  35. if (columnOrderDir.compareTo("desc") == 0) {
  36. orders.add(Order.desc(columnOrder));
  37. } else {
  38. orders.add(Order.asc(columnOrder));
  39. }
  40. }
  41. ProjectionList projectionList = Projections.projectionList();
  42. for (int i = 0; i < projections.length; i++) {
  43. projectionList.add(Projections.property(projections[i]));
  44. }
  45. List<Criterion> criterions = new ArrayList<Criterion>();
  46. startIndex = (startIndex - 1) * ROW_AMOUNT;
  47. DataResult dataResult=null;
  48. if (filters.size() > 0) {
  49. FiltersUtil filtersUtil = new FiltersUtil();
  50. criterions = filtersUtil.createCriteriaFromFilters(filters,Company.class);
  51. // if (!ValidatorUtil.isBlankOrNull(filters
  52. // .get(Company.PROPERTY_IDCOMPANY))) {
  53. // criterions.add(Restrictions.eq(Company.PROPERTY_IDCOMPANY,
  54. // Integer
  55. // .parseInt(filters
  56. // .get(Company.PROPERTY_IDCOMPANY))));
  57. // }
  58. // if (!ValidatorUtil.isBlankOrNull(filters
  59. // .get(Company.PROPERTY_ADDRESS))) {
  60. // criterions.add(Restrictions.like(
  61. // Company.PROPERTY_ADDRESS, filters
  62. // .get(Company.PROPERTY_ADDRESS),
  63. // MatchMode.START));
  64. // }
  65. // if (!ValidatorUtil.isBlankOrNull(filters
  66. // .get(Company.PROPERTY_EMAIL))) {
  67. // criterions.add(Restrictions.like(
  68. // Company.PROPERTY_EMAIL, filters
  69. // .get(Company.PROPERTY_EMAIL),
  70. // MatchMode.START));
  71. // }
  72. // if (!ValidatorUtil.isBlankOrNull(filters
  73. // .get(Company.PROPERTY_FIRSTNAMECONTACT))) {
  74. // criterions.add(Restrictions.like(
  75. // Company.PROPERTY_FIRSTNAMECONTACT, filters
  76. // .get(Company.PROPERTY_FIRSTNAMECONTACT),
  77. // MatchMode.START));
  78. // }
  79. // if (!ValidatorUtil.isBlankOrNull(filters
  80. // .get(Company.PROPERTY_LASTNAMECONTACT))) {
  81. // criterions.add(Restrictions.like(
  82. // Company.PROPERTY_LASTNAMECONTACT, filters
  83. // .get(Company.PROPERTY_LASTNAMECONTACT),
  84. // MatchMode.START));
  85. // }
  86. // if (!ValidatorUtil.isBlankOrNull(filters
  87. // .get(Company.PROPERTY_NAME))) {
  88. // criterions.add(Restrictions.like(
  89. // Company.PROPERTY_NAME, filters
  90. // .get(Company.PROPERTY_NAME),
  91. // MatchMode.START));
  92. // }
  93. // if (!ValidatorUtil.isBlankOrNull(filters
  94. // .get(Company.PROPERTY_REGISTRATIONDATE))) {
  95. // criterions.add(Restrictions.like(
  96. // Company.PROPERTY_REGISTRATIONDATE, filters
  97. // .get(Company.PROPERTY_REGISTRATIONDATE),
  98. // MatchMode.START));
  99. // }
  100. // if (!ValidatorUtil.isBlankOrNull(filters
  101. // .get(Company.PROPERTY_STATUS))) {
  102. // criterions.add(Restrictions.like(
  103. // Company.PROPERTY_STATUS, filters
  104. // .get(Company.PROPERTY_STATUS).charAt(0)));
  105. // }
  106. // if (!ValidatorUtil.isBlankOrNull(filters
  107. // .get(Company.PROPERTY_USERLOGIN))) {
  108. // criterions.add(Restrictions.like(
  109. // Company.PROPERTY_USERLOGIN, filters
  110. // .get(Company.PROPERTY_USERLOGIN),
  111. // MatchMode.START));
  112. // }
  113. //
  114. // if (!ValidatorUtil.isBlankOrNull(filters
  115. // .get(Company.PROPERTY_ADMINISTRATOR + "."
  116. // + Administrator.PROPERTY_LASTNAME))) {
  117. // criterions.add(Restrictions.like(
  118. // Company.PROPERTY_ADMINISTRATOR + "."
  119. // + Administrator.PROPERTY_LASTNAME, filters
  120. // .get(Company.PROPERTY_ADMINISTRATOR + "."
  121. // + Administrator.PROPERTY_LASTNAME)));
  122. // }
  123. }
  124. if (orders==null) {
  125. dataResult = companyService.findByParams(projectionList,
  126. criterions, startIndex, ROW_AMOUNT);
  127. } else {
  128. dataResult = companyService.findByParams(projectionList,
  129. criterions, orders, startIndex, ROW_AMOUNT);
  130. }
  131. return dataResult;
  132. }
  133. }