+ /**
+ * Obtiene la Cascade Style Sheet para esta tabla.
+ *
+ * @return string Path 'web' a la css.
+ */
+ function getCSS() {
+ return $this->_conf['css'];
+ }
+
+ /**
+ * Setea la cabecera.
+ * Ejemplo:
+ * @code
+ * $tabla->setCabecera(array('Hola', '', 'mundo!'));
+ * @endcode
+ *
+ * @param array $cabecera Array de 3 elementos, que son la celda izquierda,
+ * central y derecha de la cabecera (en ese órden).
+ */
+ function setCabecera($cabecera) {
+ if (count($cabecera) != 3) {
+ $this->raiseError('Parámetro incorrecto: debe ser un array de 3 elementos.');
+ }
+ $this->_cabecera = $cabecera;
+ }
+
+ /**
+ * Agrega información a la cabecera de la tabla.
+ * Ejemplo:
+ * @code
+ * $tabla->updateCabecera('Hola', 'izquierda');
+ * $tabla->updateCabecera('mundo!', 'derecha');
+ * @endcode
+ *
+ * @param mixed $cabecera Celda a agregar a la cabecera. Puede ser un string
+ * o un objeto con un método toHtml().
+ * @param string $lugar Lugar en donde poner la cabecera. Puede ser
+ * 'izquierda', 'centro' o 'derecha'.
+ */
+ function updateCabecera($cabecera, $lugar) {
+ if (!$this->_cabecera) {
+ $this->_cabecera = array('', '', '');
+ }
+ if ($lugar == 'izquierda') {
+ $this->_cabecera[0] = $cabecera;
+ } elseif ($lugar == 'centro') {
+ $this->_cabecera[1] = $cabecera;
+ } elseif ($lugar == 'derecha') {
+ $this->_cabecera[2] = $cabecera;
+ } else {
+ $this->raiseError('Parámetro incorrecto: lugar debe ser izquierda, centro o derecha.');
+ }
+ }
+
+ /**
+ * Setea el pie.
+ *
+ * @param array $pie Array de 3 elementos, que son la celda izquierda,
+ * central y derecha del pie (en ese órden).
+ *
+ * @see Ejemplo en setCabecera().
+ */
+ function setPie($pie) {
+ if (count($pie) != 3) {
+ $this->raiseError('Parámetro incorrecto: debe ser un array de 3 elementos.');
+ }
+ $this->_pie = $pie;
+ }
+
+ /**
+ * Agrega información al pie de la tabla.
+ *
+ * @param mixed $pie Celda a agregar al pie. Puede ser un string
+ * o un objeto con un método toHtml().
+ * @param string $lugar Lugar en donde poner el pie. Puede ser
+ * 'izquierda', 'centro' o 'derecha'.
+ *
+ * @see Ejemplo en updateCabecera().
+ */
+ function updatePie($pie, $lugar) {
+ if (!$this->_pie) {
+ $this->_pie = array('', '', '');
+ }
+ if ($lugar == 'izquierda') {
+ $this->_pie[0] = $pie;
+ } elseif ($lugar == 'centro') {
+ $this->_pie[1] = $pie;
+ } elseif ($lugar == 'derecha') {
+ $this->_pie[2] = $pie;
+ } else {
+ $this->raiseError('Parámetro incorrecto: lugar debe ser izquierda, centro o derecha.');
+ }
+ }
+
+ /**
+ * Agrega un link predefinido a la cabecera o pie de la tabla.
+ * Ejemplo:
+ * @code
+ * if ($muchos) {
+ * $tabla->addLink('nuevo');
+ * } else {
+ * $tabla->addLink('nuevos', 'nuevos.php');
+ * }
+ * $tabla->addLink('volver',
+ * new MECON_HTML_Link('atras.php'));
+ * $tabla->addLink('anterior',
+ * new MECON_HTML_Link('previo.php', 'Persona Anterior'));
+ * $tabla->addLink('siguiente',
+ * new MECON_HTML_Link('previo.php', 'Siguiente persona',
+ * array('pers' => 'prox')));
+ * @endcode
+ *
+ * @param string $id Identificador del link predefinido. Puede ser 'volver',
+ * 'nuevo', 'nuevos', 'buscar', 'anterior' y 'siguiente'.
+ * @param MECON_HTML_Link $link Link a usar. Si no tiene contenidos, se pone
+ * uno por defecto. Si es null, se pone como
+ * link la página actual.
+ *
+ */
+ function addLink($id, $link = null) {
+ if (!$link) {
+ $link = @$_SERVER['PHP_SELF'];
+ }
+ if (is_string($link)) {
+ $link = new MECON_HTML_Link($link, '');
+ }
+ switch ($id) {
+ case 'nuevo':
+ $img = new MECON_HTML_Image('/MECON/images/general_nuevo', '->');
+ // Si no tiene titulo, le pone titulo por defecto.
+ if (!$link->getContents()) {
+ $link->setContents('Nuevo');
+ }
+ $link->addContents($img);
+ $this->updateCabecera($link, 'derecha');
+ break;
+ case 'nuevos':
+ $img = new MECON_HTML_Image('/MECON/images/general_muchos_nuevo', '->');
+ // Si no tiene titulo, le pone titulo por defecto.
+ if (!$link->getContents()) {
+ $link->setContents('Nuevos');
+ }
+ $link->addContents($img);
+ $this->updateCabecera($link, 'derecha');
+ break;
+ case 'buscar':
+ $img = new MECON_HTML_Image('/MECON/images/general_lupa', 'Q');
+ // Si no tiene titulo, le pone titulo por defecto.
+ if (!$link->getContents()) {
+ $link->setContents('Buscar');
+ }
+ $link->addContents($img);
+ $this->updateCabecera($link, 'derecha');
+ break;
+ case 'siguiente':
+ $img = new MECON_HTML_Image('/MECON/images/general_posterior', '->');
+ // Si no tiene titulo, le pone titulo por defecto.
+ if (!$link->getContents()) {
+ $link->setContents('Siguiente');
+ }
+ $link->addContents($img);
+ $this->updatePie($link, 'derecha');
+ break;
+ case 'volver':
+ $img = new MECON_HTML_Image('/MECON/images/general_anterior', '<-');
+ // Si no tiene titulo, le pone titulo por defecto.
+ $cont = $link->getContents() ? $link->getContents() : 'Volver';
+ $link->setContents($img);
+ $link->addContents($cont);
+ $this->updateCabecera($link, 'izquierda');
+ break;
+ case 'anterior':
+ $img = new MECON_HTML_Image('/MECON/images/general_anterior', '<-');
+ // Si no tiene titulo, le pone titulo por defecto.
+ $cont = $link->getContents() ? $link->getContents() : 'Anterior';
+ $link->setContents($img);
+ $link->addContents($cont);
+ $this->updatePie($link, 'izquierda');
+ break;
+ default:
+ $this->raiseError("No hay un link predefinido llamado '$id'.");
+ }
+ }
+