hedera-web/js/db/iterator.js

134 lines
2.4 KiB
JavaScript

var Model = require('./model');
module.exports = new Class({
Properties: {
/**
* The model associated to this form.
*/
model: {
type: Model
},
/**
* The row where the form positioned, has -1 if the row is unselected.
*/
row: {
type: Number
},
/**
* The number of rows in the form.
*/
numRows: {
type: Number
},
/**
* Checks if the form data is ready.
*/
ready: {
type: Boolean
},
/**
* The row object.
*/
$: {
type: Object
}
}
,_model: null
,_row: -1
,refresh: function() {
if (this._model)
this._model.refresh();
}
/**
* Emits the 'change' signal on the form.
*/
,iterChanged: function() {
this.emit('change');
}
/**
* Get the index of the column from its name.
*
* @param {String} columnName The column name
* @return {integer} The column index or -1 if column not exists
*/
,getColumnIndex: function(columnName) {
if (this._model)
return this._model.getColumnIndex(columnName);
return -1;
}
,insertRow: function() {
if (this._model)
this.row = this._model.insertRow();
}
,performOperations: function() {
if (this._model)
this._model.performOperations();
}
/**
* Removes the current row.
*/
,deleteRow: function() {
if (this._row >= 0)
this._model.deleteRow(this._row);
}
/**
* Gets the row as object.
*
* @return {Object} The row
*/
,getObject: function() {
return this._model.getObject(this._row);
}
/**
* Sets a value on the form.
*
* @param {String} columnName The column name
*/
,get: function(columnName) {
if (!this._model) return undefined;
return this._model.get(this._row, columnName);
}
/**
* Sets a value on the form.
*
* @param {String} columnName The column name
* @param {Object} value The new value
*/
,set: function(columnName, value) {
return this._model.set(this._row, columnName, value);
}
/**
* Gets a value from the form using the column index.
*
* @param {String} columnName The column index
* @return {Object} The value
*/
,getByIndex: function(column) {
return this._model.getByIndex(this._row, column);
}
/**
* Sets a value on the form using the column index.
*
* @param {String} columnName The column index
* @param {Object} value The new value
*/
,setByIndex: function(column, value) {
return this._model.setByIndex(this._row, column, value);
}
});