From 1383f795d11e3960d681d369c1497a9944cf35e9 Mon Sep 17 00:00:00 2001
From: xue <>
Date: Sun, 11 Dec 2005 15:29:28 +0000
Subject: Modified setFocus so that it can focus on arbitrary element on a page
 rather than just controls.

---
 framework/Web/UI/TPage.php | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

(limited to 'framework')

diff --git a/framework/Web/UI/TPage.php b/framework/Web/UI/TPage.php
index fc63b7e3..ccbb12d4 100644
--- a/framework/Web/UI/TPage.php
+++ b/framework/Web/UI/TPage.php
@@ -705,8 +705,13 @@ class TPage extends TTemplateControl
 		$cs=$this->getClientScript();
 		if($this->getClientSupportsJavaScript())
 		{
-			if($this->_focusedControl && $this->_focusedControl->getVisible(true))
-				$cs->registerFocusScript($this->_focusedControl->getClientID());
+			if($this->_focusedControl)
+			{
+				if(is_string($this->_focusedControl))
+					$cs->registerFocusScript($this->_focusedControl);
+				else if(($this->_focusedControl instanceof TControl) && $this->_focusedControl->getVisible(true))
+					$cs->registerFocusScript($this->_focusedControl->getClientID());
+			}
 			else if($this->_postData && ($lastFocus=$this->_postData->itemAt(self::FIELD_LASTFOCUS))!==null)
 				$cs->registerFocusScript($lastFocus);
 			if($this->_maintainScrollPosition && $this->_postData)
@@ -728,9 +733,9 @@ class TPage extends TTemplateControl
 
 	/**
 	 * Sets input focus on a control after the page is rendered to users.
-	 * @param TControl control to receive focus
+	 * @param TControl|string control to receive focus, or the ID of the element on the page to receive focus
 	 */
-	public function setFocus(TControl $value)
+	public function setFocus($value)
 	{
 		$this->_focusedControl=$value;
 	}
-- 
cgit v1.2.3