summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFabio Bas <ctrlaltca@gmail.com>2014-01-10 19:27:47 +0100
committerFabio Bas <ctrlaltca@gmail.com>2014-08-23 12:15:02 +0200
commit606728e5c2fb1dfe2ca2760b9894f5c6d378d9b5 (patch)
treef0b6f3b8f71c18bfd709fdb26fb2685fd1f562b5
parenteb9269193cd9b2a50050460c5807652f38ae52ee (diff)
Optimization: avoid duplicate creation of T*CheckBoxList, T*RadioButtonList js items
-rw-r--r--framework/Web/UI/ActiveControls/TActiveCheckBoxList.php17
-rw-r--r--framework/Web/UI/ActiveControls/TActiveRadioButtonList.php17
-rw-r--r--framework/Web/UI/WebControls/TCheckBoxList.php10
-rw-r--r--framework/Web/UI/WebControls/TRadioButtonList.php10
4 files changed, 50 insertions, 4 deletions
diff --git a/framework/Web/UI/ActiveControls/TActiveCheckBoxList.php b/framework/Web/UI/ActiveControls/TActiveCheckBoxList.php
index aa2d5f94..9280f0e8 100644
--- a/framework/Web/UI/ActiveControls/TActiveCheckBoxList.php
+++ b/framework/Web/UI/ActiveControls/TActiveCheckBoxList.php
@@ -76,7 +76,7 @@ class TActiveCheckBoxList extends TCheckBoxList implements IActiveControl, ICall
*/
protected function createRepeatedControl()
{
- $control = new TActiveCheckBox;
+ $control = new TActiveCheckBoxListItem;
$control->getAdapter()->setBaseActiveControl($this->getActiveControl());
return $control;
}
@@ -117,3 +117,18 @@ class TActiveCheckBoxList extends TCheckBoxList implements IActiveControl, ICall
}
+class TActiveCheckBoxListItem extends TActiveCheckBox
+{
+ /**
+ * Override client implementation to avoid emitting the javascript
+ *
+ * @param THtmlWriter the writer for the rendering purpose
+ * @param string checkbox id
+ * @param string onclick js
+ */
+ protected function renderInputTag($writer,$clientID,$onclick)
+ {
+ TCheckBox::renderInputTag($writer,$clientID,$onclick);
+ }
+}
+
diff --git a/framework/Web/UI/ActiveControls/TActiveRadioButtonList.php b/framework/Web/UI/ActiveControls/TActiveRadioButtonList.php
index 5c76aed1..503841a3 100644
--- a/framework/Web/UI/ActiveControls/TActiveRadioButtonList.php
+++ b/framework/Web/UI/ActiveControls/TActiveRadioButtonList.php
@@ -77,7 +77,7 @@ class TActiveRadioButtonList extends TRadioButtonList implements IActiveControl,
*/
protected function createRepeatedControl()
{
- $control = new TActiveRadioButton;
+ $control = new TActiveRadioButtonItem;
$control->getAdapter()->setBaseActiveControl($this->getActiveControl());
return $control;
}
@@ -117,3 +117,18 @@ class TActiveRadioButtonList extends TRadioButtonList implements IActiveControl,
}
}
+
+class TActiveRadioButtonItem extends TActiveRadioButton
+{
+ /**
+ * Override client implementation to avoid emitting the javascript
+ *
+ * @param THtmlWriter the writer for the rendering purpose
+ * @param string checkbox id
+ * @param string onclick js
+ */
+ protected function renderInputTag($writer,$clientID,$onclick)
+ {
+ TRadioButton::renderInputTag($writer,$clientID,$onclick);
+ }
+}
diff --git a/framework/Web/UI/WebControls/TCheckBoxList.php b/framework/Web/UI/WebControls/TCheckBoxList.php
index af59545c..94278764 100644
--- a/framework/Web/UI/WebControls/TCheckBoxList.php
+++ b/framework/Web/UI/WebControls/TCheckBoxList.php
@@ -72,7 +72,7 @@ class TCheckBoxList extends TListControl implements IRepeatInfoUser, INamingCont
*/
protected function createRepeatedControl()
{
- return new TCheckBox;
+ return new TCheckBoxItem;
}
/**
@@ -499,3 +499,11 @@ class TCheckBoxList extends TListControl implements IRepeatInfoUser, INamingCont
}
+class TCheckBoxItem extends TCheckBox {
+ /**
+ * Override client implementation to avoid emitting the javascript
+ */
+ protected function renderClientControlScript($writer)
+ {
+ }
+}
diff --git a/framework/Web/UI/WebControls/TRadioButtonList.php b/framework/Web/UI/WebControls/TRadioButtonList.php
index bead3582..3afe3ec2 100644
--- a/framework/Web/UI/WebControls/TRadioButtonList.php
+++ b/framework/Web/UI/WebControls/TRadioButtonList.php
@@ -47,7 +47,7 @@ class TRadioButtonList extends TCheckBoxList
*/
protected function createRepeatedControl()
{
- return new TRadioButton;
+ return new TRadioButtonItem;
}
/**
@@ -97,3 +97,11 @@ class TRadioButtonList extends TCheckBoxList
}
}
+class TRadioButtonItem extends TRadioButton {
+ /**
+ * Override client implementation to avoid emitting the javascript
+ */
+ protected function renderClientControlScript($writer)
+ {
+ }
+}