daily pastebin goal
8%
SHARE
TWEET

Simple PageableDatamodel impl

a guest Mar 12th, 2011 138 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package org.luca.jsf.model.rf;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.Collection;
  5. import java.util.Collections;
  6. import java.util.Comparator;
  7. import java.util.HashMap;
  8. import java.util.List;
  9. import java.util.Map;
  10.  
  11. import javax.faces.bean.ManagedBean;
  12.  
  13. import org.luca.domain.Item;
  14.  
  15.  
  16. @ManagedBean
  17. public class ItemModel extends PageableDatamodel<Item>
  18. {
  19.  
  20.         private static Map<Integer, Item> data;
  21.         static
  22.         {
  23.                 data = new HashMap<Integer, Item>();
  24.                 for ( Integer i = 0; i < 100; i++ )
  25.                 {
  26.                         Item mov = new Item( i, "item nr: " + i );
  27.                         data.put( i, mov );
  28.                 }
  29.         }
  30.  
  31.  
  32.         @Override
  33.         protected Item getItemById( Integer id )
  34.         {
  35.                 return data.get( id );
  36.         }
  37.  
  38.  
  39.         @Override
  40.         protected List<Item> getItemsRanged( int start, int numberOfRows )
  41.         {
  42.                 Collection<Item> set = data.values();
  43.                 List<Item> list = new ArrayList<Item>( set );
  44.                 Collections.sort( list, new Comparator<Item>()
  45.                 {
  46.                         @Override
  47.                         public int compare( Item o1, Item o2 )
  48.                         {
  49.                                 return o1.getId().compareTo( o2.getId() );
  50.                         }
  51.                 } );
  52.                 return list.subList( start, start + numberOfRows );
  53.         }
  54.  
  55.  
  56.         @Override
  57.         protected int getItemsTotalCount()
  58.         {
  59.                 return data.size();
  60.         }
  61.  
  62. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top