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: /**
16: * This interface describes a sort panel element.
17: *
18: * @package DcGeneral\Panel
19: */
20: interface SortElementInterface
21: extends PanelElementInterface
22: {
23: /**
24: * Set the default flag to use when no flag has been defined for a certain property.
25: *
26: * @param int $intFlag The flag to use.
27: *
28: * @return SearchElementInterface
29: */
30: public function setDefaultFlag($intFlag);
31:
32: /**
33: * Get the default flag to use when no flag has been defined for a certain property.
34: *
35: * @return int
36: */
37: public function getDefaultFlag();
38:
39: /**
40: * Add a property for sorting.
41: *
42: * @param string $strPropertyName The property name to enable sorting for.
43: *
44: * @param int $intFlag The flag to use for sorting.
45: *
46: * @return mixed
47: */
48: public function addProperty($strPropertyName, $intFlag);
49:
50: /**
51: * Retrieve the list of properties to allow search on.
52: *
53: * @return string[]
54: */
55: public function getPropertyNames();
56:
57: /**
58: * Set the selected property for sorting.
59: *
60: * @param string $strPropertyName The property name to mark as selected.
61: *
62: * @return mixed
63: */
64: public function setSelected($strPropertyName);
65:
66: /**
67: * Return the name of the currently selected property.
68: *
69: * @return string
70: */
71: public function getSelected();
72:
73: /**
74: * Return the flag of the currently selected property.
75: *
76: * @return int
77: */
78: public function getFlag();
79: // TODO: wouln't it be nice to also have a direction setting here instead of only the flag?
80: }
81: