X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/2e847cf21b8ab9d15fa167b315ca5b2fa92638fc..6a7e4474cba9d8be4b2ec445e10f1691f7277c50:/examples/ux/DataView-more.js diff --git a/examples/ux/DataView-more.js b/examples/ux/DataView-more.js index a004d342..96a95b9a 100644 --- a/examples/ux/DataView-more.js +++ b/examples/ux/DataView-more.js @@ -1,160 +1,160 @@ /*! - * Ext JS Library 3.1.1 - * Copyright(c) 2006-2010 Ext JS, LLC + * Ext JS Library 3.2.0 + * Copyright(c) 2006-2010 Ext JS, Inc. * licensing@extjs.com * http://www.extjs.com/license */ -/** - * @class Ext.DataView.LabelEditor - * @extends Ext.Editor - * - */ -Ext.DataView.LabelEditor = Ext.extend(Ext.Editor, { - alignment: "tl-tl", - hideEl : false, - cls: "x-small-editor", - shim: false, - completeOnEnter: true, - cancelOnEsc: true, - labelSelector: 'span.x-editable', - - constructor: function(cfg, field){ - Ext.DataView.LabelEditor.superclass.constructor.call(this, - field || new Ext.form.TextField({ - allowBlank: false, - growMin:90, - growMax:240, - grow:true, - selectOnFocus:true - }), cfg - ); - }, - - init : function(view){ - this.view = view; - view.on('render', this.initEditor, this); - this.on('complete', this.onSave, this); - }, - - initEditor : function(){ - this.view.on({ - scope: this, - containerclick: this.doBlur, - click: this.doBlur - }); - this.view.getEl().on('mousedown', this.onMouseDown, this, {delegate: this.labelSelector}); - }, - - doBlur: function(){ - if(this.editing){ - this.field.blur(); - } - }, - - onMouseDown : function(e, target){ - if(!e.ctrlKey && !e.shiftKey){ - var item = this.view.findItemFromChild(target); - e.stopEvent(); - var record = this.view.store.getAt(this.view.indexOf(item)); - this.startEdit(target, record.data[this.dataIndex]); - this.activeRecord = record; - }else{ - e.preventDefault(); - } - }, - - onSave : function(ed, value){ - this.activeRecord.set(this.dataIndex, value); - } -}); - - -Ext.DataView.DragSelector = function(cfg){ - cfg = cfg || {}; - var view, proxy, tracker; - var rs, bodyRegion, dragRegion = new Ext.lib.Region(0,0,0,0); - var dragSafe = cfg.dragSafe === true; - - this.init = function(dataView){ - view = dataView; - view.on('render', onRender); - }; - - function fillRegions(){ - rs = []; - view.all.each(function(el){ - rs[rs.length] = el.getRegion(); - }); - bodyRegion = view.el.getRegion(); - } - - function cancelClick(){ - return false; - } - - function onBeforeStart(e){ - return !dragSafe || e.target == view.el.dom; - } - - function onStart(e){ - view.on('containerclick', cancelClick, view, {single:true}); - if(!proxy){ - proxy = view.el.createChild({cls:'x-view-selector'}); - }else{ - if(proxy.dom.parentNode !== view.el.dom){ - view.el.dom.appendChild(proxy.dom); - } - proxy.setDisplayed('block'); - } - fillRegions(); - view.clearSelections(); - } - - function onDrag(e){ - var startXY = tracker.startXY; - var xy = tracker.getXY(); - - var x = Math.min(startXY[0], xy[0]); - var y = Math.min(startXY[1], xy[1]); - var w = Math.abs(startXY[0] - xy[0]); - var h = Math.abs(startXY[1] - xy[1]); - - dragRegion.left = x; - dragRegion.top = y; - dragRegion.right = x+w; - dragRegion.bottom = y+h; - - dragRegion.constrainTo(bodyRegion); - proxy.setRegion(dragRegion); - - for(var i = 0, len = rs.length; i < len; i++){ - var r = rs[i], sel = dragRegion.intersect(r); - if(sel && !r.selected){ - r.selected = true; - view.select(i, true); - }else if(!sel && r.selected){ - r.selected = false; - view.deselect(i); - } - } - } - - function onEnd(e){ - if (!Ext.isIE) { - view.un('containerclick', cancelClick, view); - } - if(proxy){ - proxy.setDisplayed(false); - } - } - - function onRender(view){ - tracker = new Ext.dd.DragTracker({ - onBeforeStart: onBeforeStart, - onStart: onStart, - onDrag: onDrag, - onEnd: onEnd - }); - tracker.initEl(view.el); - } +/** + * @class Ext.DataView.LabelEditor + * @extends Ext.Editor + * + */ +Ext.DataView.LabelEditor = Ext.extend(Ext.Editor, { + alignment: "tl-tl", + hideEl : false, + cls: "x-small-editor", + shim: false, + completeOnEnter: true, + cancelOnEsc: true, + labelSelector: 'span.x-editable', + + constructor: function(cfg, field){ + Ext.DataView.LabelEditor.superclass.constructor.call(this, + field || new Ext.form.TextField({ + allowBlank: false, + growMin:90, + growMax:240, + grow:true, + selectOnFocus:true + }), cfg + ); + }, + + init : function(view){ + this.view = view; + view.on('render', this.initEditor, this); + this.on('complete', this.onSave, this); + }, + + initEditor : function(){ + this.view.on({ + scope: this, + containerclick: this.doBlur, + click: this.doBlur + }); + this.view.getEl().on('mousedown', this.onMouseDown, this, {delegate: this.labelSelector}); + }, + + doBlur: function(){ + if(this.editing){ + this.field.blur(); + } + }, + + onMouseDown : function(e, target){ + if(!e.ctrlKey && !e.shiftKey){ + var item = this.view.findItemFromChild(target); + e.stopEvent(); + var record = this.view.store.getAt(this.view.indexOf(item)); + this.startEdit(target, record.data[this.dataIndex]); + this.activeRecord = record; + }else{ + e.preventDefault(); + } + }, + + onSave : function(ed, value){ + this.activeRecord.set(this.dataIndex, value); + } +}); + + +Ext.DataView.DragSelector = function(cfg){ + cfg = cfg || {}; + var view, proxy, tracker; + var rs, bodyRegion, dragRegion = new Ext.lib.Region(0,0,0,0); + var dragSafe = cfg.dragSafe === true; + + this.init = function(dataView){ + view = dataView; + view.on('render', onRender); + }; + + function fillRegions(){ + rs = []; + view.all.each(function(el){ + rs[rs.length] = el.getRegion(); + }); + bodyRegion = view.el.getRegion(); + } + + function cancelClick(){ + return false; + } + + function onBeforeStart(e){ + return !dragSafe || e.target == view.el.dom; + } + + function onStart(e){ + view.on('containerclick', cancelClick, view, {single:true}); + if(!proxy){ + proxy = view.el.createChild({cls:'x-view-selector'}); + }else{ + if(proxy.dom.parentNode !== view.el.dom){ + view.el.dom.appendChild(proxy.dom); + } + proxy.setDisplayed('block'); + } + fillRegions(); + view.clearSelections(); + } + + function onDrag(e){ + var startXY = tracker.startXY; + var xy = tracker.getXY(); + + var x = Math.min(startXY[0], xy[0]); + var y = Math.min(startXY[1], xy[1]); + var w = Math.abs(startXY[0] - xy[0]); + var h = Math.abs(startXY[1] - xy[1]); + + dragRegion.left = x; + dragRegion.top = y; + dragRegion.right = x+w; + dragRegion.bottom = y+h; + + dragRegion.constrainTo(bodyRegion); + proxy.setRegion(dragRegion); + + for(var i = 0, len = rs.length; i < len; i++){ + var r = rs[i], sel = dragRegion.intersect(r); + if(sel && !r.selected){ + r.selected = true; + view.select(i, true); + }else if(!sel && r.selected){ + r.selected = false; + view.deselect(i); + } + } + } + + function onEnd(e){ + if (!Ext.isIE) { + view.un('containerclick', cancelClick, view); + } + if(proxy){ + proxy.setDisplayed(false); + } + } + + function onRender(view){ + tracker = new Ext.dd.DragTracker({ + onBeforeStart: onBeforeStart, + onStart: onStart, + onDrag: onDrag, + onEnd: onEnd + }); + tracker.initEl(view.el); + } }; \ No newline at end of file