198 self.main_sizer.Add(self.desc, flag=wx.GROW) |
198 self.main_sizer.Add(self.desc, flag=wx.GROW) |
199 self.main_sizer.Add(self.edit_sizer, flag=wx.GROW) |
199 self.main_sizer.Add(self.edit_sizer, flag=wx.GROW) |
200 self.SetSizer(self.main_sizer) |
200 self.SetSizer(self.main_sizer) |
201 self.main_sizer.Fit(self) |
201 self.main_sizer.Fit(self) |
202 |
202 |
|
203 def setValidityNOK(self): |
|
204 self.validity_sbmp.SetBitmap(self.invalid_bmp) |
|
205 self.validity_sbmp.Show(True) |
|
206 |
|
207 def setValidityOK(self): |
|
208 self.validity_sbmp.SetBitmap(self.valid_bmp) |
|
209 self.validity_sbmp.Show(True) |
|
210 |
|
211 def setValidityUnknown(self): |
|
212 self.validity_sbmp.Show(False) |
|
213 |
203 class ArgEditor(ParamEditor): |
214 class ArgEditor(ParamEditor): |
204 pass |
215 pass |
205 |
216 |
206 class PathEditor(ParamEditor): |
217 class PathEditor(ParamEditor): |
207 def __init__(self, parent, pathdesc): |
218 def __init__(self, parent, pathdesc): |
208 ParamEditor.__init__(self, parent, pathdesc) |
219 ParamEditor.__init__(self, parent, pathdesc) |
209 self.ParentObj = parent |
220 self.ParentObj = parent |
|
221 self.pathdesc = pathdesc |
210 DropTarget = PathDropTarget(self) |
222 DropTarget = PathDropTarget(self) |
211 self.edit.SetDropTarget(DropTarget) |
223 self.edit.SetDropTarget(DropTarget) |
212 self.Bind(wx.EVT_TEXT_ENTER, self.OnPathChanged, self.edit) |
224 self.Bind(wx.EVT_TEXT, self.OnPathChanged, self.edit) |
213 |
225 |
214 def OnHMITreeDnD(self): |
226 def OnHMITreeDnD(self): |
215 self.ParentObj.GotPathDnDOn(self) |
227 self.ParentObj.GotPathDnDOn(self) |
216 |
228 |
217 def SetPath(self, value): |
229 def SetPath(self, hmitree_node): |
218 self.edit.SetValue(value) |
230 self.edit.ChangeValue(hmitree_node.hmi_path()) |
|
231 if hmitree_node.nodetype in self.pathdesc.get("accepts").split(","): |
|
232 self.setValidityOK() |
|
233 else: |
|
234 self.setValidityNOK() |
219 |
235 |
220 def OnPathChanged(self, event): |
236 def OnPathChanged(self, event): |
221 # TODO : update validity |
237 # TODO : find corresponding hmitre node and type to update validity |
|
238 # Lazy way : hide validity |
|
239 self.setValidityUnknown() |
222 event.Skip() |
240 event.Skip() |
223 |
241 |
224 |
242 |
225 _conf_key = "SVGHMIWidgetLib" |
243 _conf_key = "SVGHMIWidgetLib" |
226 _preview_height = 200 |
244 _preview_height = 200 |
326 self.paths_sizer.Add(new_editor, flag=wx.GROW) |
344 self.paths_sizer.Add(new_editor, flag=wx.GROW) |
327 |
345 |
328 def GotPathDnDOn(self, target_editor): |
346 def GotPathDnDOn(self, target_editor): |
329 dndindex = self.paths_editors.index(target_editor) |
347 dndindex = self.paths_editors.index(target_editor) |
330 |
348 |
331 for selected,editor in zip(self.hmitree_nodes, |
349 for hmitree_node,editor in zip(self.hmitree_nodes, |
332 self.paths_editors[dndindex:]): |
350 self.paths_editors[dndindex:]): |
333 editor.SetPath(selected.hmi_path()) |
351 editor.SetPath(hmitree_node) |
334 |
352 |
335 def RecallLibDir(self): |
353 def RecallLibDir(self): |
336 conf = self.Config.Read(_conf_key) |
354 conf = self.Config.Read(_conf_key) |
337 if len(conf) == 0: |
355 if len(conf) == 0: |
338 return None |
356 return None |