44
55from nova .trame .view .components import InputField
66from nova .trame .view .layouts import GridLayout , HBoxLayout , VBoxLayout
7- from trame .widgets import plotly
7+ from trame .widgets import client , plotly
88from trame .widgets import vuetify3 as vuetify
99from trame_client .widgets .core import AbstractElement
1010
@@ -29,13 +29,7 @@ def __new__(cls, pv_name: str, append: str = "", **kwargs: Any) -> AbstractEleme
2929
3030 return element
3131
32- return super ().__new__ (
33- cls ,
34- v_if = f"'{ pv_name } ' in model_cssstatus.pv_data" ,
35- v_model = f"model_cssstatus.pv_data['{ pv_name } ']" ,
36- readonly = readonly ,
37- ** kwargs ,
38- )
32+ return super ().__new__ (cls , v_model = f"model_cssstatus.pv_data['{ pv_name } ']" , readonly = readonly , ** kwargs )
3933
4034
4135class CSSStatusView :
@@ -49,7 +43,17 @@ def __init__(self, view_model: MainViewModel) -> None:
4943
5044 def create_ui (self ) -> None :
5145 with VBoxLayout (classes = "border-md mb-1 px-2 py-1" , stretch = True ):
52- plotly .Figure ()
46+ with client .DeepReactive ("model_cssstatus" ):
47+ with vuetify .VTabs (
48+ v_model = "model_cssstatus.active_plot" , classes = "mb-1" , style = "height: 40px !important;"
49+ ):
50+ vuetify .VTab ("Detector" , value = 0 )
51+ vuetify .VTab ("d-Space" , value = 1 )
52+
53+ with VBoxLayout (v_show = "model_cssstatus.active_plot == 0" , stretch = True ):
54+ plotly .Figure ()
55+ with VBoxLayout (v_show = "model_cssstatus.active_plot == 1" , stretch = True ):
56+ plotly .Figure ()
5357
5458 with HBoxLayout ():
5559 PVInput ("BL12:Det:N1:Det4:XY:Scale:ManualMin" , label = "Min" )
@@ -78,30 +82,127 @@ def create_ui(self) -> None:
7882
7983 with GridLayout (columns = 3 , gap = "0.25em" , stretch = True ):
8084 with VBoxLayout (classes = "border-md pa-1" , column_span = 2 ):
81- with vuetify .VTabs (classes = "mb-1" , style = "height: 40px !important;" ):
82- vuetify .VTab ("TOF (All Modules)" )
83- vuetify .VTab ("d-Space (All Modules)" )
84- vuetify .VTab ("q-Space (All Modules)" )
85- vuetify .VTab ("d-Space (ROI Filtered)" )
86- vuetify .VTab ("q-Space (ROI Filtered)" )
87-
88- with HBoxLayout ():
89- vuetify .VBtn ("Linear" )
90- vuetify .VSpacer ()
91- vuetify .VBtn ("More Detail" )
92-
93- plotly .Figure ()
85+ with client .DeepReactive ("model_cssstatus" ):
86+ with vuetify .VTabs (
87+ v_model = "model_cssstatus.active_details_plot" , classes = "mb-1" , style = "height: 40px !important;"
88+ ):
89+ vuetify .VTab ("TOF (All Modules)" , value = 0 )
90+ vuetify .VTab ("d-Space (All Modules)" , value = 1 )
91+ vuetify .VTab ("q-Space (All Modules)" , value = 2 )
92+ vuetify .VTab ("d-Space (ROI Filtered)" , value = 3 )
93+ vuetify .VTab ("q-Space (ROI Filtered)" , value = 4 )
94+
95+ with VBoxLayout (v_show = "model_cssstatus.active_details_plot == 0" , stretch = True ):
96+ with HBoxLayout (halign = "end" ):
97+ vuetify .VBtn (
98+ "More Detail" ,
99+ href = "https://status.sns.ornl.gov/dbwr/view.jsp?display=https%3A//webopi.sns.gov/bl12/files/bl12/opi/../../share/opi/ADnEDv3/ADnED_TOFArray.bob¯os=%7B%26quot%3BDET2%26quot%3B%3A%26quot%3BMain%20d-Space%26quot%3B%2C%26quot%3BDET1%26quot%3B%3A%26quot%3BMain%20Detector%26quot%3B%2C%26quot%3BBL%26quot%3B%3A%26quot%3BBL12%26quot%3B%2C%26quot%3BIOCSTATS%26quot%3B%3A%26quot%3BBL12%3ACS%3AADnED%3A%26quot%3B%2C%26quot%3BP%26quot%3B%3A%26quot%3BBL12%3ADet%3A%26quot%3B%2C%26quot%3BR%26quot%3B%3A%26quot%3BN1%3A%26quot%3B%2C%26quot%3BS%26quot%3B%3A%26quot%3BBL12%26quot%3B%2C%26quot%3BTAB%26quot%3B%3A%26quot%3BMain%20Detector%26quot%3B%2C%26quot%3BTOPR%26quot%3B%3A%26quot%3BN1%3A%26quot%3B%2C%26quot%3BDET5%26quot%3B%3A%26quot%3BMain%20ROI%20q-Space%26quot%3B%2C%26quot%3BDID%26quot%3B%3A%26quot%3BDID154%26quot%3B%2C%26quot%3BDET4%26quot%3B%3A%26quot%3BMain%204x4%20and%20ROI%20d-Space%26quot%3B%2C%26quot%3BDET3%26quot%3B%3A%26quot%3BMain%20q-Space%26quot%3B%2C%26quot%3BAXIS_TITLE%26quot%3B%3A%26quot%3BTime%20Of%20Flight%20(ms)%26quot%3B%2C%26quot%3BDET%26quot%3B%3A%26quot%3B1%26quot%3B%2C%26quot%3BDETNAME%26quot%3B%3A%26quot%3BMain%20TOF%26quot%3B%2C%26quot%3BNAME%26quot%3B%3A%26quot%3BTime%20Of%20Flight%20(All%20Modules)%26quot%3B%7D" ,
100+ target = "_blank" ,
101+ )
102+
103+ with HBoxLayout (stretch = True ):
104+ plotly .Figure ()
105+
106+ with HBoxLayout (gap = "0.25em" ):
107+ vuetify .VLabel ("ROI" )
108+ PVInput ("BL12:Det:N1:Det1:TOF:ROI:1:Min" , label = "Start" )
109+ PVInput ("BL12:Det:N1:Det1:TOF:ROI:1:Size" , label = "Size" )
110+ PVInput ("BL12:Det:N1:Det1:TOF:ROI:1:MinValue_RBV" , label = "Min" )
111+ PVInput ("BL12:Det:N1:Det1:TOF:ROI:1:MaxValue_RBV" , label = "Max" )
112+ PVInput ("BL12:Det:N1:Det1:TOF:ROI:1:MeanValue_RBV" , label = "Mean" )
113+ PVInput ("BL12:Det:N1:Det1:TOF:ROI:1:Total_RBV" , label = "Total" )
114+ with VBoxLayout (v_show = "model_cssstatus.active_details_plot == 1" , stretch = True ):
115+ with HBoxLayout (halign = "end" ):
116+ vuetify .VBtn (
117+ "More Detail" ,
118+ href = "https://status.sns.ornl.gov/dbwr/view.jsp?display=https%3A//webopi.sns.gov/bl12/files/bl12/opi/../../share/opi/ADnEDv3/ADnED_TOFArray.bob¯os=%7B%26quot%3BDET2%26quot%3B%3A%26quot%3BMain%20d-Space%26quot%3B%2C%26quot%3BDET1%26quot%3B%3A%26quot%3BMain%20Detector%26quot%3B%2C%26quot%3BBL%26quot%3B%3A%26quot%3BBL12%26quot%3B%2C%26quot%3BIOCSTATS%26quot%3B%3A%26quot%3BBL12%3ACS%3AADnED%3A%26quot%3B%2C%26quot%3BP%26quot%3B%3A%26quot%3BBL12%3ADet%3A%26quot%3B%2C%26quot%3BR%26quot%3B%3A%26quot%3BN1%3A%26quot%3B%2C%26quot%3BS%26quot%3B%3A%26quot%3BBL12%26quot%3B%2C%26quot%3BTAB%26quot%3B%3A%26quot%3BMain%20Detector%26quot%3B%2C%26quot%3BTOPR%26quot%3B%3A%26quot%3BN1%3A%26quot%3B%2C%26quot%3BDET5%26quot%3B%3A%26quot%3BMain%20ROI%20q-Space%26quot%3B%2C%26quot%3BDID%26quot%3B%3A%26quot%3BDID154%26quot%3B%2C%26quot%3BDET4%26quot%3B%3A%26quot%3BMain%204x4%20and%20ROI%20d-Space%26quot%3B%2C%26quot%3BDET3%26quot%3B%3A%26quot%3BMain%20q-Space%26quot%3B%2C%26quot%3BAXIS_TITLE%26quot%3B%3A%26quot%3Bd-Space%20(A)%26quot%3B%2C%26quot%3BDET%26quot%3B%3A%26quot%3B2%26quot%3B%2C%26quot%3BDETNAME%26quot%3B%3A%26quot%3BMain%20d-Space%26quot%3B%2C%26quot%3BNAME%26quot%3B%3A%26quot%3Bd-Space%20(All%20Modules)%26quot%3B%7D" ,
119+ target = "_blank" ,
120+ )
121+
122+ with HBoxLayout (stretch = True ):
123+ plotly .Figure ()
124+
125+ with HBoxLayout (gap = "0.25em" ):
126+ vuetify .VLabel ("ROI" )
127+ PVInput ("BL12:Det:N1:Det2:TOF:ROI:1:Min" , label = "Start" )
128+ PVInput ("BL12:Det:N1:Det2:TOF:ROI:1:Size" , label = "Size" )
129+ PVInput ("BL12:Det:N1:Det2:TOF:ROI:1:MinValue_RBV" , label = "Min" )
130+ PVInput ("BL12:Det:N1:Det2:TOF:ROI:1:MaxValue_RBV" , label = "Max" )
131+ PVInput ("BL12:Det:N1:Det2:TOF:ROI:1:MeanValue_RBV" , label = "Mean" )
132+ PVInput ("BL12:Det:N1:Det2:TOF:ROI:1:Total_RBV" , label = "Total" )
133+ with VBoxLayout (v_show = "model_cssstatus.active_details_plot == 2" , stretch = True ):
134+ with HBoxLayout (halign = "end" ):
135+ vuetify .VBtn (
136+ "More Detail" ,
137+ href = "https://status.sns.ornl.gov/dbwr/view.jsp?display=https%3A//webopi.sns.gov/bl12/files/bl12/opi/../../share/opi/ADnEDv3/ADnED_TOFArray.bob¯os=%7B%26quot%3BDET2%26quot%3B%3A%26quot%3BMain%20d-Space%26quot%3B%2C%26quot%3BDET1%26quot%3B%3A%26quot%3BMain%20Detector%26quot%3B%2C%26quot%3BBL%26quot%3B%3A%26quot%3BBL12%26quot%3B%2C%26quot%3BIOCSTATS%26quot%3B%3A%26quot%3BBL12%3ACS%3AADnED%3A%26quot%3B%2C%26quot%3BP%26quot%3B%3A%26quot%3BBL12%3ADet%3A%26quot%3B%2C%26quot%3BR%26quot%3B%3A%26quot%3BN1%3A%26quot%3B%2C%26quot%3BS%26quot%3B%3A%26quot%3BBL12%26quot%3B%2C%26quot%3BTAB%26quot%3B%3A%26quot%3BMain%20Detector%26quot%3B%2C%26quot%3BTOPR%26quot%3B%3A%26quot%3BN1%3A%26quot%3B%2C%26quot%3BDET5%26quot%3B%3A%26quot%3BMain%20ROI%20q-Space%26quot%3B%2C%26quot%3BDID%26quot%3B%3A%26quot%3BDID154%26quot%3B%2C%26quot%3BDET4%26quot%3B%3A%26quot%3BMain%204x4%20and%20ROI%20d-Space%26quot%3B%2C%26quot%3BDET3%26quot%3B%3A%26quot%3BMain%20q-Space%26quot%3B%2C%26quot%3BAXIS_TITLE%26quot%3B%3A%26quot%3Bq-Space%26quot%3B%2C%26quot%3BDET%26quot%3B%3A%26quot%3B3%26quot%3B%2C%26quot%3BDETNAME%26quot%3B%3A%26quot%3BMain%20q-Space%26quot%3B%2C%26quot%3BNAME%26quot%3B%3A%26quot%3Bq-Space%20(All%20Modules)%26quot%3B%7D" ,
138+ target = "_blank" ,
139+ )
140+
141+ with HBoxLayout (stretch = True ):
142+ plotly .Figure ()
143+
144+ with HBoxLayout (gap = "0.25em" ):
145+ vuetify .VLabel ("ROI" )
146+ PVInput ("BL12:Det:N1:Det3:TOF:ROI:1:Min" , label = "Start" )
147+ PVInput ("BL12:Det:N1:Det3:TOF:ROI:1:Size" , label = "Size" )
148+ PVInput ("BL12:Det:N1:Det3:TOF:ROI:1:MinValue_RBV" , label = "Min" )
149+ PVInput ("BL12:Det:N1:Det3:TOF:ROI:1:MaxValue_RBV" , label = "Max" )
150+ PVInput ("BL12:Det:N1:Det3:TOF:ROI:1:MeanValue_RBV" , label = "Mean" )
151+ PVInput ("BL12:Det:N1:Det3:TOF:ROI:1:Total_RBV" , label = "Total" )
152+ with VBoxLayout (v_show = "model_cssstatus.active_details_plot == 3" , stretch = True ):
153+ with HBoxLayout (halign = "end" ):
154+ vuetify .VBtn (
155+ "More Detail" ,
156+ target = "_blank" ,
157+ )
158+
159+ with HBoxLayout (stretch = True ):
160+ plotly .Figure ()
161+
162+ with HBoxLayout (gap = "0.25em" ):
163+ vuetify .VLabel ("ROI" )
164+ PVInput ("BL12:Det:N1:Det4:TOF:ROI:1:Min" , label = "Start" )
165+ PVInput ("BL12:Det:N1:Det4:TOF:ROI:1:Size" , label = "Size" )
166+ PVInput ("BL12:Det:N1:Det4:TOF:ROI:1:MinValue_RBV" , label = "Min" )
167+ PVInput ("BL12:Det:N1:Det4:TOF:ROI:1:MaxValue_RBV" , label = "Max" )
168+ PVInput ("BL12:Det:N1:Det4:TOF:ROI:1:MeanValue_RBV" , label = "Mean" )
169+ PVInput ("BL12:Det:N1:Det4:TOF:ROI:1:Total_RBV" , label = "Total" )
170+ with VBoxLayout (v_show = "model_cssstatus.active_details_plot == 4" , stretch = True ):
171+ with HBoxLayout (halign = "end" ):
172+ vuetify .VBtn (
173+ "More Detail" ,
174+ href = "https://status.sns.ornl.gov/dbwr/view.jsp?display=https%3A//webopi.sns.gov/bl12/files/bl12/opi/../../share/opi/ADnEDv3/ADnED_TOFArray.bob¯os=%7B%26quot%3BDET2%26quot%3B%3A%26quot%3BMain%20d-Space%26quot%3B%2C%26quot%3BDET1%26quot%3B%3A%26quot%3BMain%20Detector%26quot%3B%2C%26quot%3BBL%26quot%3B%3A%26quot%3BBL12%26quot%3B%2C%26quot%3BIOCSTATS%26quot%3B%3A%26quot%3BBL12%3ACS%3AADnED%3A%26quot%3B%2C%26quot%3BP%26quot%3B%3A%26quot%3BBL12%3ADet%3A%26quot%3B%2C%26quot%3BR%26quot%3B%3A%26quot%3BN1%3A%26quot%3B%2C%26quot%3BS%26quot%3B%3A%26quot%3BBL12%26quot%3B%2C%26quot%3BTAB%26quot%3B%3A%26quot%3BMain%20Detector%26quot%3B%2C%26quot%3BTOPR%26quot%3B%3A%26quot%3BN1%3A%26quot%3B%2C%26quot%3BDET5%26quot%3B%3A%26quot%3BMain%20ROI%20q-Space%26quot%3B%2C%26quot%3BDID%26quot%3B%3A%26quot%3BDID154%26quot%3B%2C%26quot%3BDET4%26quot%3B%3A%26quot%3BMain%204x4%20and%20ROI%20d-Space%26quot%3B%2C%26quot%3BDET3%26quot%3B%3A%26quot%3BMain%20q-Space%26quot%3B%2C%26quot%3BAXIS_TITLE%26quot%3B%3A%26quot%3Bd-Space%20(A)%26quot%3B%2C%26quot%3BDET%26quot%3B%3A%26quot%3B4%26quot%3B%2C%26quot%3BDETNAME%26quot%3B%3A%26quot%3BROI%20d-Space%26quot%3B%2C%26quot%3BNAME%26quot%3B%3A%26quot%3BROI%20d-Space%20(filtered%20based%20on%202D%20ROI)%26quot%3B%7D" ,
175+ target = "_blank" ,
176+ )
177+
178+ with HBoxLayout (stretch = True ):
179+ plotly .Figure ()
180+
181+ with HBoxLayout (gap = "0.25em" ):
182+ vuetify .VLabel ("ROI" )
183+ PVInput ("BL12:Det:N1:Det5:TOF:ROI:1:Min" , label = "Start" )
184+ PVInput ("BL12:Det:N1:Det5:TOF:ROI:1:Size" , label = "Size" )
185+ PVInput ("BL12:Det:N1:Det5:TOF:ROI:1:MinValue_RBV" , label = "Min" )
186+ PVInput ("BL12:Det:N1:Det5:TOF:ROI:1:MaxValue_RBV" , label = "Max" )
187+ PVInput ("BL12:Det:N1:Det5:TOF:ROI:1:MeanValue_RBV" , label = "Mean" )
188+ PVInput ("BL12:Det:N1:Det5:TOF:ROI:1:Total_RBV" , label = "Total" )
94189
95190 with VBoxLayout (stretch = True ):
96191 with VBoxLayout (classes = "border-md pa-1" , stretch = True ):
97192 plotly .Figure ()
98- vuetify .VBtn ("Cursor Detail" )
193+ vuetify .VBtn (
194+ "Cursor Detail" ,
195+ href = "https://status.sns.ornl.gov/dbwr/view.jsp?display=https%3A//webopi.sns.gov/bl12/files/bl12/opi/../../share/opi/ADnEDv3/ADnED_TOFArray.bob¯os=%7B%26quot%3BDET2%26quot%3B%3A%26quot%3BMain%20d-Space%26quot%3B%2C%26quot%3BDET1%26quot%3B%3A%26quot%3BMain%20Detector%26quot%3B%2C%26quot%3BBL%26quot%3B%3A%26quot%3BBL12%26quot%3B%2C%26quot%3BIOCSTATS%26quot%3B%3A%26quot%3BBL12%3ACS%3AADnED%3A%26quot%3B%2C%26quot%3BP%26quot%3B%3A%26quot%3BBL12%3ADet%3A%26quot%3B%2C%26quot%3BR%26quot%3B%3A%26quot%3BN1%3A%26quot%3B%2C%26quot%3BS%26quot%3B%3A%26quot%3BBL12%26quot%3B%2C%26quot%3BTAB%26quot%3B%3A%26quot%3BMain%20Detector%26quot%3B%2C%26quot%3BTOPR%26quot%3B%3A%26quot%3BN1%3A%26quot%3B%2C%26quot%3BDET5%26quot%3B%3A%26quot%3BMain%20ROI%20q-Space%26quot%3B%2C%26quot%3BDID%26quot%3B%3A%26quot%3BDID154%26quot%3B%2C%26quot%3BDET4%26quot%3B%3A%26quot%3BMain%204x4%20and%20ROI%20d-Space%26quot%3B%2C%26quot%3BDET3%26quot%3B%3A%26quot%3BMain%20q-Space%26quot%3B%2C%26quot%3BAXIS_TITLE%26quot%3B%3A%26quot%3Bq-Space%26quot%3B%2C%26quot%3BDET%26quot%3B%3A%26quot%3B5%26quot%3B%2C%26quot%3BDETNAME%26quot%3B%3A%26quot%3BROI%20q-Space%26quot%3B%2C%26quot%3BNAME%26quot%3B%3A%26quot%3BROI%20q-Space%20(filtered%20based%20on%202D%20ROI)%26quot%3B%7D" ,
196+ raw_attrs = ['target="_blank"' ],
197+ )
99198
100199 with GridLayout (classes = "border-md pa-1" , columns = 2 ):
101- InputField ()
102- InputField ()
103- InputField ()
104- InputField ()
105- InputField ()
106- InputField ()
107- vuetify .VLabel ("Running" )
200+ PVInput ("BL12:Det:N1:DetectorState_RBV" , label = "Data Collection State" )
201+ InputField (
202+ model_value = ("model_cssstatus.pv_data['BL12:Det:N1:Pause'] ? 'Paused' : 'Not Paused'" ,),
203+ label = "Pause" ,
204+ )
205+ PVInput ("BL12:Det:Neutrons" , label = "Total Counts" )
206+ PVInput ("BL12:Det:N1:Det1:EventRate_RBV" , append = "e/s" , label = "Counts/sec" )
207+ PVInput ("BL12:Det:PCharge:C" , append = "C" , label = "Proton Charge" )
208+ PVInput ("BL12:Det:rtdl:BeamPowerAvg" , append = "MW" , label = "Beam Power" )
0 commit comments