DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
dunedaq
sourcecode
daqconf
python
daqconf
cider
app_structures
selection_panel.py
Go to the documentation of this file.
1
from
textual.app
import
ComposeResult
2
from
textual.geometry
import
Region
3
from
textual.widgets
import
Static, Button, ContentSwitcher
4
from
textual.containers
import
Horizontal
5
6
from
daqconf.cider.widgets.selection_menu
import
SelectionMenu
7
8
class
SelectionPanel
(Static):
9
"""Selection panel structure. Allows user to select between different configuration views
10
"""
11
12
_current_menu =
None
13
_saved_states =
None
14
_menu_ids = {
"Class View"
:
"class-selection"
,
15
"Session View"
:
"relation-selection"
}
16
17
def
compose
(self) -> ComposeResult:
18
"""Compose the selection panel for use in the app
19
"""
20
# There has to be a better way of doing this
21
with
Horizontal(id=
"buttons"
):
22
for
label, id
in
self.
_menu_ids
.items():
23
yield
Button(label, id=id)
24
25
if
self.
_current_menu
is
None
:
26
self.
_current_menu
= list(self.
_menu_ids
.values())[0]
27
28
if
self.
_saved_states
is
None
:
29
self.
_saved_states
= [
None
]*len(self.
_menu_ids
)
30
31
with
ContentSwitcher(initial=self.
_current_menu
):
32
for
i, id
in
enumerate(self.
_menu_ids
.values()):
33
34
menu = SelectionMenu(id=id)
35
yield
menu
36
37
38
# Not fully implemented
39
def
save_menu_state
(self):
40
# for i, menu in enumerate(self._menu_ids.values()):
41
# selection_menu = self.query_one(f"#{menu}", SelectionMenu)
42
# self._saved_states[i] = selection_menu.save_tree_state()
43
self.
_current_menu
= self.query_one(ContentSwitcher).current
44
45
def
restore_menu_state
(self):
46
# for i, menu in enumerate(self._menu_ids.values()):
47
# selection_menu = self.query_one(f"#{menu}", SelectionMenu)
48
# selection_menu.restore_tree_state(self._saved_states[i])
49
50
self.query_one(ContentSwitcher).current = self.
_current_menu
51
52
53
def
on_button_pressed
(self, event: Button.Pressed)->
None
:
54
"""Swap between different configuration views via button. Currently bound here for...reasons
55
"""
56
self.query_one(ContentSwitcher).current = event.button.id
57
self.
_current_menu
= event.button.id
58
# Also swap this around so refreshing is smoother!
selection_panel.SelectionPanel
Definition
selection_panel.py:8
selection_panel.SelectionPanel.restore_menu_state
restore_menu_state(self)
Definition
selection_panel.py:45
selection_panel.SelectionPanel.save_menu_state
save_menu_state(self)
Definition
selection_panel.py:39
selection_panel.SelectionPanel._menu_ids
dict _menu_ids
Definition
selection_panel.py:14
selection_panel.SelectionPanel._saved_states
list _saved_states
Definition
selection_panel.py:13
selection_panel.SelectionPanel._current_menu
_current_menu
Definition
selection_panel.py:12
selection_panel.SelectionPanel.on_button_pressed
None on_button_pressed(self, Button.Pressed event)
Definition
selection_panel.py:53
selection_panel.SelectionPanel.compose
ComposeResult compose(self)
Definition
selection_panel.py:17
Generated on Sat Jun 28 2025 for DUNE-DAQ by
1.12.0