diff options
Diffstat (limited to 'framework/Web/UI/WebControls/TStyle.php')
-rw-r--r-- | framework/Web/UI/WebControls/TStyle.php | 481 |
1 files changed, 1 insertions, 480 deletions
diff --git a/framework/Web/UI/WebControls/TStyle.php b/framework/Web/UI/WebControls/TStyle.php index f30b3461..17b7e9a8 100644 --- a/framework/Web/UI/WebControls/TStyle.php +++ b/framework/Web/UI/WebControls/TStyle.php @@ -403,483 +403,4 @@ class TStyle extends TComponent { return $this->_fields; } -} - -/** - * TDisplayStyle defines the enumerable type for the possible styles - * that a web control can display. - * - * The following enumerable values are defined: - * - None: the control is not displayed and not included in the layout. - * - Dynamic: the control is displayed and included in the layout, the layout flow is dependent on the control (equivalent to display:'' in css). - * - Fixed: Similar to Dynamic with CSS "visibility" set "shown". - * - Hidden: the control is not displayed and is included in the layout. - * - * @author Wei Zhuo <weizhuo[at]gmail[dot]com> - * @package System.Web.UI.WebControls - * @since 3.1 - */ -class TDisplayStyle extends TEnumerable -{ - const None='None'; - const Dynamic='Dynamic'; - const Fixed='Fixed'; - const Hidden='Hidden'; -} - -/** - * TTableStyle class. - * TTableStyle represents the CSS style specific for HTML table. - * - * @author Qiang Xue <qiang.xue@gmail.com> - * @package System.Web.UI.WebControls - * @since 3.0 - */ -class TTableStyle extends TStyle -{ - /** - * @var TVerticalAlign the URL of the background image for the table - */ - private $_backImageUrl=null; - /** - * @var THorizontalAlign horizontal alignment of the contents within the table - */ - private $_horizontalAlign=null; - /** - * @var integer cellpadding of the table - */ - private $_cellPadding=null; - /** - * @var integer cellspacing of the table - */ - private $_cellSpacing=null; - /** - * @var TTableGridLines grid line setting of the table - */ - private $_gridLines=null; - /** - * @var boolean whether the table border should be collapsed - */ - private $_borderCollapse=null; - - /** - * Sets the style attributes to default values. - * This method overrides the parent implementation by - * resetting additional TTableStyle specific attributes. - */ - public function reset() - { - $this->_backImageUrl=null; - $this->_horizontalAlign=null; - $this->_cellPadding=null; - $this->_cellSpacing=null; - $this->_gridLines=null; - $this->_borderCollapse=null; - } - - /** - * Copies the fields in a new style to this style. - * If a style field is set in the new style, the corresponding field - * in this style will be overwritten. - * @param TStyle the new style - */ - public function copyFrom($style) - { - parent::copyFrom($style); - if($style instanceof TTableStyle) - { - if($style->_backImageUrl!==null) - $this->_backImageUrl=$style->_backImageUrl; - if($style->_horizontalAlign!==null) - $this->_horizontalAlign=$style->_horizontalAlign; - if($style->_cellPadding!==null) - $this->_cellPadding=$style->_cellPadding; - if($style->_cellSpacing!==null) - $this->_cellSpacing=$style->_cellSpacing; - if($style->_gridLines!==null) - $this->_gridLines=$style->_gridLines; - if($style->_borderCollapse!==null) - $this->_borderCollapse=$style->_borderCollapse; - } - } - - /** - * Merges the style with a new one. - * If a style field is not set in this style, it will be overwritten by - * the new one. - * @param TStyle the new style - */ - public function mergeWith($style) - { - parent::mergeWith($style); - if($style instanceof TTableStyle) - { - if($this->_backImageUrl===null && $style->_backImageUrl!==null) - $this->_backImageUrl=$style->_backImageUrl; - if($this->_horizontalAlign===null && $style->_horizontalAlign!==null) - $this->_horizontalAlign=$style->_horizontalAlign; - if($this->_cellPadding===null && $style->_cellPadding!==null) - $this->_cellPadding=$style->_cellPadding; - if($this->_cellSpacing===null && $style->_cellSpacing!==null) - $this->_cellSpacing=$style->_cellSpacing; - if($this->_gridLines===null && $style->_gridLines!==null) - $this->_gridLines=$style->_gridLines; - if($this->_borderCollapse===null && $style->_borderCollapse!==null) - $this->_borderCollapse=$style->_borderCollapse; - } - } - - - /** - * Adds attributes related to CSS styles to renderer. - * This method overrides the parent implementation. - * @param THtmlWriter the writer used for the rendering purpose - */ - public function addAttributesToRender($writer) - { - if(($url=trim($this->getBackImageUrl()))!=='') - $writer->addStyleAttribute('background-image','url('.$url.')'); - - if(($horizontalAlign=$this->getHorizontalAlign())!==THorizontalAlign::NotSet) - $writer->addStyleAttribute('text-align',strtolower($horizontalAlign)); - - if(($cellPadding=$this->getCellPadding())>=0) - $writer->addAttribute('cellpadding',"$cellPadding"); - - if(($cellSpacing=$this->getCellSpacing())>=0) - $writer->addAttribute('cellspacing',"$cellSpacing"); - - if($this->getBorderCollapse()) - $writer->addStyleAttribute('border-collapse','collapse'); - - switch($this->getGridLines()) - { - case TTableGridLines::Horizontal : $writer->addAttribute('rules','rows'); break; - case TTableGridLines::Vertical : $writer->addAttribute('rules','cols'); break; - case TTableGridLines::Both : $writer->addAttribute('rules','all'); break; - } - - parent::addAttributesToRender($writer); - } - - /** - * @return string the URL of the background image for the table - */ - public function getBackImageUrl() - { - return $this->_backImageUrl===null?'':$this->_backImageUrl; - } - - /** - * Sets the URL of the background image for the table - * @param string the URL - */ - public function setBackImageUrl($value) - { - $this->_backImageUrl=$value; - } - - /** - * @return THorizontalAlign the horizontal alignment of the contents within the table, defaults to THorizontalAlign::NotSet. - */ - public function getHorizontalAlign() - { - return $this->_horizontalAlign===null?THorizontalAlign::NotSet:$this->_horizontalAlign; - } - - /** - * Sets the horizontal alignment of the contents within the table. - * @param THorizontalAlign the horizontal alignment - */ - public function setHorizontalAlign($value) - { - $this->_horizontalAlign=TPropertyValue::ensureEnum($value,'THorizontalAlign'); - } - - /** - * @return integer cellpadding of the table. Defaults to -1, meaning not set. - */ - public function getCellPadding() - { - return $this->_cellPadding===null?-1:$this->_cellPadding; - } - - /** - * @param integer cellpadding of the table. A value equal to -1 clears up the setting. - * @throws TInvalidDataValueException if the value is less than -1. - */ - public function setCellPadding($value) - { - if(($this->_cellPadding=TPropertyValue::ensureInteger($value))<-1) - throw new TInvalidDataValueException('tablestyle_cellpadding_invalid'); - } - - /** - * @return integer cellspacing of the table. Defaults to -1, meaning not set. - */ - public function getCellSpacing() - { - return $this->_cellSpacing===null?-1:$this->_cellSpacing; - } - - /** - * @param integer cellspacing of the table. A value equal to -1 clears up the setting. - * @throws TInvalidDataValueException if the value is less than -1. - */ - public function setCellSpacing($value) - { - if(($this->_cellSpacing=TPropertyValue::ensureInteger($value))<-1) - throw new TInvalidDataValueException('tablestyle_cellspacing_invalid'); - } - - /** - * @return TTableGridLines the grid line setting of the table. Defaults to TTableGridLines::None. - */ - public function getGridLines() - { - return $this->_gridLines===null?TTableGridLines::None:$this->_gridLines; - } - - /** - * Sets the grid line style of the table. - * @param TTableGridLines the grid line setting of the table - */ - public function setGridLines($value) - { - $this->_gridLines=TPropertyValue::ensureEnum($value,'TTableGridLines'); - } - - - /** - * @return boolean whether the table borders should be collapsed. Defaults to false. - */ - public function getBorderCollapse() - { - return $this->_borderCollapse===null?false:$this->_borderCollapse; - } - - /** - * @param boolean whether the table borders should be collapsed. - */ - public function setBorderCollapse($value) - { - $this->_borderCollapse=TPropertyValue::ensureBoolean($value); - } -} - -/** - * TTableItemStyle class. - * TTableItemStyle represents the CSS style specific for HTML table item. - * - * @author Qiang Xue <qiang.xue@gmail.com> - * @package System.Web.UI.WebControls - * @since 3.0 - */ -class TTableItemStyle extends TStyle -{ - /** - * @var THorizontalAlign horizontal alignment of the contents within the table item - */ - private $_horizontalAlign=null; - /** - * @var TVerticalAlign vertical alignment of the contents within the table item - */ - private $_verticalAlign=null; - /** - * @var boolean whether the content wraps within the table item - */ - private $_wrap=null; - - /** - * Sets the style attributes to default values. - * This method overrides the parent implementation by - * resetting additional TTableItemStyle specific attributes. - */ - public function reset() - { - parent::reset(); - $this->_verticalAlign=null; - $this->_horizontalAlign=null; - $this->_wrap=null; - } - - /** - * Copies the fields in a new style to this style. - * If a style field is set in the new style, the corresponding field - * in this style will be overwritten. - * @param TStyle the new style - */ - public function copyFrom($style) - { - parent::copyFrom($style); - if($style instanceof TTableItemStyle) - { - if($this->_verticalAlign===null && $style->_verticalAlign!==null) - $this->_verticalAlign=$style->_verticalAlign; - if($this->_horizontalAlign===null && $style->_horizontalAlign!==null) - $this->_horizontalAlign=$style->_horizontalAlign; - if($this->_wrap===null && $style->_wrap!==null) - $this->_wrap=$style->_wrap; - } - } - - /** - * Merges the style with a new one. - * If a style field is not set in this style, it will be overwritten by - * the new one. - * @param TStyle the new style - */ - public function mergeWith($style) - { - parent::mergeWith($style); - if($style instanceof TTableItemStyle) - { - if($style->_verticalAlign!==null) - $this->_verticalAlign=$style->_verticalAlign; - if($style->_horizontalAlign!==null) - $this->_horizontalAlign=$style->_horizontalAlign; - if($style->_wrap!==null) - $this->_wrap=$style->_wrap; - } - } - - /** - * Adds attributes related to CSS styles to renderer. - * This method overrides the parent implementation. - * @param THtmlWriter the writer used for the rendering purpose - */ - public function addAttributesToRender($writer) - { - if(!$this->getWrap()) - $writer->addStyleAttribute('white-space','nowrap'); - - if(($horizontalAlign=$this->getHorizontalAlign())!==THorizontalAlign::NotSet) - $writer->addAttribute('align',strtolower($horizontalAlign)); - - if(($verticalAlign=$this->getVerticalAlign())!==TVerticalAlign::NotSet) - $writer->addAttribute('valign',strtolower($verticalAlign)); - - parent::addAttributesToRender($writer); - } - - /** - * @return THorizontalAlign the horizontal alignment of the contents within the table item, defaults to THorizontalAlign::NotSet. - */ - public function getHorizontalAlign() - { - return $this->_horizontalAlign===null?THorizontalAlign::NotSet:$this->_horizontalAlign; - } - - /** - * Sets the horizontal alignment of the contents within the table item. - * @param THorizontalAlign the horizontal alignment - */ - public function setHorizontalAlign($value) - { - $this->_horizontalAlign=TPropertyValue::ensureEnum($value,'THorizontalAlign'); - } - - /** - * @return TVerticalAlign the vertical alignment of the contents within the table item, defaults to TVerticalAlign::NotSet. - */ - public function getVerticalAlign() - { - return $this->_verticalAlign===null?TVerticalAlign::NotSet:$this->_verticalAlign; - } - - /** - * Sets the vertical alignment of the contents within the table item. - * @param TVerticalAlign the horizontal alignment - */ - public function setVerticalAlign($value) - { - $this->_verticalAlign=TPropertyValue::ensureEnum($value,'TVerticalAlign'); - } - - /** - * @return boolean whether the content wraps within the table item. Defaults to true. - */ - public function getWrap() - { - return $this->_wrap===null?true:$this->_wrap; - } - - /** - * Sets the value indicating whether the content wraps within the table item. - * @param boolean whether the content wraps within the panel. - */ - public function setWrap($value) - { - $this->_wrap=TPropertyValue::ensureBoolean($value); - } -} - -/** - * THorizontalAlign class. - * THorizontalAlign defines the enumerable type for the possible horizontal alignments in a CSS style. - * - * The following enumerable values are defined: - * - NotSet: the alignment is not specified. - * - Left: left aligned - * - Right: right aligned - * - Center: center aligned - * - Justify: the begin and end are justified - * - * @author Qiang Xue <qiang.xue@gmail.com> - * @package System.Web.UI.WebControls - * @since 3.0.4 - */ -class THorizontalAlign extends TEnumerable -{ - const NotSet='NotSet'; - const Left='Left'; - const Right='Right'; - const Center='Center'; - const Justify='Justify'; -} - -/** - * TVerticalAlign class. - * TVerticalAlign defines the enumerable type for the possible vertical alignments in a CSS style. - * - * The following enumerable values are defined: - * - NotSet: the alignment is not specified. - * - Top: top aligned - * - Bottom: bottom aligned - * - Middle: middle aligned - * - * @author Qiang Xue <qiang.xue@gmail.com> - * @package System.Web.UI.WebControls - * @since 3.0.4 - */ -class TVerticalAlign extends TEnumerable -{ - const NotSet='NotSet'; - const Top='Top'; - const Bottom='Bottom'; - const Middle='Middle'; -} - - -/** - * TTableGridLines class. - * TTableGridLines defines the enumerable type for the possible grid line types of an HTML table. - * - * The following enumerable values are defined: - * - None: no grid lines - * - Horizontal: horizontal grid lines only - * - Vertical: vertical grid lines only - * - Both: both horizontal and vertical grid lines are shown - * - * @author Qiang Xue <qiang.xue@gmail.com> - * @package System.Web.UI.WebControls - * @since 3.0.4 - */ -class TTableGridLines extends TEnumerable -{ - const None='None'; - const Horizontal='Horizontal'; - const Vertical='Vertical'; - const Both='Both'; -} - +}
\ No newline at end of file |