forked from moodle/moodle
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathchart_axis.php
197 lines (176 loc) · 4.26 KB
/
chart_axis.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Chart axis.
*
* @package core
* @copyright 2016 Frédéric Massart - FMCorz.net
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace core;
defined('MOODLE_INTERNAL') || die();
use coding_exception;
use JsonSerializable;
use renderable;
/**
* Chart axis class.
*
* @package core
* @copyright 2016 Frédéric Massart - FMCorz.net
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class chart_axis implements JsonSerializable {
/** Default axis position. */
const POS_DEFAULT = null;
/** Bottom axis position. */
const POS_BOTTOM = 'bottom';
/** Left axis position. */
const POS_LEFT = 'left';
/** Right axis position. */
const POS_RIGHT = 'right';
/** Top axis position. */
const POS_TOP = 'top';
/** @var string The axis label. */
protected $label = null;
/** @var string[] The axis labels, tick values. */
protected $labels = null;
/** @var float The maximum tick value. */
protected $max = null;
/** @var float The minimum tick value. */
protected $min = null;
/** @var string The axis position. */
protected $position = self::POS_DEFAULT;
/** @var float The stepsize between ticks. */
protected $stepsize = null;
/**
* Constructor.
*
* Must not take any argument.
*/
public function __construct() {
}
/**
* Get the label.
*
* @return string
*/
public function get_label() {
return $this->label;
}
/**
* Get the labels.
*
* @return string[]
*/
public function get_labels() {
return $this->labels;
}
/**
* Get the max value.
*
* @return float
*/
public function get_max() {
return $this->max;
}
/**
* Get the min value.
*
* @return float
*/
public function get_min() {
return $this->min;
}
/**
* Get the axis position.
*
* @return string
*/
public function get_position() {
return $this->position;
}
/**
* Get the step size.
*
* @return float
*/
public function get_stepsize() {
return $this->stepsize;
}
/**
* Serialize the object.
*
* @return array
*/
public function jsonSerialize(): array {
return [
'label' => $this->label,
'labels' => $this->labels,
'max' => $this->max,
'min' => $this->min,
'position' => $this->position,
'stepSize' => $this->stepsize,
];
}
/**
* Set the label.
*
* @param string $label The label.
*/
public function set_label($label) {
$this->label = $label;
}
/**
* Set the labels.
*
* @param string[] $labels The labels.
*/
public function set_labels($labels) {
$this->labels = $labels;
}
/**
* Set the max value.
*
* @param float $max The max value.
*/
public function set_max($max) {
$this->max = $max;
}
/**
* Set the min value.
*
* @param float $min The min value.
*/
public function set_min($min) {
$this->min = $min;
}
/**
* Set the position.
*
* @param string $position Use constant self::POS_*.
*/
public function set_position($position) {
$this->position = $position;
}
/**
* Set the step size.
*
* @param float $stepsize The step size.
*/
public function set_stepsize($stepsize) {
$this->stepsize = $stepsize;
}
}