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: use DcGeneral\EnvironmentInterface;
17:
18: /**
19: * This interface describes a panel container.
20: *
21: * A Panel container contains panels which contain panel elements.
22: *
23: * @package DcGeneral\Panel
24: */
25: interface PanelContainerInterface extends \IteratorAggregate
26: {
27: /**
28: * Get the environment in use.
29: *
30: * @return EnvironmentInterface
31: */
32: public function getEnvironment();
33:
34: /**
35: * Set the environment in use.
36: *
37: * @param EnvironmentInterface $objEnvironment The environment to use.
38: *
39: * @return PanelContainerInterface
40: */
41: public function setEnvironment(EnvironmentInterface $objEnvironment);
42:
43: /**
44: * Add a panel to the container.
45: *
46: * @param string $strKey Name of the panel.
47: *
48: * @param PanelInterface $objPanel The panel to add.
49: *
50: * @return PanelContainerInterface
51: */
52: public function addPanel($strKey, $objPanel);
53:
54: /**
55: * Retrieve a panel from the container.
56: *
57: * @param string $strKey The name of the panel.
58: *
59: * @return PanelInterface
60: */
61: public function getPanel($strKey);
62:
63: /**
64: * Initialize all panels and apply all restrictions to the given Config.
65: *
66: * @param ConfigInterface $objConfig The data config to be populated with the element values.
67: *
68: * @param PanelElementInterface $objElement The element currently being initialized.
69: *
70: * @return PanelContainerInterface
71: */
72: public function initialize(ConfigInterface $objConfig, PanelElementInterface $objElement = null);
73:
74: /**
75: * Determinator if the panels should be updated from the InputProvider or not.
76: *
77: * @return bool
78: */
79: public function updateValues();
80: }
81: