1: <?php
2:
3: /**
4: * Picon Framework
5: * http://code.google.com/p/picon-framework/
6: *
7: * Copyright (C) 2011-2012 Martin Cassidy <martin.cassidy@webquub.com>
8:
9: * Picon Framework is free software: you can redistribute it and/or modify
10: * it under the terms of the GNU General Public License as published by
11: * the Free Software Foundation, either version 3 of the License, or
12: * (at your option) any later version.
13:
14: * Picon Framework is distributed in the hope that it will be useful,
15: * but WITHOUT ANY WARRANTY; without even the implied warranty of
16: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17: * General Public License for more details.
18:
19: * You should have received a copy of the GNU General Public License
20: * along with Picon Framework. If not, see <http://www.gnu.org/licenses/>.
21: * */
22:
23: namespace picon;
24:
25: /**
26: * A set of jQuery options for use with a jQuery behaviour
27: *
28: * @author Martin Cassidy
29: * @package web/jQuery
30: */
31: class Options
32: {
33: private $options = array();
34:
35: public function render(AbstractJQueryBehaviour $behaviour)
36: {
37: $out = '{';
38: $total = count($this->options);
39: $index = 0;
40: foreach($this->options as $option)
41: {
42: $out .= $option->render($behaviour);
43:
44: if($index!=$total-1)
45: {
46: $out .= ',';
47: }
48: $index++;
49: }
50: $out .= '}';
51: return $out;
52: }
53:
54: public function getOption($name)
55: {
56: if(array_key_exists($name, $this->options))
57: {
58: return $this->options[$name];
59: }
60: else
61: {
62: return null;
63: }
64: }
65:
66: public function add(AbstractOption $option)
67: {
68: if(array_key_exists($option->getName(), $this->options))
69: {
70: throw new \InvalidArgumentException(sprintf('An option with the name %s exists already.', $option->getName()));
71: }
72:
73: $this->options[$option->getName()] = $option;
74: }
75: }
76:
77: ?>
78: