-/*\r
- * Ext JS Library 2.2.1\r
- * Copyright(c) 2006-2009, Ext JS, LLC.\r
- * licensing@extjs.com\r
- * \r
- * http://extjs.com/license\r
- */\r
-\r
-/*\r
- * Ext JS Library 2.1\r
- * Copyright(c) 2006-2009, Ext JS, LLC.\r
- * licensing@extjs.com\r
- * \r
- * http://extjs.com/license\r
- */\r
-\r
+/*!
+ * Ext JS Library 3.0.0
+ * Copyright(c) 2006-2009 Ext JS, LLC
+ * licensing@extjs.com
+ * http://www.extjs.com/license
+ */
Ext.onReady(function(){\r
- \r
+\r
var myData = {\r
records : [\r
{ name : "Rec 0", column1 : "0", column2 : "0" },\r
{name: 'column1', mapping : 'column1'},\r
{name: 'column2', mapping : 'column2'}\r
];\r
- \r
+\r
// create the data store\r
var firstGridStore = new Ext.data.JsonStore({\r
fields : fields,\r
data : myData,\r
root : 'records'\r
});\r
- \r
+\r
\r
// Column Model shortcut array\r
var cols = [\r
{header: "column1", width: 50, sortable: true, dataIndex: 'column1'},\r
{header: "column2", width: 50, sortable: true, dataIndex: 'column2'}\r
];\r
- \r
+\r
// declare the source Grid\r
var firstGrid = new Ext.grid.GridPanel({\r
- ddGroup : 'secondGridDDGroup',\r
+ ddGroup : 'secondGridDDGroup',\r
store : firstGridStore,\r
columns : cols,\r
- enableDragDrop : true,\r
+ enableDragDrop : true,\r
stripeRows : true,\r
autoExpandColumn : 'name',\r
width : 325,\r
- region : 'west',\r
+ region : 'west',\r
title : 'First Grid'\r
});\r
\r
fields : fields,\r
root : 'records'\r
});\r
- \r
+\r
// create the destination Grid\r
var secondGrid = new Ext.grid.GridPanel({\r
- ddGroup : 'firstGridDDGroup',\r
+ ddGroup : 'firstGridDDGroup',\r
store : secondGridStore,\r
columns : cols,\r
- enableDragDrop : true,\r
+ enableDragDrop : true,\r
stripeRows : true,\r
autoExpandColumn : 'name',\r
width : 325,\r
- region : 'center',\r
+ region : 'center',\r
title : 'Second Grid'\r
});\r
\r
- \r
+\r
//Simple 'border layout' panel to house both grids\r
var displayPanel = new Ext.Panel({\r
width : 650,\r
handler : function() {\r
//refresh source grid\r
firstGridStore.loadData(myData);\r
- \r
+\r
//purge destination grid\r
secondGridStore.removeAll();\r
}\r
ddGroup : 'firstGridDDGroup',\r
copy : true,\r
notifyDrop : function(ddSource, e, data){\r
- \r
+\r
// Generic function to add records.\r
function addRow(record, index, allItems) {\r
- \r
+\r
// Search for duplicates\r
- var foundItem = firstGridStore.find('name', record.data.name);\r
+ var foundItem = firstGridStore.findExact('name', record.data.name);\r
// if not found\r
if (foundItem == -1) {\r
firstGridStore.add(record);\r
- \r
+\r
// Call a sort dynamically\r
firstGridStore.sort('name', 'ASC');\r
- \r
+\r
//Remove Record from the source\r
ddSource.grid.store.remove(record);\r
}\r
Ext.each(ddSource.dragData.selections ,addRow);\r
return(true);\r
}\r
- }); \r
+ });\r
+\r
\r
- \r
// This will make sure we only drop to the view container\r
var secondGridDropTargetEl = secondGrid.getView().el.dom.childNodes[0].childNodes[1]\r
- \r
+\r
var destGridDropTarget = new Ext.dd.DropTarget(secondGridDropTargetEl, {\r
ddGroup : 'secondGridDDGroup',\r
copy : false,\r
notifyDrop : function(ddSource, e, data){\r
- \r
+\r
// Generic function to add records.\r
function addRow(record, index, allItems) {\r
- \r
+\r
// Search for duplicates\r
- var foundItem = secondGridStore.find('name', record.data.name);\r
+ var foundItem = secondGridStore.findExact('name', record.data.name);\r
// if not found\r
if (foundItem == -1) {\r
secondGridStore.add(record);\r
// Call a sort dynamically\r
secondGridStore.sort('name', 'ASC');\r
- \r
+\r
//Remove Record from the source\r
ddSource.grid.store.remove(record);\r
}\r
Ext.each(ddSource.dragData.selections ,addRow);\r
return(true);\r
}\r
- }); \r
+ });\r
});\r