var $mColumns = array(); // array of columns in table
var $mData = null; // array of rows with data for column cells
var $mHeaders = array(); // column headers
+ var $mFooters = array(); // column footers
var $mInteractive = true; // adds a clickable checkbox column to table
var $mIAScript = null; // sctipt to execute when a checkbox is clicked
var $mKeyField = ''; // identifies a column used as key to access row data
var $mBgColor = '#ffffff';
var $mBgColorOver = '#eeeeff';
var $mWidth = '';
- var $cClassName = 'Table';
var $mTableOptions = array();
var $mRowOptions = array();
var $mHeaderOptions = array();
var $mProccessed = false;
- function __construct($name, $value='') {
- $this->mName = $name;
- $this->mValue = $value;
+ function __construct($name, $cssClass = null) {
+ $this->class = 'Table';
+ $this->name = $name;
+ $this->cssClass = $cssClass;
}
function setKeyField($value) {
- $this->mKeyField = $value;
+ $this->mKeyField = $value;
}
function setData($data) {
- if (is_array($data) && isset($data[0]) && is_array($data[0]))
+ if (is_array($data) && isset($data[0]) && is_array($data[0]))
$this->mData = &$data;
}
return @$this->mData[$rowindex][$this->mColumnFields[$colindex]];
}
- function getValueAtName($rowindex,$fieldname) {
+ function getValueAtName($rowindex, $fieldname) {
if (!$this->mProccessed) $this->_process();
return @$this->mData[$rowindex][$fieldname];
}
function _process() {
- $this->mProccessed = true;
+ $this->mProccessed = true;
- if ($this->mInteractive) {
+ if ($this->mInteractive) {
// Add a column of clickable checkboxes.
- $column = new TableColumn("","<input type=\"checkbox\" name=\"".$this->getName()."_all\" onclick=\"setAll(this.checked)\">");
+ $column = new TableColumn("","<input type=\"checkbox\" name=\"".$this->name."_all\" onclick=\"setAll(this.checked)\">");
import('form.CheckboxCellRenderer');
$cb = new CheckboxCellRenderer();
if ($this->getIAScript()) $cb->setOnChangeAdd($this->getIAScript()."(this)");
foreach ($this->mColumns as $column) {
$this->mColumnFields[] = $column->getField();
$this->mHeaders[] = $column->getHeader();
+ $this->mFooters[] = $column->getFooter();
}
}
- function toStringControl() {
- if (!$this->isRenderable()) return "";
+ function getHtml() {
if (!$this->mProccessed) $this->_process();
$html = "";
if ($this->mInteractive) $html .= $this->_addJavaScript();
$html .= "<table";
+ if ($this->cssClass) {
+ $html .= " class=\"".$this->cssClass."\"";
+ }
if (count($this->mTableOptions) > 0) {
foreach ($this->mTableOptions as $k=>$v) {
$html .= " $k=\"$v\"";
$html .= ">\n";
// Print headers.
- if (($this->mInteractive && (count($this->mHeaders) > 1)) || (!$this->mInteractive && (count($this->mHeaders) > 0))) {
+ if (($this->mInteractive && (count($this->mHeaders) > 1)) || (!$this->mInteractive && (count($this->mHeaders) > 0))) {
$html .= "<tr";
if (count($this->mRowOptions) > 0) {
foreach ($this->mRowOptions as $k=>$v) {
if (0 == $col && strtolower(get_class($this->mColumns[$col]->getRenderer())) == 'checkboxcellrenderer') {
// Checkbox for the row. Determine if selected.
$selected = false;
- if (is_array($this->mValue)) {
- foreach ($this->mValue as $p) {
+ if (is_array($this->value)) {
+ foreach ($this->value as $p) {
if ($p == $this->mData[$row][$this->mKeyField]) {
$selected = true;
break;
$html .= "</tr>\n";
}
+ // Print footers.
+ if (($this->mInteractive && (count($this->mFooters) > 1)) || (!$this->mInteractive && (count($this->mFooters) > 0))) {
+ $html .= "<tr";
+ if (count($this->mRowOptions) > 0) {
+ foreach ($this->mRowOptions as $k=>$v) {
+ $html .= " $k=\"$v\"";
+ }
+ }
+ $html .= ">\n";
+ foreach ($this->mFooters as $footer) {
+ $html .= "<th";
+ if (count($this->mHeaderOptions) > 0) {
+ foreach ($this->mHeaderOptions as $k=>$v) {
+ $html .= " $k=\"$v\"";
+ }
+ }
+ $html .= ">$footer</th>\n";
+ }
+ $html .= "</tr>\n";
+ }
+
$html .= "</table>";
return $html;
}
// setAll - checks / unchecks all checkboxes in the table.
$html .= "function setAll(value) {\n";
$html .= "\tfor (var i = 0; i < ".$this->getFormName().".elements.length; i++) {\n";
- $html .= "\t\tif ((".$this->getFormName().".elements[i].type=='checkbox') && (".$this->getFormName().".elements[i].name=='".$this->getName()."[]')) {\n";
+ $html .= "\t\tif ((".$this->getFormName().".elements[i].type=='checkbox') && (".$this->getFormName().".elements[i].name=='".$this->name."[]')) {\n";
$html .= "\t\t\t".$this->getFormName().".elements[i].checked=value;\n";
if ($this->getIAScript()) {
$html .= "\t\t\t".$this->getIAScript()."(".$this->getFormName().".elements[i]);\n";