<?php
/**
 * OpenSQLManager
 *
 * Free Database manager for Open Source Databases
 *
 * @author 		Timothy J. Warren
 * @copyright	Copyright (c) 2012
 * @link 		https://github.com/aviat4ion/OpenSQLManager
 * @license 	http://philsturgeon.co.uk/code/dbad-license
 */

// --------------------------------------------------------------------------

/**
 *Class to simplify dealing with GtkTreeView
 */
class Data_Grid extends GtkTreeView {

	protected $model;

	/**
	 * Create the object
	 *
	 * @param object $model
	 */
	public function __construct($model = null)
	{
		$this->model = ( ! is_null($model))
			? $model
			: new GtkTreeStore(Gobject::TYPE_PHP_VALUE);

		parent::__construct($this->model);
	}

	// --------------------------------------------------------------------------

	/**
	 * Get the value of the model for the current selection
	 *
	 * @param int pos
	 * @return mixed
	 */
	public function get($pos = 0)
	{
		// Get the selection object of the row
		$sel = $this->get_selection();

		// Get the model and iterator for the selected row
		list($model, $iter) = $sel->get_selected();

		// Get the data from the model
		return $model->get_value($iter, $pos);
	}

	// --------------------------------------------------------------------------

	/**
	 * Set the value of the cell at the provided coordinate array
	 *
	 * @param array $coord
	 * @param mixed $val
	 */
	public function set(array $coord, $val)
	{
		// @todo implement
	}

	// --------------------------------------------------------------------------

	/**
	 * Empty the model
	 */
	public function reset()
	{
		$this->model->clear();

		$cols = $this->get_columns();

		foreach($cols as $c)
		{
			$this->remove_column($c);
		}
	}
}
// End of data_grid.php