Guest User

Untitled

a guest
Jul 19th, 2018
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.61 KB | None | 0 0
  1. Manager
  2. -> mainapp
  3. - controller
  4. -> Dragdrops.js
  5. - model
  6. -> Dragdrop.js
  7. - store
  8. -> FirstDragdrops.js
  9. -> SecondDragdrops.js
  10. - view
  11. -dragdrop
  12. -> DragdropList.js
  13.  
  14. /* -- View - Drag n Drop list grid -- */
  15. Ext.require([
  16. 'Ext.grid.*',
  17. 'Ext.data.*',
  18. 'Ext.dd.*'
  19. ]);
  20. Ext.define('mainapp.view.dragdrop.DragdropList', {
  21. extend: 'Ext.panel.Panel',
  22. alias : 'widget.dragdroplist',
  23. title : 'Drag Drop List',
  24. layout: 'hbox',
  25.  
  26. initComponent: function() {
  27. this.items = [
  28. {
  29. xtype: 'grid',
  30. title: 'First Grid',
  31. id: 'firstgrid',
  32. store: 'FirstDragdrops',
  33. flex: 1, enableDragDrop : true,
  34. ddGroup: 'mydd',
  35. ddText: 'Shift Row',
  36.  
  37. columns : [
  38. {text: "Item Name", sortable: true, dataIndex: 'name'},
  39. {text: "Quantity", sortable: true, dataIndex: 'qty'},
  40. {text: "Amount", sortable: true, dataIndex: 'amt'}
  41. ],
  42.  
  43. singleSelect:true,
  44. listeners: {
  45. beforerowselect: function(sm,i,ke,row){
  46. //grid.ddText = title_str(row.data.title, null, row);
  47. },
  48. selectionchange: function(){
  49. alert("Row Selected! " + this.ddText);
  50. //grid.ddText(row.data.title, null, row);
  51. }
  52. }
  53.  
  54. },
  55. {
  56. xtype: 'grid',
  57. title: 'Second Grid',
  58. id: 'secondgrid',
  59. store: 'SecondDragdrops',
  60. flex: 2,
  61. singleSelect: true,
  62. enableDragDrop : true,
  63. stripeRows: true,
  64. columns : [
  65. {text: "Item Name", sortable: true, dataIndex: 'name'},
  66. {text: "Quantity", sortable: true, dataIndex: 'qty'},
  67. {text: "Amount", sortable: true, dataIndex: 'amt'}
  68. ]
  69. }
  70. ]
  71. this.callParent(arguments);
  72. }
  73.  
  74. });
  75.  
  76. listeners: {
  77. render: initializeDD
  78. }
  79.  
  80. function initializeDD (v) {
  81. var el = Ext.get(v.getEl().id);
  82.  
  83. el.on('dblclick', function() {
  84. var component = Ext.ComponentManager.get(v.getEl().id).getComponent(0);
  85. component.focus();
  86. }, this);
  87.  
  88. v.dragZone = Ext.create('Ext.dd.DragZone', v.getEl(), {
  89. ddGroup: 'blankAttsReorder',
  90. getDragData: function(e) {
  91. var sourceEl = e.getTarget(v.itemSelector, 10), d;
  92. if (sourceEl) {
  93. d = sourceEl.cloneNode(true);
  94. d.id = Ext.id();
  95. return v.dragData = {
  96. sourceEl: sourceEl,
  97. repairXY: Ext.fly(sourceEl).getXY(),
  98. ddel: d,
  99. originalid: v.getEl().id
  100. };
  101. }
  102. },
  103. getRepairXY: function() {
  104. return this.dragData.repairXY;
  105. }
  106. });
  107.  
  108. v.dropZone = Ext.create('Ext.dd.DropZone', v.el, {
  109. ddGroup: 'blankAttsReorder',
  110. getTargetFromEvent: function(e) {
  111. return e.getTarget('.blankbuilder-attribute');
  112. },
  113. onNodeOver : function(target, dd, e, data){
  114. // specific code there
  115. var targetN = Ext.Array.indexOf(blank.items, Ext.ComponentManager.get(target.id), 0);
  116. var sourceN = Ext.Array.indexOf(blank.items, Ext.ComponentManager.get(data.originalid), 0);
  117. if (targetN!=sourceN) {
  118. blank.move(sourceN, targetN);
  119. }
  120. return Ext.dd.DropZone.prototype.dropAllowed;
  121. },
  122. onNodeDrop : function(target, dd, e, data){
  123. Ext.ComponentManager.get(target.id).getComponent(0).blur();
  124. }
  125. });
  126. }
  127.  
  128. function initializeAttributeDragZone (v) {
  129. v.dragZone = Ext.create('Ext.dd.DragZone', v.getEl(), {
  130. ddGroup: 'attsToBlank',
  131. getDragData: function(e) {
  132. var sourceEl = e.getTarget(v.itemSelector, 10), d;
  133. if (sourceEl) {
  134. d = sourceEl.cloneNode(true);
  135. d.id = Ext.id();
  136. return v.dragData = {
  137. sourceEl: sourceEl,
  138. repairXY: Ext.fly(sourceEl).getXY(),
  139. ddel: d,
  140. attributeData: v.getRecord(sourceEl).data
  141. };
  142. }
  143. },
  144. getRepairXY: function() {
  145. return this.dragData.repairXY;
  146. }
  147. });
  148. }
  149.  
  150. // Добавляем возможность дропать атрибуты из списка на бланк
  151. function initializeBlankDropZone (v) {
  152. v.dropZone = Ext.create('Ext.dd.DropZone', v.el, {
  153. ddGroup: 'attsToBlank',
  154. getTargetFromEvent: function(e) {
  155. return e.getTarget('.blankbuilder-attribute-new');
  156. },
  157. onNodeEnter : function(target, dd, e, data){
  158. Ext.fly(target).addCls('blankbuilder-attribute-new-hover');
  159. },
  160. onNodeOut : function(target, dd, e, data){
  161. Ext.fly(target).removeCls('blankbuilder-attribute-new-hover');
  162. },
  163. onNodeOver : function(target, dd, e, data){
  164. return Ext.dd.DropZone.prototype.dropAllowed;
  165. },
  166. onNodeDrop : function(target, dd, e, data){
  167. // some code
  168. }
  169. });
  170. }
Add Comment
Please, Sign In to add comment