diff options
author | Jens Klaer <kj.landwehr.software@gmail.com> | 2015-05-20 15:41:19 +0200 |
---|---|---|
committer | Jens Klaer <kj.landwehr.software@gmail.com> | 2015-05-20 15:41:19 +0200 |
commit | ee25e9fc2a4cc702f1ac9af5645134eaa893cf4c (patch) | |
tree | 91a089704b449c3cb6fbd2e9acad709bfed6d639 /framework/Web/UI | |
parent | 4b74caee2b905dbf7f334ee5b1ef81134f2ffe79 (diff) |
viewstate tracking with custom pagestate tracker class
- made tracker class customizable through setter, leaving old
TCallbackPageStateTracker as default
- changed visibility for the tracked control in
TCallbackPageStateTracker to protected so deriving tracker classes can
access it
Diffstat (limited to 'framework/Web/UI')
-rw-r--r-- | framework/Web/UI/ActiveControls/TActiveControlAdapter.php | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/framework/Web/UI/ActiveControls/TActiveControlAdapter.php b/framework/Web/UI/ActiveControls/TActiveControlAdapter.php index bf1bc9f5..a74babf7 100644 --- a/framework/Web/UI/ActiveControls/TActiveControlAdapter.php +++ b/framework/Web/UI/ActiveControls/TActiveControlAdapter.php @@ -45,6 +45,10 @@ class TActiveControlAdapter extends TControlAdapter * @var TCallbackPageStateTracker view state tracker. */ private $_stateTracker; + /** + * @var string view state tracker class. + */ + private $_stateTrackerClass='TCallbackPageStateTracker'; /** * Constructor. @@ -140,7 +144,8 @@ class TActiveControlAdapter extends TControlAdapter { if($this->getIsTrackingPageState()) { - $this->_stateTracker = new TCallbackPageStateTracker($this->getControl()); + $stateTrackerClass = $this->_stateTrackerClass; + $this->_stateTracker = new $stateTrackerClass($this->getControl()); $this->_stateTracker->trackChanges(); } parent::onLoad($param); @@ -167,6 +172,14 @@ class TActiveControlAdapter extends TControlAdapter { return $this->_stateTracker; } + + /** + * @param string state tracker class. + */ + public function setStateTracker($value) + { + $this->_stateTrackerClass = TPropertyValue::ensureString($value); + } } /** @@ -191,7 +204,7 @@ class TCallbackPageStateTracker /** * @var TControl the control tracked */ - private $_control; + protected $_control; /** * @var object null object. */ |