From b3ceed048bb533a00bbea542f7c12b49c8c83d9b Mon Sep 17 00:00:00 2001 From: wei <> Date: Sat, 17 Jun 2006 01:55:05 +0000 Subject: Update changes to active controls, add FT tests for active controls, add comments. --- framework/Web/UI/ActiveControls/TActivePanel.php | 50 ++++++++++++++++++++++-- 1 file changed, 47 insertions(+), 3 deletions(-) (limited to 'framework/Web/UI/ActiveControls/TActivePanel.php') diff --git a/framework/Web/UI/ActiveControls/TActivePanel.php b/framework/Web/UI/ActiveControls/TActivePanel.php index db1d8a7d..787b65d3 100644 --- a/framework/Web/UI/ActiveControls/TActivePanel.php +++ b/framework/Web/UI/ActiveControls/TActivePanel.php @@ -1,9 +1,37 @@ + * @link http://www.pradosoft.com/ + * @copyright Copyright © 2006 PradoSoft + * @license http://www.pradosoft.com/license/ + * @version : : + * @package System.Web.UI.ActiveControls */ -class TActivePanel extends TPanel +/** + * TActivePanel is the TPanel active control counterpart. + * + * TActivePanel allows the client-side panel contents to be updated during a + * callback response using the {@link flush} method. + * + * Example: Assume $param is an instance of TCallbackEventParameter attached to + * the OnCallback event a TCallback with ID "callback1", and + * "panel1" is the ID of a TActivePanel. + * + * function callback1_requested($sender, $param) + * { + * $this->panel1->flush($param->getOutput()); + * } + * + * + * @author Wei Zhuo + * @version $Revision: $ Sun Jun 18 01:23:54 EST 2006 $ + * @package System.Web.UI.ActiveControls + * @since 3.0 + */ +class TActivePanel extends TPanel implements IActiveControl { /** * Creates a new callback control, sets the adapter to @@ -16,10 +44,26 @@ class TActivePanel extends TPanel $this->setAdapter(new TActiveControlAdapter($this)); } + /** + * @return TBaseActiveControl standard active control options. + */ public function getActiveControl() { return $this->getAdapter()->getBaseActiveControl(); } + + /** + * Renders and replaces the panel's content on the client-side. + * @param THtmlWriter html writer + */ + public function flush($writer) + { + if($this->getActiveControl()->canUpdateClientSide()) + { + $this->render($writer); + $this->getPage()->getCallbackClient()->replaceContent($this,$writer); + } + } } ?> \ No newline at end of file -- cgit v1.2.3