]> git.proxmox.com Git - extjs.git/blame - extjs/examples/kitchensink/classic/samples/view/dd/GridToGrid.js
add extjs 6.0.1 sources
[extjs.git] / extjs / examples / kitchensink / classic / samples / view / dd / GridToGrid.js
CommitLineData
6527f429
DM
1/**\r
2 * This example shows how to setup two way drag and drop from one GridPanel to another.\r
3 */\r
4Ext.define('KitchenSink.view.dd.GridToGrid', {\r
5 extend: 'Ext.container.Container',\r
6 \r
7 requires: [\r
8 'Ext.grid.*',\r
9 'Ext.layout.container.HBox',\r
10 'KitchenSink.model.dd.Simple'\r
11 ], \r
12 xtype: 'dd-grid-to-grid',\r
13 \r
14 //<example>\r
15 exampleTitle: 'Drag and Drop from Grid to Grid Example',\r
16 otherContent: [{\r
17 type: 'Model',\r
18 path: 'classic/samples/model/dd/Simple.js'\r
19 }],\r
20 //</example>\r
21 \r
22 width: 650,\r
23 height: 300,\r
24 layout: {\r
25 type: 'hbox',\r
26 align: 'stretch',\r
27 padding: 5\r
28 },\r
29 \r
30 myData: [\r
31 { name : 'Rec 0', column1 : '0', column2 : '0' },\r
32 { name : 'Rec 1', column1 : '1', column2 : '1' },\r
33 { name : 'Rec 2', column1 : '2', column2 : '2' },\r
34 { name : 'Rec 3', column1 : '3', column2 : '3' },\r
35 { name : 'Rec 4', column1 : '4', column2 : '4' },\r
36 { name : 'Rec 5', column1 : '5', column2 : '5' },\r
37 { name : 'Rec 6', column1 : '6', column2 : '6' },\r
38 { name : 'Rec 7', column1 : '7', column2 : '7' },\r
39 { name : 'Rec 8', column1 : '8', column2 : '8' },\r
40 { name : 'Rec 9', column1 : '9', column2 : '9' }\r
41 ],\r
42 \r
43 initComponent: function(){\r
44 var group1 = this.id + 'group1',\r
45 group2 = this.id + 'group2',\r
46 columns = [{\r
47 text: 'Record Name', \r
48 flex: 1, \r
49 sortable: true, \r
50 dataIndex: 'name'\r
51 }, {\r
52 text: 'column1', \r
53 width: 80, \r
54 sortable: true, \r
55 dataIndex: 'column1'\r
56 }, {\r
57 text: 'column2', \r
58 width: 80, \r
59 sortable: true, \r
60 dataIndex: 'column2'\r
61 }];\r
62 \r
63 this.items = [{\r
64 itemId: 'grid1',\r
65 flex: 1,\r
66 xtype: 'grid',\r
67 multiSelect: true,\r
68 viewConfig: {\r
69 plugins: {\r
70 ptype: 'gridviewdragdrop',\r
71 containerScroll: true,\r
72 dragGroup: group1,\r
73 dropGroup: group2\r
74 },\r
75 listeners: {\r
76 drop: function(node, data, dropRec, dropPosition) {\r
77 var dropOn = dropRec ? ' ' + dropPosition + ' ' + dropRec.get('name') : ' on empty view';\r
78 Ext.example.msg('Drag from right to left', 'Dropped ' + data.records[0].get('name') + dropOn);\r
79 }\r
80 }\r
81 },\r
82 store: new Ext.data.Store({\r
83 model: KitchenSink.model.dd.Simple,\r
84 data: this.myData\r
85 }),\r
86 columns: columns,\r
87 title: 'First Grid',\r
88 tools: [{\r
89 type: 'refresh',\r
90 tooltip: 'Reset both grids',\r
91 scope: this,\r
92 handler: this.onResetClick\r
93 }],\r
94 margin: '0 5 0 0'\r
95 }, {\r
96 itemId: 'grid2',\r
97 flex: 1,\r
98 xtype: 'grid',\r
99 viewConfig: {\r
100 plugins: {\r
101 ptype: 'gridviewdragdrop',\r
102 containerScroll: true,\r
103 dragGroup: group2,\r
104 dropGroup: group1\r
105 },\r
106 listeners: {\r
107 drop: function(node, data, dropRec, dropPosition) {\r
108 var dropOn = dropRec ? ' ' + dropPosition + ' ' + dropRec.get('name') : ' on empty view';\r
109 Ext.example.msg('Drag from left to right', 'Dropped ' + data.records[0].get('name') + dropOn);\r
110 }\r
111 }\r
112 },\r
113 store: new Ext.data.Store({\r
114 model: KitchenSink.model.dd.Simple\r
115 }),\r
116 columns: columns,\r
117 stripeRows: true,\r
118 title: 'Second Grid'\r
119 }];\r
120\r
121 this.callParent();\r
122 },\r
123 \r
124 onResetClick: function(){\r
125 //refresh source grid\r
126 this.down('#grid1').getStore().loadData(this.myData);\r
127\r
128 //purge destination grid\r
129 this.down('#grid2').getStore().removeAll();\r
130 }\r
131});\r