5
5
6
6
import ipywidgets as ipw
7
7
8
- from aiidalab_qe .common .panel import Panel
8
+ from aiidalab_qe .common .panel import SettingPanel
9
9
10
10
from .hubbard import HubbardSettings
11
11
from .magnetization import MagnetizationSettings
14
14
from .smearing import SmearingSettings
15
15
16
16
17
- class AdvancedSettings (Panel ):
17
+ class AdvancedSettings (SettingPanel ):
18
+ title = "Advanced Settings"
18
19
identifier = "advanced"
19
20
20
- def __init__ (self , model : ConfigurationModel , ** kwargs ):
21
- from aiidalab_qe .common .widgets import LoadingWidget
22
-
21
+ def __init__ (self , config_model : ConfigurationModel , ** kwargs ):
23
22
super ().__init__ (
23
+ config_model = config_model ,
24
24
layout = {"justify_content" : "space-between" , ** kwargs .get ("layout" , {})},
25
- children = [LoadingWidget ("Loading advanced settings widget" )],
26
25
** kwargs ,
27
26
)
28
27
29
- self ._model = model
30
-
31
- self .smearing = SmearingSettings (model = model )
32
- self .magnetization = MagnetizationSettings (model = model )
33
- self .hubbard = HubbardSettings (model = model )
34
- self .pseudos = PseudoSettings (model = model )
35
-
36
- self .rendered = False
28
+ self .smearing = SmearingSettings (model = config_model )
29
+ self .magnetization = MagnetizationSettings (model = config_model )
30
+ self .hubbard = HubbardSettings (model = config_model )
31
+ self .pseudos = PseudoSettings (model = config_model )
37
32
38
33
def render (self ):
39
34
if self .rendered :
@@ -46,7 +41,7 @@ def render(self):
46
41
layout = ipw .Layout (max_width = "20px" ),
47
42
)
48
43
ipw .link (
49
- (self ._model . advanced , "clean_workdir" ),
44
+ (self ._model , "clean_workdir" ),
50
45
(self .clean_workdir , "value" ),
51
46
)
52
47
# Override setting widget
@@ -56,11 +51,11 @@ def render(self):
56
51
layout = ipw .Layout (max_width = "10%" ),
57
52
)
58
53
ipw .link (
59
- (self ._model . advanced , "override" ),
54
+ (self ._model , "override" ),
60
55
(self .override , "value" ),
61
56
)
62
57
ipw .dlink (
63
- (self ._model , "input_structure" ),
58
+ (self ._config_model , "input_structure" ),
64
59
(self .override , "disabled" ),
65
60
lambda structure : structure is None ,
66
61
)
@@ -80,7 +75,7 @@ def render(self):
80
75
style = {"description_width" : "initial" },
81
76
)
82
77
ipw .link (
83
- (self ._model . advanced , "kpoints_distance" ),
78
+ (self ._model , "kpoints_distance" ),
84
79
(self .kpoints_distance , "value" ),
85
80
)
86
81
ipw .dlink (
@@ -94,7 +89,7 @@ def render(self):
94
89
)
95
90
self .mesh_grid = ipw .HTML ()
96
91
ipw .dlink (
97
- (self ._model . advanced , "mesh_grid" ),
92
+ (self ._model , "mesh_grid" ),
98
93
(self .mesh_grid , "value" ),
99
94
)
100
95
@@ -110,11 +105,11 @@ def render(self):
110
105
style = {"description_width" : "initial" },
111
106
)
112
107
ipw .link (
113
- (self ._model . advanced , "total_charge" ),
108
+ (self ._model , "total_charge" ),
114
109
(self .total_charge , "value" ),
115
110
)
116
111
ipw .dlink (
117
- (self ._model . advanced , "override" ),
112
+ (self ._model , "override" ),
118
113
(self .total_charge , "disabled" ),
119
114
lambda override : not override ,
120
115
)
@@ -133,11 +128,11 @@ def render(self):
133
128
style = {"description_width" : "initial" },
134
129
)
135
130
ipw .link (
136
- (self ._model . advanced , "van_der_waals" ),
131
+ (self ._model , "van_der_waals" ),
137
132
(self .van_der_waals , "value" ),
138
133
)
139
134
ipw .dlink (
140
- (self ._model . advanced , "override" ),
135
+ (self ._model , "override" ),
141
136
(self .van_der_waals , "disabled" ),
142
137
lambda override : not override ,
143
138
)
@@ -153,15 +148,15 @@ def render(self):
153
148
style = {"description_width" : "initial" },
154
149
)
155
150
ipw .link (
156
- (self ._model . advanced , "scf_conv_thr" ),
151
+ (self ._model , "scf_conv_thr" ),
157
152
(self .scf_conv_thr , "value" ),
158
153
)
159
154
ipw .dlink (
160
- (self ._model . advanced , "scf_conv_thr_step" ),
155
+ (self ._model , "scf_conv_thr_step" ),
161
156
(self .scf_conv_thr , "step" ),
162
157
)
163
158
ipw .dlink (
164
- (self ._model . advanced , "override" ),
159
+ (self ._model , "override" ),
165
160
(self .scf_conv_thr , "disabled" ),
166
161
lambda override : not override ,
167
162
)
@@ -172,15 +167,15 @@ def render(self):
172
167
style = {"description_width" : "initial" },
173
168
)
174
169
ipw .link (
175
- (self ._model . advanced , "forc_conv_thr" ),
170
+ (self ._model , "forc_conv_thr" ),
176
171
(self .forc_conv_thr , "value" ),
177
172
)
178
173
ipw .dlink (
179
- (self ._model . advanced , "forc_conv_thr_step" ),
174
+ (self ._model , "forc_conv_thr_step" ),
180
175
(self .forc_conv_thr , "step" ),
181
176
)
182
177
ipw .dlink (
183
- (self ._model . advanced , "override" ),
178
+ (self ._model , "override" ),
184
179
(self .forc_conv_thr , "disabled" ),
185
180
lambda override : not override ,
186
181
)
@@ -191,15 +186,15 @@ def render(self):
191
186
style = {"description_width" : "initial" },
192
187
)
193
188
ipw .link (
194
- (self ._model . advanced , "etot_conv_thr" ),
189
+ (self ._model , "etot_conv_thr" ),
195
190
(self .etot_conv_thr , "value" ),
196
191
)
197
192
ipw .dlink (
198
- (self ._model . advanced , "etot_conv_thr_step" ),
193
+ (self ._model , "etot_conv_thr_step" ),
199
194
(self .etot_conv_thr , "step" ),
200
195
)
201
196
ipw .dlink (
202
- (self ._model . advanced , "override" ),
197
+ (self ._model , "override" ),
203
198
(self .etot_conv_thr , "disabled" ),
204
199
lambda override : not override ,
205
200
)
@@ -214,11 +209,11 @@ def render(self):
214
209
style = {"description_width" : "initial" },
215
210
)
216
211
ipw .link (
217
- (self ._model . advanced , "spin_orbit" ),
212
+ (self ._model , "spin_orbit" ),
218
213
(self .spin_orbit , "value" ),
219
214
)
220
215
ipw .dlink (
221
- (self ._model . advanced , "override" ),
216
+ (self ._model , "override" ),
222
217
(self .spin_orbit , "disabled" ),
223
218
lambda override : not override ,
224
219
)
@@ -297,15 +292,15 @@ def render(self):
297
292
298
293
def reset (self ):
299
294
with self .hold_trait_notifications ():
300
- self ._model .advanced . reset ()
295
+ self ._model .reset ()
301
296
self .smearing .reset ()
302
297
self .hubbard .reset ()
303
298
self .magnetization .reset ()
304
299
self .pseudos .reset ()
305
- self ._model .advanced . update ()
300
+ self ._model .update ()
306
301
307
302
def _on_kpoints_distance_change (self , _ = None ):
308
- self ._model .advanced . update_kpoints_mesh ()
303
+ self ._model .update_kpoints_mesh ()
309
304
310
305
def _on_override_change (self , change ):
311
306
if not change ["new" ]:
0 commit comments