]> git.llucax.com Git - mecon/meconlib.git/blobdiff - lib/MECON/HTML/QuickForm/Renderer/Tabla.php
BugFix.
[mecon/meconlib.git] / lib / MECON / HTML / QuickForm / Renderer / Tabla.php
index ee3083c6e97b455d934d15cf90d692b6b2e5f41f..4ef1fade5b5ee88c15e5f05f402bdf285bde8ca0 100644 (file)
@@ -1,42 +1,46 @@
-<?php
-/* vim: set expandtab tabstop=4 shiftwidth=4: */
-// +----------------------------------------------------------------------+
-// | PHP version 4.0                                                      |
-// +----------------------------------------------------------------------+
-// | Copyright (c) 1997-2003 The PHP Group                                |
-// +----------------------------------------------------------------------+
-// | This source file is subject to version 2.0 of the PHP license,       |
-// | that is bundled with this package in the file LICENSE, and is        |
-// | available at through the world-wide-web at                           |
-// | http://www.php.net/license/2_02.txt.                                 |
-// | If you did not receive a copy of the PHP license and are unable to   |
-// | obtain it through the world-wide-web, please send a note to          |
-// | license@php.net so we can mail you a copy immediately.               |
-// +----------------------------------------------------------------------+
-// | Authors: Alexey Borzov <borz_off@cs.msu.su>                          |
-// |          Adam Daniel <adaniel1@eesus.jnj.com>                        |
-// |          Bertrand Mansion <bmansion@mamasam.com>                     |
-// +----------------------------------------------------------------------+
-//
-// $Id$
+<?php /* vim: set binary expandtab tabstop=4 shiftwidth=4 textwidth=80:
+-------------------------------------------------------------------------------
+                            Ministerio de Economía
+                                   meconlib
+-------------------------------------------------------------------------------
+This file is part of meconlib.
+
+meconlib is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 2 of the License, or (at your option)
+any later version.
+
+meconlib is distributed in the hope that it will be useful, but WITHOUT
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+You should have received a copy of the GNU General Public License; if not,
+write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+Boston, MA  02111-1307  USA
+-------------------------------------------------------------------------------
+Creado: jue jul 17 15:36:26 ART 2003
+Autor:  Leandro Lucarella <llucar@mecon.gov.ar>
+-------------------------------------------------------------------------------
+$Id$
+-----------------------------------------------------------------------------*/
 
 require_once 'HTML/QuickForm/Renderer.php';
 require_once 'MECON/HTML/Tabla.php';
 
 /**
- * A concrete renderer for HTML_QuickForm,
- * based on QuickForm 2.x built-in one
+ * QuickForm renderer que usa Tabla como backend.
+ * Basado en el QuickForm Renderer basico.
  * 
  * @access public
  */
-class HTML_QuickForm_Renderer_Tabla extends HTML_QuickForm_Renderer {
+class MECON_HTML_QuickForm_Renderer_Tabla extends HTML_QuickForm_Renderer {
 
    /**
     * Tabla usada para dibujar el formulario.
     * @var      object Tabla
     * @access   private
     */
-    var $_tabla;
+    var $tabla;
 
    /**
     * HTML con los scripts para poner antes del formulario (tipicamente
@@ -84,14 +88,20 @@ class HTML_QuickForm_Renderer_Tabla extends HTML_QuickForm_Renderer {
    /**
     * Constructor.
     *
-    * @param  mixed $style Estilo de la tabla.
+    * @param  mixed $param Array o sting con el estilo de la tabla u objeto
+    * tabla alternativo para usar.
     *
     * @access public
     */
-    function HTML_QuickForm_Renderer_Tabla($style = array('width' => '100%'))
+    function MECON_HTML_QuickForm_Renderer_Tabla($param = array())
     {
         $this->HTML_QuickForm_Renderer();
-        $this->_tabla =& new Tabla($style);
+        if (is_a($param, 'Tabla')) {
+            $this->setTable($param);
+        }
+        else {
+            $this->tabla =& new MECON_HTML_Tabla($param);
+        }
     } // end constructor
 
    /**
@@ -103,7 +113,7 @@ class HTML_QuickForm_Renderer_Tabla extends HTML_QuickForm_Renderer {
     function toHtml()
     {
         return  $this->_script . $this->_prepend .
-                $this->_tabla->toHtml() .
+                $this->tabla->toHtml() .
                 $this->_append;
     } // end func toHtml
     
@@ -118,8 +128,10 @@ class HTML_QuickForm_Renderer_Tabla extends HTML_QuickForm_Renderer {
     {
         # FIXME - deberia sacarlo del QuickForm
         #$this->_prepend = $form->getFormStart();
-        $attrs = $form->getAttributesString();
-        $this->_prepend = "\n<FORM$attrs>\n";
+#        $attrs = $form->getAttributesString();
+        $attrs = $form->getAttributes(true);
+        $this->_prepend = "\n<form$attrs>\n";
+
     } // end func startForm
 
    /**
@@ -134,11 +146,11 @@ class HTML_QuickForm_Renderer_Tabla extends HTML_QuickForm_Renderer {
     {
         // add a required note, if one is needed
         if (!empty($form->_required) && !$form->_freezeAll) {
-            $id = $this->_tabla->addRow(
-                array($form->getRequiredNote()),
-                array('colspan' => 2, 'align' => 'center', 'cabecera' => true)
+            $id = $this->tabla->addRow(
+                array('<font size="-2">'.$form->getRequiredNote().'</font>'),
+                array('colspan' => 2, 'cabecera' => true)
             );
-            //$this->_tabla->updateCellAttributes($id, array('colspan' => 2));
+            //$this->tabla->updateCellAttributes($id, array('colspan' => 2));
         }
         // add form attributes and content
         //$this->_html = str_replace('{content}', $this->_html, $html);
@@ -146,7 +158,7 @@ class HTML_QuickForm_Renderer_Tabla extends HTML_QuickForm_Renderer {
         $this->_script = strval($form->getValidationScript());
         # FIXME - deberia sacarlo del QuickForm
         #$this->_append = $form->getFormEnd();
-        $this->_append = "\n</FORM>\n";
+        $this->_append = "\n</form>\n";
     } // end func finishForm
       
    /**
@@ -159,9 +171,9 @@ class HTML_QuickForm_Renderer_Tabla extends HTML_QuickForm_Renderer {
     function renderHeader(&$header)
     {
         $name = $header->getName();
-        $this->_tabla->addRow(
+        $this->tabla->addRow(
             array($header->toHtml()),
-            array('colspan' => 2, $name => true, 'align' => 'center')
+            array('colspan' => 2, $name => true)
         );
     } // end func renderHeader
 
@@ -178,14 +190,14 @@ class HTML_QuickForm_Renderer_Tabla extends HTML_QuickForm_Renderer {
     function renderElement(&$element, $required, $error)
     {
         if (!$this->_inGroup) {
-            $id = $this->_tabla->addRow(
+            $id = $this->tabla->addRow(
                 array(
-                    $element->getLabel() . ($required ? '<FONT color="red">*</FONT>' : ''),
-                    $element->toHtml() . ($error ? "<BR><FONT color=\"red\">$error</FONT>" : ''),
+                    $element->getLabel() . ($required ? '<font color="red">*</FONT>' : ''),
+                    $element->toHtml() . ($error ? "<br><font color=\"red\">$error</FONT>" : ''),
                 )
             );
-            $this->_tabla->updateCellAttributes($id, 0, array('titulo' => true, 'align' => 'left', 'nowrap' => true));
-            $this->_tabla->updateCellAttributes($id, 1, array('align' => 'left'));
+            $this->tabla->updateCellAttributes($id, 0, array('titulo' => true, 'align' => 'left'));
+            $this->tabla->updateCellAttributes($id, 1, array('align' => 'left'));
         } else {
             $this->_groupElements[] = ($element->getLabel() ? ($element->getLabel().'&nbsp;') : '') . $element->toHtml();
         }
@@ -213,7 +225,7 @@ class HTML_QuickForm_Renderer_Tabla extends HTML_QuickForm_Renderer {
     */
     function renderHtml(&$data)
     {
-        $this->_tabla->addRow(
+        $this->tabla->addRow(
             array($header->toHtml()),
             array('colspan' => 2)
         );
@@ -247,19 +259,69 @@ class HTML_QuickForm_Renderer_Tabla extends HTML_QuickForm_Renderer {
         $name = $group->getName();
         $sep = $group->_separator;
         if (strtolower($name) == 'botones') {
-            $id = $this->_tabla->addRow(
+            $id = $this->tabla->addRow(
                 array(join('', $this->_groupElements))
             );
-            $this->_tabla->updateCellAttributes($id, 0, array('align' => 'right', 'colspan' => 2));
+            $this->tabla->updateCellAttributes($id, 0, array('valign' => 'middle', 'align' => 'center', 'colspan' => 2));
         } else {
-            $id = $this->_tabla->addRow(
+            $id = $this->tabla->addRow(
                 array($group->getLabel(), join($sep, $this->_groupElements)),
-                array('align' => 'left')
+                array('valign' => 'middle', 'align' => 'left')
             );
-            $this->_tabla->updateCellAttributes($id, 0, array('titulo' => true, 'align' => 'left', 'nowrap' => true));
+            $this->tabla->updateCellAttributes($id, 0, array('titulo' => true, 'align' => 'left'));
         }
         $this->_inGroup = false;
     } // end func finishGroup
+    
+   /**
+    * Actualiza atributos de la tabla interna.
+    *
+    * @param    mixed   $attrs Html attributes
+    * @access   public
+    * @return   void
+    * @deprecated Usar $renderer->tabla->updateAttributes().
+    */
+    function updateAttributes($attrs) {
+        $this->tabla->updateAttributes($attrs);
+    }
+   /**
+    * Setea atributos.
+    *
+    * @param    mixed   $attrs Html attributes
+    * @access   public
+    * @return   void
+    * @deprecated Usar $renderer->tabla->setAttributes().
+    */
+    function setAttributes($attrs) {
+        $this->tabla->setAttributes($attrs);
+    }
+   /**
+    * Obtiene atributos.
+    *
+    * @access   public
+    * @return   mixed
+    * @deprecated Usar $renderer->tabla->getAttributes().
+    */
+    function getAttributes() {
+        return $this->tabla->getAttributes();
+    }
+
+   /**
+    * Setea la tabla que utilizará el renderer.
+    *
+    * @param Tabla $param Objeto tabla alternativo para utilizar
+    *
+    * @access   public
+    *
+    * @deprecated Usar $renderer->tabla.
+    */
+    function setTable(&$param) {
+        $this->tabla =& $param;
+    }
+
+    function getCSS() {
+        return $this->tabla->getCSS();
+    }
 
 } // end class HTML_QuickForm_Renderer_Default