Editable Buffered Grid In Ext GWT

Editable Buffered 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.   
  6. import com.extjs.gxt.samples.client.ExampleServiceAsync;  
  7. import com.extjs.gxt.samples.client.Examples;  
  8. import com.extjs.gxt.samples.client.examples.model.Post;  
  9. import com.extjs.gxt.samples.resources.client.Resources;  
  10. import com.extjs.gxt.ui.client.Registry;  
  11. import com.extjs.gxt.ui.client.data.BasePagingLoadResult;  
  12. import com.extjs.gxt.ui.client.data.BasePagingLoader;  
  13. import com.extjs.gxt.ui.client.data.LoadEvent;  
  14. import com.extjs.gxt.ui.client.data.Loader;  
  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.event.LoadListener;  
  24. import com.extjs.gxt.ui.client.store.ListStore;  
  25. import com.extjs.gxt.ui.client.util.DateWrapper;  
  26. import com.extjs.gxt.ui.client.widget.ContentPanel;  
  27. import com.extjs.gxt.ui.client.widget.LayoutContainer;  
  28. import com.extjs.gxt.ui.client.widget.form.DateField;  
  29. import com.extjs.gxt.ui.client.widget.form.TextField;  
  30. import com.extjs.gxt.ui.client.widget.grid.BufferView;  
  31. import com.extjs.gxt.ui.client.widget.grid.CellEditor;  
  32. import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;  
  33. import com.extjs.gxt.ui.client.widget.grid.ColumnModel;  
  34. import com.extjs.gxt.ui.client.widget.grid.EditorGrid;  
  35. import com.extjs.gxt.ui.client.widget.layout.FitLayout;  
  36. import com.extjs.gxt.ui.client.widget.layout.FlowLayout;  
  37. import com.google.gwt.i18n.client.DateTimeFormat;  
  38. import com.google.gwt.user.client.Element;  
  39. import com.google.gwt.user.client.rpc.AsyncCallback;  
  40.   
  41. public class EditableBufferedGridExample extends LayoutContainer {  
  42.   
  43.   @Override  
  44.   protected void onRender(Element parent, int index) {  
  45.     super.onRender(parent, index);  
  46.   
  47.     final ExampleServiceAsync service = (ExampleServiceAsync) Registry.get(Examples.SERVICE);  
  48.   
  49.     FlowLayout layout = new FlowLayout(10);  
  50.     setLayout(layout);  
  51.   
  52.     RpcProxy<PagingLoadResult<Post>> proxy = new RpcProxy<PagingLoadResult<Post>>() {  
  53.       @Override  
  54.       public void load(Object loadConfig, AsyncCallback<PagingLoadResult<Post>> callback) {  
  55.         service.getPosts((PagingLoadConfig) loadConfig, callback);  
  56.       }  
  57.     };  
  58.   
  59.     // loader  
  60.     final PagingLoader<PagingLoadResult<ModelData>> loader = new BasePagingLoader<PagingLoadResult<ModelData>>(  
  61.         proxy);  
  62.     loader.setRemoteSort(true);  
  63.     loader.addListener(Loader.Load, new LoadListener() {  
  64.       @Override  
  65.       public void loaderLoad(LoadEvent le) {  
  66.         BasePagingLoadResult<Post> r = le.<BasePagingLoadResult<Post>> getData();  
  67.         for (Post p : r.getData()) {  
  68.           if (p.getSubject().equals("")) {  
  69.             p.setSubject(null);  
  70.           }  
  71.           p.setDate(new DateWrapper(p.getDate()).clearTime().asDate());  
  72.         }  
  73.       }  
  74.   
  75.     });  
  76.   
  77.     ListStore<Post> store = new ListStore<Post>(loader);  
  78.   
  79.     List<ColumnConfig> columns = new ArrayList<ColumnConfig>();  
  80.   
  81.     ColumnConfig column;  
  82.   
  83.     column = new ColumnConfig("forum""Forum"150);  
  84.     column.setEditor(new CellEditor(new TextField<String>()));  
  85.     columns.add(column);  
  86.   
  87.     column = new ColumnConfig("username""Username"100);  
  88.     column.setEditor(new CellEditor(new TextField<String>()));  
  89.     columns.add(column);  
  90.   
  91.     column = new ColumnConfig("subject""Subject"200);  
  92.     column.setEditor(new CellEditor(new TextField<String>()));  
  93.     columns.add(column);  
  94.   
  95.     ColumnConfig date = new ColumnConfig("date""Date"100);  
  96.     date.setDateTimeFormat(DateTimeFormat.getFormat("MM/dd/y"));  
  97.     DateField dateField = new DateField();  
  98.     dateField.getPropertyEditor().setFormat(DateTimeFormat.getFormat("MM/dd/y"));  
  99.     date.setEditor(new CellEditor(dateField));  
  100.     columns.add(date);  
  101.   
  102.     ColumnModel cm = new ColumnModel(columns);  
  103.   
  104.     EditorGrid<Post> grid = new EditorGrid<Post>(store, cm);  
  105.     grid.addListener(Events.Attach, new Listener<GridEvent<Post>>() {  
  106.       public void handleEvent(GridEvent<Post> be) {  
  107.         loader.load(01000);  
  108.       }  
  109.     });  
  110.     grid.setTrackMouseOver(false);  
  111.     grid.setLoadMask(true);  
  112.     grid.setBorders(true);  
  113.     grid.setAutoExpandColumn("forum");  
  114.     grid.setView(new BufferView());  
  115.     ContentPanel panel = new ContentPanel();  
  116.     panel.setFrame(true);  
  117.     panel.setCollapsible(true);  
  118.     panel.setAnimCollapse(false);  
  119.     panel.setIcon(Resources.ICONS.table());  
  120.     panel.setHeading("Editable Buffered Grid (1000 rows)");  
  121.     panel.setLayout(new FitLayout());  
  122.     panel.add(grid);  
  123.     panel.setSize(600350);  
  124.   
  125.     add(panel);  
  126.   }  
  127. }  

Comments

Popular posts from this blog

Database Multi Language Support Format

Five More Indian Languages - Google Translate