1: <?php
2: /**
3: * PHP version 5
4: * @package generalDriver
5: * @author Christian Schiffler <c.schiffler@cyberspectrum.de>
6: * @author Stefan Heimes <stefan_heimes@hotmail.com>
7: * @author Tristan Lins <tristan.lins@bit3.de>
8: * @copyright The MetaModels team.
9: * @license LGPL.
10: * @filesource
11: */
12:
13: namespace DcGeneral\Contao\Callback;
14:
15: use DcGeneral\Contao\View\Contao2BackendView\Event\GetGroupHeaderEvent;
16:
17: /**
18: * Class ModelGroupCallbackListener.
19: *
20: * Handler for the group header callbacks of a property.
21: *
22: * @package DcGeneral\Contao\Callback
23: */
24: class ModelGroupCallbackListener extends AbstractReturningCallbackListener
25: {
26: /**
27: * Retrieve the arguments for the callback.
28: *
29: * @param GetGroupHeaderEvent $event The event being emitted.
30: *
31: * @return array
32: */
33: public function getArgs($event)
34: {
35: return array(
36: $event->getGroupField(),
37: $event->getGroupingMode(),
38: $event->getValue(),
39: $event->getModel()->getPropertiesAsArray()
40: );
41: }
42:
43: /**
44: * Set the value in the event.
45: *
46: * @param GetGroupHeaderEvent $event The event being emitted.
47: *
48: * @param string $value The value returned by the callback.
49: *
50: * @return void
51: */
52: public function update($event, $value)
53: {
54: if (is_null($value))
55: {
56: return;
57: }
58:
59: $event->setValue($value);
60: $event->stopPropagation();
61: }
62: }
63: