Go to the documentation of this file.00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00015 final class GoogleChartAxisCollection
00016 {
00017 private $axes = array();
00018
00022 public static function create()
00023 {
00024 return new self;
00025 }
00026
00030 public function addAxis(GoogleChartAxis $axis)
00031 {
00032 $typeId = $axis->getType()->getId();
00033
00034 if (isset($this->axes[$typeId]))
00035 throw new WrongArgumentException('Axis already exists');
00036
00037 $this->axes[$typeId] = $axis;
00038
00039 return $this;
00040 }
00041
00045 public function getAxisByTypeId($typeId)
00046 {
00047 if (isset($this->axes[$typeId]))
00048 return $this->axes[$typeId];
00049 else
00050 return null;
00051 }
00052
00053 public function toString()
00054 {
00055 $typeString = GoogleChartAxisType::getParamName().'=';
00056
00057 $rangeString = GoogleChartDataRange::getParamName().'=';
00058
00059 $labelsString = null;
00060
00061 $types = $ranges = $labels = array();
00062
00063 $i = 0;
00064
00065 foreach ($this->axes as $axis) {
00066 $types[] = $axis->getType()->toString();
00067
00068 if ($range = $axis->getRange())
00069 $ranges[$i] =
00070 $i
00071 .','
00072 .$range->getMin()
00073 .','
00074 .$range->getMax();
00075
00076 if ($interval = $axis->getInterval())
00077 $ranges[$i] .= ','.$interval;
00078
00079 if ($label = $axis->getLabel())
00080 $labels[$i] = $label;
00081
00082 $i++;
00083 }
00084
00085 $typeString .= implode(',', $types);
00086
00087 $rangeString.= implode('|', $ranges);
00088
00089 if ($labels) {
00090 $labelsString = '&'.GoogleChartAxisLabel::getParamName().'=';
00091
00092 foreach ($labels as $index => $label) {
00093 $labelsString .= $index.':|'.$label->toString();
00094 }
00095 }
00096
00097 return $typeString.'&'.$rangeString.$labelsString;
00098 }
00099 }
00100 ?>