svghmi/ui.py
branchsvghmi
changeset 3251 6d4ff271ebf1
parent 3250 22da8e0b07b8
child 3252 352b2111ca66
child 3253 9233e60a8317
equal deleted inserted replaced
3250:22da8e0b07b8 3251:6d4ff271ebf1
   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