var LotIface = require('./lot-iface');
var ModelIface = require('./model-iface');

module.exports = new Class({
	Implements: LotIface
	,Properties: {
		/**
		 * The model associated to this form.
		 */
		model: {
			type: ModelIface
		},
		/**
		 * 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
		}
	}
	
	,insertRow() {
		if (this._model)
			this.row = this._model.insertRow();
	}

	/**
	 * Removes the current row.
	 */
	,deleteRow() {
		if (this._row >= 0)
			this._model.deleteRow(this._row);
	}
	
	/**
	 * Gets a value from the form.
	 *
	 * @param {string} columnName The column name
	 * @return {Object} The value
	 */
	,get(columnName) {
		return this._model ?
			this._model.get(this._row, columnName) : undefined;
	}

	/**
	 * Sets a value on the form.
	 *
	 * @param {string} columnName The column name
	 * @param {Object} value The new value
	 */
	,set(columnName, value) {
		this._model.set(this._row, columnName, value);
	}
});