anewt-developers team mailing list archive
-
anewt-developers team
-
Mailing list archive
-
Message #00295
[Branch ~uws/anewt/anewt.uws] Rev 1806: [form] Support any renderable value in AnewtForm::add_node()
------------------------------------------------------------
revno: 1806
committer: Wouter Bolsterlee <uws@xxxxxxxxx>
branch nick: anewt
timestamp: Fri 2010-11-05 14:33:07 +0100
message:
[form] Support any renderable value in AnewtForm::add_node()
...instead of requiring an AnewtXMLDomNode instance. It's
now also possible to add custom renderers as directly to
AnewtForm instances.
modified:
form/fieldset.lib.php
form/form.lib.php
form/renderer/default.lib.php
--
lp:anewt
https://code.launchpad.net/~uws/anewt/anewt.uws
Your team Anewt developers is subscribed to branch lp:anewt.
To unsubscribe from this branch go to https://code.launchpad.net/~uws/anewt/anewt.uws/+edit-subscription
=== modified file 'form/fieldset.lib.php'
--- form/fieldset.lib.php 2009-08-02 16:32:09 +0000
+++ form/fieldset.lib.php 2010-11-05 13:33:07 +0000
@@ -73,11 +73,10 @@
* Add a custom node to this fieldset.
*
* \param $node
- * An AnewtXMLDomNode to embed in the form.
+ * An AnewtXMLDomNode or other renderable object to embed in the form.
*/
function add_node($node)
{
- assert('$node instanceof AnewtXMLDomNode;');
$this->_children[] = $node;
}
}
=== modified file 'form/form.lib.php'
--- form/form.lib.php 2010-02-24 20:50:42 +0000
+++ form/form.lib.php 2010-11-05 13:33:07 +0000
@@ -458,11 +458,10 @@
* This node is directly embedded in the rendered output by form renderers.
*
* \param $node
- * An AnewtXMLDomNode to embed in the form.
+ * An AnewtXMLDomNode or other renderable object to embed in the form.
*/
function add_node($node)
{
- assert('$node instanceof AnewtXMLDomNode;');
$this->_children[] = $node;
}
=== modified file 'form/renderer/default.lib.php'
--- form/renderer/default.lib.php 2010-10-02 18:45:11 +0000
+++ form/renderer/default.lib.php 2010-11-05 13:33:07 +0000
@@ -54,22 +54,25 @@
* A valid form child instance, e.g. AnewtFormControl or
* AnewtFormFieldset.
*/
- protected function _build_child_node($node)
+ protected function _build_child_node($value)
{
- if ($node instanceof AnewtFormFieldset)
- $result_node = $this->_build_fieldset_node($node);
- else if ($node instanceof AnewtFormControlChoice)
+ if ($value instanceof AnewtFormFieldset)
+ $node = $this->_build_fieldset_node($value);
+
+ else if ($value instanceof AnewtFormControlChoice)
/* TODO: Implement proper _build_form_control_choice_node() */
- $result_node = $this->_build_form_control_node($node);
- else if ($node instanceof AnewtFormControl)
- $result_node = $this->_build_form_control_node($node);
- else if ($node instanceof AnewtXMLDomNode)
- $result_node = $node;
- else {
- assert('false; // not reached');
- }
-
- return $result_node;
+ $node = $this->_build_form_control_node($value);
+
+ else if ($value instanceof AnewtFormControl)
+ $node = $this->_build_form_control_node($value);
+
+ else if ($value instanceof AnewtXMLDomNode)
+ $node = $value;
+
+ else
+ $node = AnewtXMLDomNode::create_for_value($value);
+
+ return $node;
}
/**