1
2
3
4
5
6
7
8
9
10
11
12
13
14
| //>>built
| define("dojo/_base/kernel dojo/_base/lang dojo/_base/declare dojo/_base/array dojo/_base/connect ../../EnhancedGrid ../_Plugin ./_RowMapLayer".split(" "),function(t,v,w,m,q,y,z,A){t=w("dojox.grid.enhanced.plugins.Rearrange",z,{name:"rearrange",constructor:function(b,a){this.grid=b;this.setArgs(a);a=new A(b);dojox.grid.enhanced.plugins.wrap(b,"_storeLayerFetch",a)},setArgs:function(b){this.args=v.mixin(this.args||{},b||{});this.args.setIdentifierForNewItem=this.args.setIdentifierForNewItem||function(a){return a}},
| destroy:function(){this.inherited(arguments);this.grid.unwrap("rowmap")},onSetStore:function(b){this.grid.layer("rowmap").clearMapping()},_hasIdentity:function(b){var a=this.grid,f=a.store,g=a.layout.cells;return f.getFeatures()["dojo.data.api.Identity"]&&m.some(b,function(b){return f.getIdentityAttributes(a._by_idx[b.r].item)==g[b.c].field})?!0:!1},moveColumns:function(b,a){var f=this.grid,g=f.layout,e=g.cells,h,c,d=0,l=!0;h={};var k={};b.sort(function(a,b){return a-b});for(c=0;c<b.length;++c)h[b[c]]=
| c,b[c]<a&&++d;var n=0,p=0,m=Math.max(b[b.length-1],a);m==e.length&&--m;var u=Math.min(b[0],a);for(c=u;c<=m;++c){var r=h[c];0<=r?k[c]=a-d+r:c<a?(k[c]=u+n,++n):c>=a&&(k[c]=a+b.length-d+p,++p)}d=0;a==e.length&&(--a,l=!1);f._notRefreshSelection=!0;for(c=0;c<b.length;++c)h=b[c],h<a&&(h-=d),++d,h!=a&&(g.moveColumn(e[h].view.idx,e[a].view.idx,h,a,l),e=g.cells),a<=h&&++a;delete f._notRefreshSelection;q.publish("dojox/grid/rearrange/move/"+f.id,["col",k,b])},moveRows:function(b,a){var f=this.grid,g={},e=[],
| h=[],c=b.length,d,l,k;for(d=0;d<c;++d){h=b[d];if(h>=a)break;e.push(h)}h=b.slice(d);d=e;if(c=d.length)for(l={},m.forEach(d,function(a){l[a]=!0}),g[d[0]]=a-c,e=0,d=d[e]+1,k=d-1;d<a;++d)l[d]?(++e,g[d]=a-c+e):(g[d]=k,++k);d=h;if(c=d.length)for(l={},m.forEach(d,function(a){l[a]=!0}),g[d[c-1]]=a+c-1,e=c-1,d=d[e]-1,k=d+1;d>=a;--d)l[d]?(--e,g[d]=a+e):(g[d]=k,--k);var n=v.clone(g);f.layer("rowmap").setMapping(g);f.forEachLayer(function(a){return"rowmap"!=a.name()?(a.invalidate(),!0):!1},!1);f.selection.selected=
| [];f._noInternalMapping=!0;f._refresh();setTimeout(function(){q.publish("dojox/grid/rearrange/move/"+f.id,["row",n,b]);f._noInternalMapping=!1},0)},moveCells:function(b,a){var f=this.grid,g=f.store;if(g.getFeatures()["dojo.data.api.Write"]&&(b.min.row!=a.min.row||b.min.col!=a.min.col)){var e=f.layout.cells,h,c,d,l,k=[],n=[];h=b.min.row;for(d=a.min.row;h<=b.max.row;++h,++d)for(c=b.min.col,l=a.min.col;c<=b.max.col;++c,++l){for(;e[c]&&e[c].hidden;)++c;for(;e[l]&&e[l].hidden;)++l;k.push({r:h,c:c});n.push({r:d,
| c:l,v:e[c].get(h,f._by_idx[h].item)})}this._hasIdentity(k.concat(n))?console.warn("Can not write to identity!"):(m.forEach(k,function(a){g.setValue(f._by_idx[a.r].item,e[a.c].field,"")}),m.forEach(n,function(a){g.setValue(f._by_idx[a.r].item,e[a.c].field,a.v)}),g.save({onComplete:function(){q.publish("dojox/grid/rearrange/move/"+f.id,["cell",{from:b,to:a}])}}))}},copyCells:function(b,a){var f=this.grid,g=f.store;if(g.getFeatures()["dojo.data.api.Write"]&&(b.min.row!=a.min.row||b.min.col!=a.min.col)){var e=
| f.layout.cells,h,c,d,l,k=[];h=b.min.row;for(d=a.min.row;h<=b.max.row;++h,++d)for(c=b.min.col,l=a.min.col;c<=b.max.col;++c,++l){for(;e[c]&&e[c].hidden;)++c;for(;e[l]&&e[l].hidden;)++l;k.push({r:d,c:l,v:e[c].get(h,f._by_idx[h].item)})}this._hasIdentity(k)?console.warn("Can not write to identity!"):(m.forEach(k,function(a){g.setValue(f._by_idx[a.r].item,e[a.c].field,a.v)}),g.save({onComplete:function(){setTimeout(function(){q.publish("dojox/grid/rearrange/copy/"+f.id,["cell",{from:b,to:a}])},0)}}))}},
| changeCells:function(b,a,f){var g=this.grid,e=g.store;if(e.getFeatures()["dojo.data.api.Write"]){var h=g.layout.cells,c=b.layout.cells,d,l,k,n,p=[];d=a.min.row;for(k=f.min.row;d<=a.max.row;++d,++k)for(l=a.min.col,n=f.min.col;l<=a.max.col;++l,++n){for(;c[l]&&c[l].hidden;)++l;for(;h[n]&&h[n].hidden;)++n;p.push({r:k,c:n,v:c[l].get(d,b._by_idx[d].item)})}this._hasIdentity(p)?console.warn("Can not write to identity!"):(m.forEach(p,function(a){e.setValue(g._by_idx[a.r].item,h[a.c].field,a.v)}),e.save({onComplete:function(){q.publish("dojox/grid/rearrange/change/"+
| g.id,["cell",f])}}))}},clearCells:function(b){var a=this.grid,f=a.store;if(f.getFeatures()["dojo.data.api.Write"]){var g=a.layout.cells,e,h,c=[];for(e=b.min.row;e<=b.max.row;++e)for(h=b.min.col;h<=b.max.col;++h){for(;g[h]&&g[h].hidden;)++h;c.push({r:e,c:h})}this._hasIdentity(c)?console.warn("Can not write to identity!"):(m.forEach(c,function(b){f.setValue(a._by_idx[b.r].item,g[b.c].field,"")}),f.save({onComplete:function(){q.publish("dojox/grid/rearrange/change/"+a.id,["cell",b])}}))}},insertRows:function(b,
| a,f){try{var g=this.grid,e=g.store,h=g.rowCount,c={},d=0,l=[],k,n=0>f,p=this,t=a.length;if(n)f=0;else for(k=f;k<g.rowCount;++k)c[k]=k+t;if(e.getFeatures()["dojo.data.api.Write"]){if(b){var u=b.store,r,x;if(n)x=m.filter(m.map(g.layout.cells,function(a){return a.field}),function(a){return a});else{for(k=0;!r;++k)r=g._by_idx[k];x=e.getAttributes(r.item)}var w=[];m.forEach(a,function(a,g){var k={},n=b._by_idx[a];if(n){m.forEach(x,function(a){k[a]=u.getValue(n.item,a)});k=p.args.setIdentifierForNewItem(k,
| e,h+d)||k;try{e.newItem(k),l.push(f+g),c[h+d]=f+g,++d}catch(D){console.log("insertRows newItem:",D,k)}}else w.push(a)})}else if(a.length&&v.isObject(a[0]))m.forEach(a,function(a,b){a=p.args.setIdentifierForNewItem(a,e,h+d)||a;try{e.newItem(a),l.push(f+b),c[h+d]=f+b,++d}catch(C){console.log("insertRows newItem:",C,a)}});else return;g.layer("rowmap").setMapping(c);e.save({onComplete:function(){g._refresh();setTimeout(function(){q.publish("dojox/grid/rearrange/insert/"+g.id,["row",l])},0)}})}}catch(B){console.log("insertRows:",
| B)}},removeRows:function(b){var a=this.grid,f=a.store;try{m.forEach(m.map(b,function(b){return a._by_idx[b]}),function(a){a&&f.deleteItem(a.item)}),f.save({onComplete:function(){q.publish("dojox/grid/rearrange/remove/"+a.id,["row",b])}})}catch(g){console.log("removeRows:",g)}},_getPageInfo:function(){var b=this.grid.scroller,a=b.page,f=b.page,g=b.firstVisibleRow,e=b.lastVisibleRow,h=b.rowsPerPage,c,d,l,k=[];m.forEach(b.pageNodes[0],function(b,m){b&&(l=!1,c=m*h,d=(m+1)*h-1,g>=c&&g<=d&&(a=m,l=!0),e>=
| c&&e<=d&&(f=m,l=!0),!l&&(c>e||d<g)&&k.push(m))});return{topPage:a,bottomPage:f,invalidPages:k}}});y.registerPlugin(t);return t});
|
|