1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 """The deselect user function GUI elements."""
25
26
27 import wx
28
29
30 from prompt.select import boolean_doc
31
32
33 from base import UF_base, UF_page
34 from gui.misc import gui_to_bool, gui_to_int, gui_to_str, str_to_gui
35
36
37
39 """The container class for holding all GUI elements."""
40
47
48
55
56
63
64
71
72
73
74
75 -class All_page(UF_page):
76 """The deselect.all() user function page."""
77
78
79 uf_path = ['deselect', 'all']
80
81 - def add_contents(self, sizer):
82 """Add the sequence specific GUI elements.
83
84 @param sizer: A sizer object.
85 @type sizer: wx.Sizer instance
86 """
87
88
89 - def on_execute(self):
90 """Execute the user function."""
91
92
93 self.execute('deselect.all')
94
95
96
97 -class Read_page(UF_page):
98 """The deselect.read() user function page."""
99
100
101 uf_path = ['deselect', 'read']
102 height_desc = 200
103
104 - def add_contents(self, sizer):
105 """Add the sequence specific GUI elements.
106
107 @param sizer: A sizer object.
108 @type sizer: wx.Sizer instance
109 """
110
111
112 self.file = self.file_selection(sizer, "The deselection file:", message="Deselection file selection", style=wx.FD_OPEN, tooltip=self.uf._doc_args_dict['file'])
113
114
115 self.spin_id = self.spin_id_element(sizer, desc="Restrict data loading to certain spins:")
116
117
118 self.boolean = self.combo_box(sizer, "Boolean operator:", choices=['OR', 'NOR', 'AND', 'NAND', 'XOR', 'XNOR'], tooltip=boolean_doc[2])
119 self.boolean.SetValue(str_to_gui('OR'))
120
121
122 self.change_all = self.boolean_selector(sizer, "Change all:", tooltip=self.uf._doc_args_dict['change_all'], default=False)
123
124
125 self.free_file_format(sizer, data_cols=False, padding=3, spacer=0)
126
127
128 - def on_execute(self):
129 """Execute the user function."""
130
131
132 file = gui_to_str(self.file.GetValue())
133
134
135 if not file:
136 return
137
138
139 spin_id_col = gui_to_int(self.spin_id_col.GetValue())
140 mol_name_col = gui_to_int(self.mol_name_col.GetValue())
141 res_num_col = gui_to_int(self.res_num_col.GetValue())
142 res_name_col = gui_to_int(self.res_name_col.GetValue())
143 spin_num_col = gui_to_int(self.spin_num_col.GetValue())
144 spin_name_col = gui_to_int(self.spin_name_col.GetValue())
145
146
147 sep = str(self.sep.GetValue())
148 if sep == 'white space':
149 sep = None
150
151
152 spin_id = gui_to_str(self.spin_id.GetValue())
153
154
155 boolean = gui_to_str(self.boolean.GetValue())
156 change_all = gui_to_bool(self.change_all.GetValue())
157
158
159 self.execute('deselect.read', file, spin_id_col=spin_id_col, mol_name_col=mol_name_col, res_num_col=res_num_col, res_name_col=res_name_col, spin_num_col=spin_num_col, spin_name_col=spin_name_col, sep=sep, spin_id=spin_id, boolean=boolean, change_all=change_all)
160
161
162
163 -class Reverse_page(UF_page):
164 """The deselect.reverse() user function page."""
165
166
167 uf_path = ['deselect', 'reverse']
168
169 - def add_contents(self, sizer):
170 """Add the sequence specific GUI elements.
171
172 @param sizer: A sizer object.
173 @type sizer: wx.Sizer instance
174 """
175
176
177 self.spin_id = self.spin_id_element(sizer)
178
179
180 - def on_execute(self):
181 """Execute the user function."""
182
183
184 spin_id = gui_to_str(self.spin_id.GetValue())
185
186
187 self.execute('deselect.reverse', spin_id=spin_id)
188
189
190
191 -class Spin_page(UF_page):
192 """The deselect.spin() user function page."""
193
194
195 uf_path = ['deselect', 'spin']
196
197 - def add_contents(self, sizer):
198 """Add the sequence specific GUI elements.
199
200 @param sizer: A sizer object.
201 @type sizer: wx.Sizer instance
202 """
203
204
205 self.spin_id = self.spin_id_element(sizer)
206
207
208 self.change_all = self.boolean_selector(sizer, "Change all:", tooltip=self.uf._doc_args_dict['change_all'])
209
210
211 - def on_execute(self):
212 """Execute the user function."""
213
214
215 spin_id = gui_to_str(self.spin_id.GetValue())
216
217
218 change_all = gui_to_bool(self.change_all.GetValue())
219
220
221 self.execute('deselect.spin', spin_id=spin_id, change_all=change_all)
222