c.on("contextmenu", this.onContextMenu, this);
c.on("keydown", this.onKeyDown, this);
if (Roo.isTouch) {
- c.on("touch", this.onTouch, this);
+ c.on("touchstart", this.onTouchStart, this);
}
this.relayEvents(c, ["mousedown","mouseup","mouseover","mouseout","keypress"]);
return this;
},
- /**
- * Reconfigures the grid to use a different Store and Column Model.
- * The View will be bound to the new objects and refreshed.
- * @param {Roo.data.Store} dataSource The new {@link Roo.data.Store} object
- * @param {Roo.grid.ColumnModel} The new {@link Roo.grid.ColumnModel} object
- */
+ /**
+ * Reconfigures the grid to use a different Store and Column Model.
+ * The View will be bound to the new objects and refreshed.
+ * @param {Roo.data.Store} dataSource The new {@link Roo.data.Store} object
+ * @param {Roo.grid.ColumnModel} The new {@link Roo.grid.ColumnModel} object
+ */
reconfigure : function(dataSource, colModel){
if(this.loadMask){
this.loadMask.destroy();
this.colModel = colModel;
this.view.refresh(true);
},
-
+ /**
+ * addColumns
+ * Add's a column, default at the end..
+
+ * @param {int} position to add (default end)
+ * @param {Array} of objects of column configuration see {@link Roo.grid.ColumnModel}
+ */
+ addColumns : function(pos, ar)
+ {
+
+ for (var i =0;i< ar.length;i++) {
+ var cfg = ar[i];
+ cfg.id = typeof(cfg.id) == 'undefined' ? Roo.id() : cfg.id; // don't normally use this..
+ this.cm.lookup[cfg.id] = cfg;
+ }
+
+
+ if (typeof(pos) == 'undefined' || pos >= this.cm.config.length) {
+ pos = this.cm.config.length; //this.cm.config.push(cfg);
+ }
+ pos = Math.max(0,pos);
+ ar.shift(ar.length);
+ ar.shift(pos);
+ this.cm.config.splice.call(ar);
+
+
+
+ this.view.generateRules(this.cm);
+ this.view.refresh(true);
+
+ },
+
+
+
+
// private
onKeyDown : function(e){
this.fireEvent("keydown", e);
// private
processEvent : function(name, e){
// does this fire select???
- Roo.log('grid:processEvent ' + name);
- this.fireEvent(name == 'touch' ? 'click' : name, e);
+ //Roo.log('grid:processEvent ' + name);
+
+ if (name != 'touchstart' ) {
+ this.fireEvent(name, e);
+ }
+
var t = e.getTarget();
var v = this.view;
var header = v.findHeaderIndex(t);
if(header !== false){
- this.fireEvent("header" + name, this, header, e);
+ var ename = name == 'touchstart' ? 'click' : name;
+
+ this.fireEvent("header" + ename, this, header, e);
}else{
var row = v.findRowIndex(t);
var cell = v.findCellIndex(t);
- if (name == 'touch') {
+ if (name == 'touchstart') {
// first touch is always a click.
// hopefull this happens after selection is updated.?
- name = 'click';
+ name = false;
if (typeof(this.selModel.getSelectedCell) != 'undefined') {
var cs = this.selModel.getSelectedCell();
name = 'dblclick';
}
}
-
+ if (!name) {
+ return;
+ }
}
this.processEvent("click", e);
},
// private
- onTouch : function(e){
- this.processEvent("touch", e);
+ onTouchStart : function(e){
+ this.processEvent("touchstart", e);
},
// private