123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- /*
- * Ext JS Library 2.0 Copyright(c) 2006-2007, Ext JS, LLC. licensing@extjs.com
- *
- * http://extjs.com/license
- */
- Ext.DataView.LabelEditor = 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);
- }
- Ext.extend(Ext.DataView.LabelEditor, Ext.Editor, {
- alignment : "tl-tl",
- hideEl : false,
- cls : "x-small-editor",
- shim : false,
- completeOnEnter : true,
- cancelOnEsc : true,
- labelSelector : 'span.x-editable',
- init : function(view) {
- this.view = view;
- view.on('render', this.initEditor, this);
- this.on('complete', this.onSave, this);
- },
- initEditor : function() {
- this.view.getEl().on('mousedown', this.onMouseDown, this, {
- delegate : this.labelSelector
- });
- },
- 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, regions, 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 {
- 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 (proxy) {
- proxy.setDisplayed(false);
- }
- }
- function onRender(view) {
- tracker = new Ext.dd.DragTracker({
- onBeforeStart : onBeforeStart,
- onStart : onStart,
- onDrag : onDrag,
- onEnd : onEnd
- });
- tracker.initEl(view.el);
- }
- };
|