Paging Grid In Ext Gwt

Paging Grid In Ext GWT  Sample Code


  1. package com.extjs.gxt.samples.client.examples.grid;  
  2.   
  3. import java.util.ArrayList;  
  4. import java.util.List;  
  5. import java.util.Map;  
  6.   
  7. import com.extjs.gxt.samples.client.ExampleServiceAsync;  
  8. import com.extjs.gxt.samples.client.Examples;  
  9. import com.extjs.gxt.samples.client.examples.model.Post;  
  10. import com.extjs.gxt.samples.resources.client.Resources;  
  11. import com.extjs.gxt.ui.client.Registry;  
  12. import com.extjs.gxt.ui.client.Style.SortDir;  
  13. import com.extjs.gxt.ui.client.data.BasePagingLoadConfig;  
  14. import com.extjs.gxt.ui.client.data.BasePagingLoader;  
  15. import com.extjs.gxt.ui.client.data.ModelData;  
  16. import com.extjs.gxt.ui.client.data.PagingLoadConfig;  
  17. import com.extjs.gxt.ui.client.data.PagingLoadResult;  
  18. import com.extjs.gxt.ui.client.data.PagingLoader;  
  19. import com.extjs.gxt.ui.client.data.RpcProxy;  
  20. import com.extjs.gxt.ui.client.event.Events;  
  21. import com.extjs.gxt.ui.client.event.GridEvent;  
  22. import com.extjs.gxt.ui.client.event.Listener;  
  23. import com.extjs.gxt.ui.client.store.ListStore;  
  24. import com.extjs.gxt.ui.client.widget.ContentPanel;  
  25. import com.extjs.gxt.ui.client.widget.LayoutContainer;  
  26. import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;  
  27. import com.extjs.gxt.ui.client.widget.grid.ColumnModel;  
  28. import com.extjs.gxt.ui.client.widget.grid.Grid;  
  29. import com.extjs.gxt.ui.client.widget.layout.FitLayout;  
  30. import com.extjs.gxt.ui.client.widget.layout.FlowLayout;  
  31. import com.extjs.gxt.ui.client.widget.toolbar.PagingToolBar;  
  32. import com.google.gwt.i18n.client.DateTimeFormat;  
  33. import com.google.gwt.user.client.Element;  
  34. import com.google.gwt.user.client.rpc.AsyncCallback;  
  35.   
  36. public class PagingGridExample extends LayoutContainer {  
  37.   
  38.   @Override  
  39.   protected void onRender(Element parent, int index) {  
  40.     super.onRender(parent, index);  
  41.   
  42.     final ExampleServiceAsync service = (ExampleServiceAsync) Registry.get(Examples.SERVICE);  
  43.   
  44.     FlowLayout layout = new FlowLayout(10);  
  45.     setLayout(layout);  
  46.   
  47.     RpcProxy<PagingLoadResult<Post>> proxy = new RpcProxy<PagingLoadResult<Post>>() {  
  48.       @Override  
  49.       public void load(Object loadConfig, AsyncCallback<PagingLoadResult<Post>> callback) {  
  50.         service.getPosts((PagingLoadConfig) loadConfig, callback);  
  51.       }  
  52.     };  
  53.   
  54.     // loader  
  55.     final PagingLoader<PagingLoadResult<ModelData>> loader = new BasePagingLoader<PagingLoadResult<ModelData>>(  
  56.         proxy);  
  57.     loader.setRemoteSort(true);  
  58.   
  59.     ListStore<Post> store = new ListStore<Post>(loader);  
  60.   
  61.     final PagingToolBar toolBar = new PagingToolBar(50);  
  62.     toolBar.bind(loader);  
  63.   
  64.     List<ColumnConfig> columns = new ArrayList<ColumnConfig>();  
  65.     columns.add(new ColumnConfig("forum""Forum"150));  
  66.     columns.add(new ColumnConfig("username""Username"100));  
  67.     columns.add(new ColumnConfig("subject""Subject"200));  
  68.     ColumnConfig date = new ColumnConfig("date""Date"100);  
  69.     date.setDateTimeFormat(DateTimeFormat.getFormat("MM/dd/y"));  
  70.     columns.add(date);  
  71.   
  72.     ColumnModel cm = new ColumnModel(columns);  
  73.   
  74.     final Grid<Post> grid = new Grid<Post>(store, cm);  
  75.     grid.setStateId("pagingGridExample");  
  76.     grid.setStateful(true);  
  77.     grid.addListener(Events.Attach, new Listener<GridEvent<Post>>() {  
  78.       public void handleEvent(GridEvent<Post> be) {  
  79.         PagingLoadConfig config = new BasePagingLoadConfig();  
  80.         config.setOffset(0);  
  81.         config.setLimit(50);  
  82.           
  83.         Map<String, Object> state = grid.getState();  
  84.         if (state.containsKey("offset")) {  
  85.           int offset = (Integer)state.get("offset");  
  86.           int limit = (Integer)state.get("limit");  
  87.           config.setOffset(offset);  
  88.           config.setLimit(limit);  
  89.         }  
  90.         if (state.containsKey("sortField")) {  
  91.           config.setSortField((String)state.get("sortField"));  
  92.           config.setSortDir(SortDir.valueOf((String)state.get("sortDir")));  
  93.         }  
  94.         loader.load(config);  
  95.       }  
  96.     });  
  97.     grid.setLoadMask(true);  
  98.     grid.setBorders(true);  
  99.     grid.setAutoExpandColumn("forum");  
  100.   
  101.     ContentPanel panel = new ContentPanel();  
  102.     panel.setFrame(true);  
  103.     panel.setCollapsible(true);  
  104.     panel.setAnimCollapse(false);  
  105.     panel.setIcon(Resources.ICONS.table());  
  106.     panel.setHeading("Paging Grid");  
  107.     panel.setLayout(new FitLayout());  
  108.     panel.add(grid);  
  109.     panel.setSize(600350);  
  110.     panel.setBottomComponent(toolBar);  
  111.     grid.getAriaSupport().setLabelledBy(panel.getId());  
  112.     add(panel);  
  113.   }  
  114.   
  115. }  

Comments

Popular posts from this blog

Database Multi Language Support Format

Five More Indian Languages - Google Translate