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\Panel;
14:
15: use DcGeneral\Data\ConfigInterface;
16:
17: /**
18: * this interface describes a panel.
19: *
20: * A panel is a row of a panel container.
21: *
22: * @package DcGeneral\Panel
23: */
24: interface PanelInterface
25: extends \IteratorAggregate
26: {
27: /**
28: * Get the parenting container.
29: *
30: * @return PanelContainerInterface
31: */
32: public function getContainer();
33:
34: /**
35: * Set the parenting container.
36: *
37: * @param PanelContainerInterface $objContainer The Container to be used as parent.
38: *
39: * @return PanelInterface
40: */
41: public function setContainer(PanelContainerInterface $objContainer);
42:
43: /**
44: * Add an element to the panel.
45: *
46: * @param string $strKey Name of the panel.
47: *
48: * @param PanelElementInterface $objElement The element instance to add.
49: *
50: * @return mixed
51: */
52: public function addElement($strKey, $objElement);
53:
54: /**
55: * Retrieve an element with the given name.
56: *
57: * @param string $strKey The name of the element.
58: *
59: * @return PanelElementInterface
60: */
61: public function getElement($strKey);
62:
63: /**
64: * Initialize the passed config via all contained elements.
65: *
66: * @param ConfigInterface $objConfig The config to which the initialization shall be applied to.
67: *
68: * @param PanelElementInterface $objElement The element to be initialized (if any).
69: *
70: * @return void
71: */
72: public function initialize(ConfigInterface $objConfig, PanelElementInterface $objElement = null);
73: }
74: