// render it
grid.render();
-
-
- grid.dropTarget = new Roo.dd.DropTarget(grid.view.el, {
- listeners : {
- drop : function (source, e, data)
- {
- //Roo.log("DROP");
- var t = Roo.lib.Event.getTarget(e);
- var ri = grid.view.findRowIndex(t);
- //Roo.log(e);
- //Roo.log(data);
- var dp = this.getDropPoint(e,data);
- // at this point should have above or below..
- var os = grid.selModel.getSelectedCell()
- grid.ds.remove(data.selections[0]);
- grid.ds.insert(ri + (dp == 'below' ? 1 : 0) , data.selections);
- grid.selModel.select(ri + (dp == 'below' ? 1 : 0), os[1])
- this.expandRow(false);
-
-
- },
- over : function (source, e, data)
- {
- //
- // if drag point == drop point...
- var t = Roo.lib.Event.getTarget(e);
- var ri = grid.view.findRowIndex(t);
- var dp = this.getDropPoint(e,data);
- Roo.log(dp);
- //Roo.log(JSON.stringify({ dp: dp, ri: ri, src_ri: data.rowIndex}));
- if(ri == data.rowIndex ||
- (dp == 'above' && ri-1 == data.rowIndex) ||
- (dp == 'below' && ri+1 == data.rowIndex)
- ) {
- this.expandRow(false);
-
- this.valid = false;
- return;
- }
- this.expandRow(ri, dp);
-
-
- this.valid = 'ok-add';
- //Roo.log("SET VALID TO: " + this.valid)
- //Roo.log([source,e,data]);
-
- // Roo.log("dragover");
-
- //Roo.log(e);
- /*
- var t = Roo.lib.Event.getTarget(e);
- var ri = _this.grid.view.findRowIndex(t);
- // Roo.log(ri);
-
- var rid = false;
- if (ri !== false) {
- rid = _this.grid.getDataSource().getAt(ri).data;
- }
-
- var s = _this.grid.getSelectionModel().getSelections();
- */
- //if (!isFromGroup && isToGroup) {
- //this.valid = 'ok-add';
-
- }
- },
- ddGroup : 'GridDD',
- activeDom : false,
- expandRow : function(ri,pos)
- {
- var dom = grid.view.getRow(ri);
- //Roo.log(dom);
- //if (this.activeDom == dom) {
- // return;
- //}
- if (this.activeDom) {
- Roo.get(this.activeDom).removeClass('x-grid-dd-above');
- Roo.get(this.activeDom).removeClass('x-grid-dd-below');
-
- this.activeDom = false;
- }
-
- if (ri === false) {
- return;
- }
- Roo.get(dom).addClass('x-grid-dd-' + pos);
-
- this.activeDom = dom;
-
-
- },
- getDropPoint : function(e, data)
- {
- //var tn = n.node;
- // data is from griddragzone
-
- var te = Roo.lib.Event.getTarget(e);
- var ri = Roo.fly(te).findParent("td", 6);
-
-
- var dragEl = ri;
- var t = Roo.lib.Dom.getY(dragEl),
- b = t + dragEl.offsetHeight;
- var y = Roo.lib.Event.getPageY(e);
- //var noAppend = tn.allowChildren === false || tn.isLeaf();
-
- // we may drop nodes anywhere, as long as allowChildren has not been set to false..
-
-
- var q = (b - t) / 2;
-
-
- if(y >= t && y < (t + q)){
- return "above";
- }
- if(y >= b-q && y <= b){
- return "below";
- }
- Roo.log( JSON.stringify( {pos: y, dragtop : t, mid : q, drabgot: b }));
-
-
- return false;
- },
- });
-
var gridHead = grid.getView().getHeaderPanel(true);