10.ExtとDwr


 EXT     DWR

  DWR            JavaScript    ,              ,
    EXT  DWR   JavaScript    。
 Grid  ,                 ,        :id、name、sex、email、tel、addTime descn。
     POJO,      :

 
  1. public class Info {  
  2.     long id;  
  3.     String name;  
  4.     int sex;  
  5.     String email;  
  6.     String tel;  
  7.     Date addTime;  
  8.     String descn;  
  9. }  
POJO manager , :
  1. public class InfoManager {  
  2.     private List infoList = new ArrayList();  
  3.    
  4.     public List getResult() {  
  5.         return infoList;  
  6.     }  
  7. }  
, , dwr.xml , 。 EXT DWR , JavaScript , :
  1. var cm = new Ext.grid.ColumnModel([  
  2.     {header:' ',dataIndex:'id'},  
  3.     {header:' ',dataIndex:'name'},  
  4.     {header:' ',dataIndex:'sex'},  
  5.     {header:' ',dataIndex:'email'},  
  6.     {header:' ',dataIndex:'tel'},  
  7.     {header:' ',dataIndex:'addTime'},  
  8.     {header:' ',dataIndex:'descn'}  
  9. ]);  
  10.    
  11. var store = new Ext.data.JsonStore({  
  12.     fields: ["id","name","sex",'email','tel','addTime','descn']  
  13. });  
  14.    
  15. //  DWR   
  16. infoManager.getResult(function(data) {  
  17.     store.loadData(data);  
  18. });  
  19.    
  20. var grid = new Ext.grid.GridPanel({  
  21.     renderTo: 'grid',  
  22.     store: store,  
  23.     cm: cm  
  24. });  
, infoManager.getResult() ,DWR Ajax , 。 , data ds 。 DWR data JsonStore , fields , JsonReader 。 ,EXT DWR , 。 , 。 , 。 DWR EXT DWRProxy EXT DWR, , 。 , Grid 、 、 、 。 EXT DWRProxy, DWR EXT 。 , DWRProxy Java , 。 , , 。 DWRProxy.js ext-base.js ext-all.js , 。 DWRProxy 。 DWRProxy.js , 。 , 。 ListRange.java, :
  1. public class ListRange {  
  2.     Object[] data;  
  3.     int totalSize;  
  4. }  
ListRange , : data totalSize。 InfoManager.java, , getItems , :
  1. public ListRange getItems(Map conditions) {  
  2.     int start = 0;  
  3.     int pageSize = 10;  
  4.     int pageNo = (start / pageSize) + 1;  
  5.    
  6.     try {  
  7.         start = Integer.parseInt(conditions.get("start").toString());  
  8.         pageSize = Integer.parseInt(conditions.get("limit").toString());  
  9.         pageNo = (start / pageSize) + 1;  
  10.     } catch (Exception ex) {  
  11.         ex.printStackTrace();  
  12.     }  
  13.     List list = infoList.subList(start, start + pageSize);  
  14.     return new ListRange(list.toArray(), infoList.size());  
  15. }  
getItems() Map, , start limit。 HTTP , , 。 start limit , ListRange , ListRange , 。 , Ext.data.DWRProxy , Ext.data.List- RangeReader。 ,EXT DWR 。 , EXT , proxy reader, EXT , 。 DWR, Grid , , :
  1. var store = new Ext.data.Store({  
  2.     proxy: new Ext.data.DWRProxy(infoManager.getItems, true),  
  3.     reader: new Ext.data.ListRangeReader({  
  4.         totalProperty: 'totalSize',  
  5.         root: 'data',  
  6.         id: 'id'  
  7.     }, info),  
  8.     remoteSort: true  
  9. });  
, proxy, reader, ,Grid 。 DWRProxy , : dwr- Call, DWR , getItems ; paging- AndSort, DWR 。 ListRangeReader ListRange.java 。totalProperty , ListRange totalSize 。 root , ListRange data, DWRProxy ListRange data 。 ListRange.java , , totalProperty data 。 DWR EXT DWRTreeLoader DWR。 , DWR tree 。 , TreeNode.java。 , id、text leaf 。
  1. public class TreeNode {  
  2.     String id;  
  3.     String text;  
  4.     boolean leaf;  
  5. }  
id , id 。text ,leaf , 。 ,TreeNodeManager.java getTree() id , 。 , 。 TreeNodeManager.java :
  1. public List getTree(String id) {  
  2.     List list = new ArrayList();  
  3.     String seed1 = id + 1;  
  4.     String seed2 = id + 2;  
  5.     String seed3 = id + 3;  
  6.     list.add(new TreeNode(seed1, "" + seed1, false));  
  7.     list.add(new TreeNode(seed2, "" + seed2, false));  
  8.     list.add(new TreeNode(seed3, "" + seed3, true));  
  9.    
  10.     return list;  
  11. }  
, Java List , JSON 。 JavaScript , DWRTree- Loader.js, TreeLoader DWRTreeLoder , :
  1. var tree = new Ext.tree.TreePanel('tree', {  
  2.     loader: new Ext.tree.DWRTreeLoader({dataUrl: treeNodeManager.getTree})  
  3. });  
dataUrl, treeNodeManager.getTree DWR , ,