/*
|
This file is part of Ext JS 4.2
|
|
Copyright (c) 2011-2013 Sencha Inc
|
|
Contact: http://www.sencha.com/contact
|
|
GNU General Public License Usage
|
This file may be used under the terms of the GNU General Public License version 3.0 as
|
published by the Free Software Foundation and appearing in the file LICENSE included in the
|
packaging of this file.
|
|
Please review the following information to ensure the GNU General Public License version 3.0
|
requirements will be met: http://www.gnu.org/copyleft/gpl.html.
|
|
If you are unsure which license is appropriate for your use, please contact the sales department
|
at http://www.sencha.com/contact.
|
|
Build date: 2013-05-16 14:36:50 (f9be68accb407158ba2b1be2c226a6ce1f649314)
|
*/
|
/**
|
* Internal utility class that provides a unique cell context.
|
* @private
|
*/
|
Ext.define('Ext.grid.CellContext', {
|
|
/**
|
* @property {Boolean} isCellContext
|
* @readonly
|
* `true` in this class to identify an object as an instantiated CellContext, or subclass thereof.
|
*/
|
isCellContext: true,
|
|
constructor: function(view) {
|
this.view = view;
|
},
|
|
// Selection row/record & column/columnHeader
|
setPosition: function(row, col) {
|
var me = this;
|
|
// We were passed {row: 1, column: 2, view: myView}
|
if (arguments.length === 1) {
|
if (row.view) {
|
me.view = row.view;
|
}
|
col = row.column;
|
row = row.row;
|
}
|
|
me.setRow(row);
|
me.setColumn(col);
|
return me;
|
},
|
|
setRow: function(row) {
|
var me = this;
|
if (row !== undefined) {
|
// Row index passed
|
if (typeof row === 'number') {
|
me.row = Math.max(Math.min(row, me.view.dataSource.getCount() - 1), 0);
|
me.record = me.view.dataSource.getAt(row);
|
}
|
// row is a Record
|
else if (row.isModel) {
|
me.record = row;
|
me.row = me.view.indexOf(row);
|
}
|
// row is a grid row
|
else if (row.tagName) {
|
me.record = me.view.getRecord(row);
|
me.row = me.view.indexOf(me.record);
|
}
|
}
|
},
|
|
setColumn: function(col) {
|
var me = this,
|
columnManager = me.view.ownerCt.columnManager;
|
if (col !== undefined) {
|
// column index passed
|
if (typeof col === 'number') {
|
me.column = col;
|
me.columnHeader = columnManager.getHeaderAtIndex(col);
|
}
|
// column Header passed
|
else if (col.isHeader) {
|
me.columnHeader = col;
|
me.column = columnManager.getHeaderIndex(col);
|
}
|
}
|
}
|
});
|