From 423f4e6fb0afba2685589b700d30055cb6dcd099 Mon Sep 17 00:00:00 2001 From: xue <> Date: Mon, 2 Jan 2006 04:54:31 +0000 Subject: Added TRadioButtonList, TTable related controls. --- framework/Web/UI/WebControls/TTable.php | 449 ++++++++++++++++++++++++++++++++ 1 file changed, 449 insertions(+) create mode 100644 framework/Web/UI/WebControls/TTable.php (limited to 'framework/Web/UI/WebControls/TTable.php') diff --git a/framework/Web/UI/WebControls/TTable.php b/framework/Web/UI/WebControls/TTable.php new file mode 100644 index 00000000..4a5e84b1 --- /dev/null +++ b/framework/Web/UI/WebControls/TTable.php @@ -0,0 +1,449 @@ +getRows()->add($object); + } + + protected function createStyle() + { + return new TTableStyle; + } + + protected function addAttributesToRender($writer) + { + parent::addAttributesToRender($writer); + $border=0; + if($this->getHasStyle()) + { + if($this->getGridLines()!=='None') + { + if(($border=$this->getBorderWidth())==='') + $border=1; + else + $border=(int)$border; + } + } + $writer->addAttribute('border',"$border"); + } + + /** + * @return array list of TTableRow components + */ + public function getRows() + { + if(!$this->_rows) + $this->_rows=new TTableRowCollection($this); + return $this->_rows; + } + + public function getCaption() + { + return $this->getViewState('Caption',''); + } + + public function setCaption($value) + { + $this->setViewState('Caption',$value,''); + } + + public function getCaptionAlign() + { + return $this->getViewState('CaptionAlign',''); + } + + public function setCaptionAlign($value) + { + $this->setViewState('CaptionAlign',TPropertyValue::ensureEnum($value,'NotSet','Top','Bottom','Left','Right'),'NotSet'); + } + + /** + * @return integer the cellspacing for the table keeping the checkbox list. Defaults to -1, meaning not set. + */ + public function getCellSpacing() + { + if($this->getHasStyle()) + return $this->getStyle()->getCellSpacing(); + else + return -1; + } + + /** + * Sets the cellspacing for the table keeping the checkbox list. + * @param integer the cellspacing for the table keeping the checkbox list. + */ + public function setCellSpacing($value) + { + $this->getStyle()->setCellSpacing($value); + } + + /** + * @return integer the cellpadding for the table keeping the checkbox list. Defaults to -1, meaning not set. + */ + public function getCellPadding() + { + if($this->getHasStyle()) + return $this->getStyle()->getCellPadding(); + else + return -1; + } + + /** + * Sets the cellpadding for the table keeping the checkbox list. + * @param integer the cellpadding for the table keeping the checkbox list. + */ + public function setCellPadding($value) + { + $this->getStyle()->setCellPadding($value); + } + + public function getHorizontalAlign() + { + if($this->getHasStyle()) + return $this->getStyle()->getHorizontalAlign(); + else + return 'NotSet'; + } + + public function setHorizontalAlign($value) + { + $this->getStyle()->setHorizontalAlign($value); + } + + public function getGridLines() + { + if($this->getHasStyle()) + return $this->getStyle()->getGridLines(); + else + return 'None'; + } + + public function setGridLines($value) + { + $this->getStyle()->setGridLines($value); + } + + public function getBackImageUrl() + { + if($this->getHasStyle()) + return $this->getStyle()->getBackImageUrl(); + else + return 'None'; + } + + public function setBackImageUrl($value) + { + $this->getStyle()->setBackImageUrl($value); + } + + public function renderBeginTag($writer) + { + parent::renderBeginTag($writer); + if(($caption=$this->getCaption())!=='') + { + if(($align=$this->getCaptionAlign())!=='NotSet') + $writer->addAttribute('align',$align); + $writer->renderBeginTag('caption'); + $writer->write($caption); + $writer->renderEndTag(); + } + } + + protected function renderContents($writer) + { + if($this->_rows) + { + foreach($this->_rows as $row) + { + $row->renderControl($writer); + $writer->writeLine(); + } + } + } +} + + +class TTableRow extends TWebControl +{ + private $_cells=null; + + protected function getTagName() + { + return 'tr'; + } + + public function addParsedObject($object) + { + if($object instanceof TTableCell) + $this->getCells()->add($object); + } + + protected function createStyle() + { + return new TTableItemStyle; + } + + protected function addAttributesToRender($writer) + { + parent::addAttributesToRender($writer); + $border=0; + if($this->getHasStyle()) + { + if($this->getGridLines()!=='None') + { + if(($border=$this->getBorderWidth())==='') + $border=1; + else + $border=(int)$border; + } + } + $writer->addAttribute('border',"$border"); + } + + public function getCells() + { + if(!$this->_cells) + $this->_cells=new TTableCellCollection($this); + return $this->_cells; + } + + public function getHorizontalAlign() + { + if($this->getHasStyle()) + return $this->getStyle()->getHorizontalAlign(); + else + return 'NotSet'; + } + + public function setHorizontalAlign($value) + { + $this->getStyle()->setHorizontalAlign($value); + } + + public function getVerticalAlign() + { + if($this->getHasStyle()) + return $this->getStyle()->getVerticalAlign(); + else + return 'NotSet'; + } + + public function setVerticalAlign($value) + { + $this->getStyle()->setVerticalAlign($value); + } + + protected function renderContents($writer) + { + if($this->_cells) + { + foreach($this->_cells as $cell) + { + $cell->renderControl($writer); + $writer->writeLine(); + } + } + } +} + + +class TTableCell extends TWebControl +{ + protected function getTagName() + { + return 'td'; + } + + protected function createStyle() + { + return new TTableItemStyle; + } + + public function getHorizontalAlign() + { + if($this->getHasStyle()) + return $this->getStyle()->getHorizontalAlign(); + else + return 'NotSet'; + } + + public function setHorizontalAlign($value) + { + $this->getStyle()->setHorizontalAlign($value); + } + + public function getVerticalAlign() + { + if($this->getHasStyle()) + return $this->getStyle()->getVerticalAlign(); + else + return 'NotSet'; + } + + public function setVerticalAlign($value) + { + $this->getStyle()->setVerticalAlign($value); + } + + /** + * @return integer the columnspan for the table cell, 0 if not set. + */ + public function getColumnSpan() + { + return $this->getViewState('ColumnSpan', 0); + } + + /** + * Sets the columnspan for the table cell. + * @param integer the columnspan for the table cell, 0 if not set. + */ + public function setColumnSpan($value) + { + $this->setViewState('ColumnSpan', TPropertyValue::ensureInteger($value), 0); + } + + /** + * @return integer the rowspan for the table cell, 0 if not set. + */ + public function getRowSpan() + { + return $this->getViewState('RowSpan', 0); + } + + /** + * Sets the rowspan for the table cell. + * @param integer the rowspan for the table cell, 0 if not set. + */ + public function setRowSpan($value) + { + $this->setViewState('RowSpan', TPropertyValue::ensureInteger($value), 0); + } + + /** + * @return boolean whether the text content wraps within a table cell. + */ + public function getWrap() + { + if($this->getHasStyle()) + return $this->getStyle()->getWrap(); + else + return true; + } + + /** + * Sets the value indicating whether the text content wraps within a table cell. + * @param boolean whether the text content wraps within a table cell. + */ + public function setWrap($value) + { + $this->getStyle()->setWrap($value); + } + + /** + * @return string the text content of the table cell. + */ + public function getText() + { + return $this->getViewState('Text',''); + } + + /** + * Sets the text content of the table cell. + * @param string the text content + */ + public function setText($value) + { + $this->setViewState('Text',$value,''); + } + + protected function addAttributesToRender($writer) + { + parent::addAttributesToRender($writer); + if(($colspan=$this->getColumnSpan())>0) + $writer->addAttribute('colspan',"$colspan"); + if(($rowspan=$this->getColumnSpan())>0) + $writer->addAttribute('rowspan',"$rowspan"); + } + + protected function renderContents($writer) + { + if(($text=$this->getText())==='') + parent::renderContents($writer); + else + $writer->write($text); + } + + /** + * Renders the body content of this cell. + * @return string the rendering result + */ + protected function renderBody() + { + $text=$this->getText(); + if($text!=='') + return $text; + else + return parent::renderBody(); + } +} + + +class TTableHeaderCell extends TTableCell +{ + protected function getTagName() + { + return 'th'; + } + + protected function addAttributesToRender($writer) + { + parent::addAttributesToRender($writer); + if(($scope=$this->getScope())!=='NotSet') + $writer->addAttribute('scope',$scope==='Row'?'row':'col'); + if(($text=$this->getAbbreviatedText())!=='') + $writer->addAttribute('abbr',$text); + if(($text=$this->getCategoryText())!=='') + $writer->addAttribute('axis',$text); + } + + public function getScope() + { + return $this->getViewState('Scope','NotSet'); + } + + public function setScope($value) + { + $this->setViewState('Scope',TPropertyValue::ensureEnum($value,'NotSet','Row','Column'),'NotSet'); + } + + public function getAbbreviatedText() + { + return $this->getViewState('AbbreviatedText',''); + } + + public function setAbbreviatedText($value) + { + $this->setViewState('AbbreviatedText',$value,''); + } + + public function getCategoryText() + { + return $this->getViewState('CategoryText',''); + } + + public function setCategoryText($value) + { + $this->setViewState('CategoryText',$value,''); + } +} +?> \ No newline at end of file -- cgit v1.2.3