Advertisement
Guest User

Untitled

a guest
Nov 19th, 2013
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.33 KB | None | 0 0
  1. package hu.xxx.ddc.components;
  2.  
  3. import hu.xxx.ddc.model.DdcPDeps;
  4. import hu.xxx.ddc.services.DdcCustomBo;
  5. import java.io.Serializable;
  6. import java.util.Collections;
  7. import java.util.Comparator;
  8. import java.util.Iterator;
  9. import java.util.List;
  10. import org.apache.wicket.extensions.markup.html.repeater.data.sort.SortOrder;
  11. import org.apache.wicket.extensions.markup.html.repeater.data.table.filter.IFilterStateLocator;
  12. import org.apache.wicket.extensions.markup.html.repeater.util.SortableDataProvider;
  13. import org.apache.wicket.model.IDetachable;
  14. import org.apache.wicket.model.IModel;
  15. import org.apache.wicket.model.LoadableDetachableModel;
  16. import org.apache.wicket.model.PropertyModel;
  17. import org.hibernate.Criteria;
  18. import org.hibernate.Query;
  19. import org.hibernate.criterion.Restrictions;
  20.  
  21. /**
  22.  *
  23.  * @author user
  24.  */
  25. public class DdcPDepsDataProvider extends SortableDataProvider<DdcPDeps, String> implements IFilterStateLocator<DdcPDeps>,IDetachable {
  26.  
  27.     private static final long serialVersionUID = 1L;
  28.     private final DdcCustomBo customBo;
  29.     private DdcPDeps filter;
  30.     private transient List<DdcPDeps> filtered;
  31.     private final DdcPDepsDataProvider.SortableDataProviderComparator comparator = new DdcPDepsDataProvider.SortableDataProviderComparator();
  32.     private Criteria crit;
  33.  
  34.     public DdcPDepsDataProvider(DdcCustomBo customBo, DdcPDeps filter) {
  35.         setSort("pName", SortOrder.DESCENDING);
  36.  
  37.         this.customBo = customBo;
  38.         this.filter = filter;
  39.         initList();
  40.     }
  41.  
  42.     @Override
  43.     public IModel<DdcPDeps> model(final DdcPDeps object) {
  44.         return new LoadableDetachableModel<DdcPDeps>() {
  45.             @Override
  46.             protected DdcPDeps load() {
  47.                 return object;
  48.             }
  49.         };
  50.     }
  51.  
  52.     class SortableDataProviderComparator implements Comparator, Serializable {
  53.  
  54.         @Override
  55.         public int compare(Object o1, Object o2) {
  56.             PropertyModel<Comparable> model1 = new PropertyModel<Comparable>(o1, getSort().getProperty());
  57.             PropertyModel<Comparable> model2 = new PropertyModel<Comparable>(o2, getSort().getProperty());
  58.  
  59.             int result = model1.getObject().compareTo(model2.getObject());
  60.  
  61.             if (!getSort().isAscending()) {
  62.                 result = -result;
  63.             }
  64.  
  65.             return result;
  66.         }
  67.     }
  68.  
  69.     @Override
  70.     public Iterator<? extends DdcPDeps> iterator(long first, long count) {
  71.         initList();
  72.         Collections.sort(filtered, comparator);
  73.         return filtered.subList((int) first, Math.min((int) (first + count), filtered.size())).iterator();
  74.     }
  75.  
  76.     @Override
  77.     public long size() {
  78.         if (filtered != null) {
  79.             return filtered.size();
  80.         } else {
  81.             initList();
  82.             if (filtered != null) {
  83.                 return filtered.size();
  84.             } else {
  85.                 return 0;
  86.             }
  87.         }
  88.  
  89.     }
  90.  
  91.     private void initList() {
  92.         if (filtered == null
  93.                 || getFilterState() != null) {
  94.  
  95.             DdcPDeps u = (DdcPDeps) getFilterState();
  96.             try {
  97.                 if (u != null) {
  98.                     customBo.getDaoSession().beginTransaction();
  99.                     crit = customBo.getDaoSession().createCriteria(u.getClass());
  100.  
  101.                     if (u.getCru() != null) {
  102.                         crit.add(Restrictions.like("cru", u.getCru() + "%"));
  103.                     }
  104.                     this.filtered = customBo.findAll(crit);
  105.                 } else {
  106.                     Query q = customBo.getDaoSession().getNamedQuery("DdcPDeps.findAll");
  107.                     this.filtered = (List<DdcPDeps>) customBo.findAll(u.getClass(), q);
  108.                 }
  109.                 if (customBo.getDaoSession().getTransaction().isActive()) {
  110.                     customBo.getDaoSession().getTransaction().commit();
  111.                 }
  112.             } catch (Exception e) {
  113.                 if (customBo.getDaoSession().getTransaction().isActive()) {
  114.                     customBo.getDaoSession().getTransaction().rollback();
  115.                 }
  116.  
  117.             }
  118.  
  119.         }
  120.     }
  121.  
  122.     @Override
  123.     public DdcPDeps getFilterState() {
  124.         return (DdcPDeps) filter;
  125.     }
  126.  
  127.     @Override
  128.     public void setFilterState(DdcPDeps t) {
  129.         this.filter = (DdcPDeps) t;
  130.     }
  131. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement