Introduced PasswordField.class.php to keep things simple.
[timetracker.git] / WEB-INF / lib / form / Form.class.php
index 8bf3eca..868a3b3 100644 (file)
@@ -51,36 +51,26 @@ class Form {
   }
 
   function getName() { return $this->name; }
-    
-  // TODO: refactoring ongoing down from here.
 
+  // addInput - adds an input object to the form.
+  function addInput($arguments) {
+    switch($arguments['type']) {
+      case 'text':
+        import('form.TextField');
+        $el = new TextField($arguments['name']);
+        $el->setMaxLength(@$arguments['maxlength']);
+        if (isset($arguments['aspassword'])) $el->setAsPassword($arguments['aspassword']);
+        break;
 
+      case 'password':
+        import('form.PasswordField');
+        $el = new PasswordField($arguments['name']);
+        $el->setMaxLength(@$arguments['maxlength']);
+        break;
 
-       //// INPUT element
-       // type = TEXT | PASSWORD | CHECKBOX | RADIO | SUBMIT | RESET | FILE | HIDDEN | IMAGE | BUTTON
-       // name
-       // value
-       // checked - for type radio and checkbox
-       // size - width pixels or chars
-       // maxlength
-       // src - for type image
-       // tabindex - support  A, AREA, BUTTON, INPUT, OBJECT, SELECT, and TEXTAREA
-       // accesskey - support A, AREA, BUTTON, INPUT, LABEL, and LEGEND, and TEXTAREA
-       // onfocus
-       // onblur
-       // onselect -  INPUT and TEXTAREA
-       // onchange
-       function addInput($arguments) {
-               switch($arguments["type"]) {
-                   
-                       case "textfield":
-                       case "text":
-                           import('form.TextField');
-                           $el = new TextField($arguments["name"]);
-                           $el->setMaxLength(@$arguments["maxlength"]);
-                           if (isset($arguments["aspassword"])) $el->setAsPassword($arguments["aspassword"]);
-                           break;
-                           
+// TODO: refactoring ongoing down from here.
+// aspassword - change this name to something better? Perhaps.
+// Change $arguments to something better too (maybe). $args or $params?
                        case "datefield":
                            import('form.DateField');
                            $el = new DateField($arguments["name"]);
@@ -157,9 +147,8 @@ class Form {
                if ($el!=null) {
                        $el->setFormName($this->name);
                        if (isset($arguments["id"])) $el->setId($arguments["id"]);
-                       if (isset($GLOBALS["I18N"])) $el->setLocalization($GLOBALS["I18N"]);
-                       if (isset($arguments["render"])) $el->setRenderable($arguments["render"]);
-                       if (isset($arguments["enable"])) $el->setEnable($arguments["enable"]);
+                       if (isset($GLOBALS["I18N"])) $el->localize($GLOBALS["I18N"]);
+                       if (isset($arguments["enable"])) $el->setEnabled($arguments["enable"]);
                        
                        if (isset($arguments["style"])) $el->setStyle($arguments["style"]);
                        if (isset($arguments["size"])) $el->setSize($arguments["size"]);
@@ -176,10 +165,10 @@ class Form {
        
        function addInputElement(&$el) {
                if ($el && is_object($el)) {
-                       if (isset($GLOBALS["I18N"])) $el->setLocalization($GLOBALS["I18N"]);
+                       if (isset($GLOBALS["I18N"])) $el->localize($GLOBALS["I18N"]);
                
                        $el->setFormName($this->name);
-                       $this->elements[$el->getName()] = &$el;
+                       $this->elements[$el->name] = &$el;
                }
        }
        
@@ -205,7 +194,7 @@ class Form {
        $html = "\n";
        foreach ($this->elements as $elname=>$el) {
             if (strtolower(get_class($this->elements[$elname]))=="hidden") {
-               $html .= $this->elements[$elname]->toStringControl()."\n";
+                $html .= $this->elements[$elname]->getHtml()."\n";
             }
         }
         $html .= "</form>";