From e2614a35a70f609bccc1d65df6f1b92ff1fef5ef Mon Sep 17 00:00:00 2001 From: wei <> Date: Wed, 9 May 2007 02:51:02 +0000 Subject: Add compact db demo, add THtmlArea::EnableCompression, add ClientSide options for TColorPicker --- framework/Web/UI/WebControls/TColorPicker.php | 51 ++++++++++++++++++++++++++- framework/Web/UI/WebControls/THtmlArea.php | 34 +++++++++++++++--- 2 files changed, 80 insertions(+), 5 deletions(-) (limited to 'framework/Web/UI/WebControls') diff --git a/framework/Web/UI/WebControls/TColorPicker.php b/framework/Web/UI/WebControls/TColorPicker.php index 5f0c0b03..51e51ec3 100644 --- a/framework/Web/UI/WebControls/TColorPicker.php +++ b/framework/Web/UI/WebControls/TColorPicker.php @@ -24,6 +24,8 @@ class TColorPicker extends TTextBox { const SCRIPT_PATH = 'prado/colorpicker'; + private $_clientSide; + /** * @return boolean whether the color picker should pop up when the button is clicked. */ @@ -105,6 +107,24 @@ class TColorPicker extends TTextBox $this->setViewState('CancelButtonText', $value, 'Cancel'); } + /** + * @return TColorPickerClientSide javascript event options. + */ + public function getClientSide() + { + if(is_null($this->_clientSide)) + $this->_clientSide = $this->createClientSide(); + return $this->_clientSide; + } + + /** + * @return TColorPickerClientSide javascript validator event options. + */ + protected function createClientSide() + { + return new TColorPickerClientSide; + } + /** * Get javascript color picker options. * @return array color picker client-side options @@ -122,7 +142,7 @@ class TColorPicker extends TTextBox $options['OKButtonText'] = $this->getOKButtonText(); $options['CancelButtonText'] = $this->getCancelButtonText(); } - + $options = array_merge($options,$this->getClientSide()->getOptions()->toArray()); return $options; } @@ -221,4 +241,33 @@ class TColorPickerMode extends TEnumerable const Full='Full'; } +/** + * TColorPickerClientSide class. + * + * Client-side javascript code options. + * + * @author Wei Zhuo + * @version $Id$ + * @package System.Web.UI.WebControls + * @since 3.1 + */ +class TColorPickerClientSide extends TClientSideOptions +{ + /** + * @return string javascript code for when a color is selected. + */ + public function getOnColorSelected() + { + return $this->getOption('OnColorSelected'); + } + + /** + * @param string javascript code for when a color is selected. + */ + public function setOnColorSelected($javascript) + { + $this->setFunction('OnColorSelected', $javascript); + } +} + ?> \ No newline at end of file diff --git a/framework/Web/UI/WebControls/THtmlArea.php b/framework/Web/UI/WebControls/THtmlArea.php index 91f0f033..efe3e6d9 100644 --- a/framework/Web/UI/WebControls/THtmlArea.php +++ b/framework/Web/UI/WebControls/THtmlArea.php @@ -268,9 +268,27 @@ class THtmlArea extends TTextBox return $this->getViewState('CustomPluginPath'); } + /** + * @return boolean enable compression of the javascript files, default is true. + */ + public function getEnableCompression() + { + return $this->getViewState('EnableCompression', true); + } + + /** + * @param boolean enable compression of the javascript files, default is true. + */ + public function setEnableCompression($value) + { + $this->setViewState('EnableCompression', TPropertyValue::ensureBoolean($value)); + } + public function onPreRender($param) { - $this->preLoadCompressedScript(); + $this->loadJavascriptLibrary(); + if($this->getEnableCompression()) + $this->preLoadCompressedScript(); } /** @@ -310,8 +328,6 @@ class THtmlArea extends TTextBox protected function preLoadCompressedScript() { $scripts = $this->getPage()->getClientScript(); - if(!$scripts->isScriptFileRegistered('prado:THtmlArea')) - $scripts->registerScriptFile('prado:THtmlArea', $this->getScriptUrl()); $key = 'prado:THtmlArea:compressed'; if(!$scripts->isBeginScriptRegistered($key)) { @@ -326,6 +342,13 @@ class THtmlArea extends TTextBox } } + protected function loadJavascriptLibrary() + { + $scripts = $this->getPage()->getClientScript(); + if(!$scripts->isScriptFileRegistered('prado:THtmlArea')) + $scripts->registerScriptFile('prado:THtmlArea', $this->getScriptUrl()); + } + /** * Registers the editor javascript file and code to initialize the editor. */ @@ -342,7 +365,10 @@ class THtmlArea extends TTextBox */ protected function getScriptUrl() { - return $this->getScriptDeploymentPath().'/tiny_mce/tiny_mce_gzip.js'; + if($this->getEnableCompression()) + return $this->getScriptDeploymentPath().'/tiny_mce/tiny_mce_gzip.js'; + else + return $this->getScriptDeploymentPath().'/tiny_mce/tiny_mce.js'; } /** -- cgit v1.2.3