DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
daqconf
python
daqconf
cider
widgets
popups
dropdown_selector.py
Go to the documentation of this file.
1
from
os
import
environ
2
3
from
textual.widgets
import
Static, SelectionList, Button
4
from
textual.widgets.selection_list
import
Selection
5
from
textual.screen
import
ModalScreen
6
7
8
from
daqconf.cider.widgets.configuration_controller
import
ConfigurationController
9
10
class
SelectSession
(Static):
11
def
compose
(self):
12
13
self.
_configuration_controller
= self.app.get_screen(
"main"
).query_one(ConfigurationController)
14
self.
_sessions
= self.
_configuration_controller
.get_all_sessions()
15
is_enabled = self.
_configuration_controller
.is_selected_object_enabled()
16
17
selections = [Selection(self.
_configuration_controller
.generate_rich_string(s), s, d)
for
s, d
in
zip(self.
_sessions
, is_enabled)]
18
19
selection_list = SelectionList(*selections, id=
"session_select_list"
)
20
selection_list.border_title =
"Select Sessions to toggle object on/off in"
21
22
yield
selection_list
23
yield
Button(
"Apply"
, id=
"apply"
)
24
yield
Button(
"Close"
, id=
"cancel"
)
25
26
def
on_button_pressed
(self, event: Button.Pressed):
27
28
if
event.button.id ==
"apply"
:
29
selection_list = self.query_one(
"#session_select_list"
).selected
30
31
# Hacky but ensures we know what we are toggling on/off
32
selected_sessions = [(s, s
in
selection_list)
for
s
in
self.
_sessions
]
33
34
self.
_configuration_controller
.toggle_disable_conf_obj(selected_sessions)
35
else
:
36
menu = self.app.get_screen(
"main"
).query_one(
"SelectionPanel"
)
37
menu.save_menu_state()
38
menu.refresh(recompose=
True
)
39
menu.restore_menu_state()
40
41
self.app.screen.dismiss(result=
"cancel"
)
42
43
44
class
SelectSessionScreen
(ModalScreen):
45
css_file_path = f
"{environ.get('DAQCONF_SHARE')}/config/textual_dbe/textual_css"
46
CSS_PATH = f
"{css_file_path}/session_selection_layout.tcss"
47
48
def
compose
(self):
49
yield
SelectSession
()
50
51
def
on_mount
(self)->None:
52
self.query_one(SelectSession).focus()
dropdown_selector.SelectSessionScreen
Definition
dropdown_selector.py:44
dropdown_selector.SelectSessionScreen.on_mount
None on_mount(self)
Definition
dropdown_selector.py:51
dropdown_selector.SelectSessionScreen.compose
compose(self)
Definition
dropdown_selector.py:48
dropdown_selector.SelectSession
Definition
dropdown_selector.py:10
dropdown_selector.SelectSession.compose
compose(self)
Definition
dropdown_selector.py:11
dropdown_selector.SelectSession.on_button_pressed
on_button_pressed(self, Button.Pressed event)
Definition
dropdown_selector.py:26
dropdown_selector.SelectSession._sessions
_sessions
Definition
dropdown_selector.py:14
dropdown_selector.SelectSession._configuration_controller
_configuration_controller
Definition
dropdown_selector.py:13
Generated on
for DUNE-DAQ by
1.17.0