etherlab/ConfigEditor.py
changeset 2643 b98d9e08231f
parent 2450 5024c19ca8f0
parent 2641 c9deff128c37
child 2737 38afed869ff6
equal deleted inserted replaced
2640:1b4b335e19ea 2643:b98d9e08231f
   147             for col, colname in enumerate(colnames):
   147             for col, colname in enumerate(colnames):
   148                 if col == 0:
   148                 if col == 0:
   149                     self.VariablesGrid.SetItemText(item, str(idx), 0)
   149                     self.VariablesGrid.SetItemText(item, str(idx), 0)
   150                 else:
   150                 else:
   151                     value = entry.get(colname, "")
   151                     value = entry.get(colname, "")
       
   152                     # add jblee
       
   153                     if value is None:
       
   154                         value = ""
   152                     if colname == "Access":
   155                     if colname == "Access":
   153                         value = GetAccessValue(value, entry.get("PDOMapping", ""))
   156                         value = GetAccessValue(value, entry.get("PDOMapping", ""))
   154                     self.VariablesGrid.SetItemText(item, value, col)
   157                     self.VariablesGrid.SetItemText(item, value, col)
   155             if entry["PDOMapping"] == "":
   158             if entry["PDOMapping"] == "":
   156                 self.VariablesGrid.SetItemBackgroundColour(item, wx.LIGHT_GREY)
   159                 self.VariablesGrid.SetItemBackgroundColour(item, wx.LIGHT_GREY)
   615 
   618 
   616     def _create_MasterStateEditor(self, prnt):
   619     def _create_MasterStateEditor(self, prnt):
   617         self.MasterStateEditor = wx.ScrolledWindow(prnt, style=wx.TAB_TRAVERSAL | wx.HSCROLL | wx.VSCROLL)
   620         self.MasterStateEditor = wx.ScrolledWindow(prnt, style=wx.TAB_TRAVERSAL | wx.HSCROLL | wx.VSCROLL)
   618         self.MasterStateEditor.Bind(wx.EVT_SIZE, self.OnResize)
   621         self.MasterStateEditor.Bind(wx.EVT_SIZE, self.OnResize)
   619 
   622 
   620         self.MasterStateEditor_Panel_Main_Sizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=5)
   623         self.MasterStateEditor_Panel_Main_Sizer = wx.BoxSizer(wx.VERTICAL)
   621         self.MasterStateEditor_Panel_Main_Sizer.AddGrowableCol(0)
       
   622         self.MasterStateEditor_Panel_Main_Sizer.AddGrowableRow(0)
       
   623 
   624 
   624         self.MasterStateEditor_Panel = MasterStatePanelClass(self.MasterStateEditor, self.Controler)
   625         self.MasterStateEditor_Panel = MasterStatePanelClass(self.MasterStateEditor, self.Controler)
   625 
   626 
   626         self.MasterStateEditor_Panel_Main_Sizer.AddSizer(self.MasterStateEditor_Panel, border=10, flag=wx.GROW)
   627         self.MasterStateEditor_Panel_Main_Sizer.AddSizer(self.MasterStateEditor_Panel, border=10, flag=wx.GROW)
   627 
   628 
   628         self.MasterStateEditor.SetSizer(self.MasterStateEditor_Panel_Main_Sizer)
   629         self.MasterStateEditor.SetSizer(self.MasterStateEditor_Panel_Main_Sizer)
   629         return self.MasterStateEditor
   630         return self.MasterStateEditor
       
   631 
       
   632     def OnResize2(self, event):
       
   633         self.MasterStateEditor.GetBestSize()
       
   634         xstart, ystart = self.MasterStateEditor.GetViewStart()
       
   635         window_size = self.MasterStateEditor.GetClientSize()
       
   636         maxx, maxy = self.MasterStateEditor.GetMinSize()
       
   637         posx = max(0, min(xstart, (maxx - window_size[0]) / SCROLLBAR_UNIT))
       
   638         posy = max(0, min(ystart, (maxy - window_size[1]) / SCROLLBAR_UNIT))
       
   639         self.MasterStateEditor.Scroll(posx, posy)
       
   640         self.MasterStateEditor.SetScrollbars(SCROLLBAR_UNIT, SCROLLBAR_UNIT, 
       
   641                 maxx / SCROLLBAR_UNIT, maxy / SCROLLBAR_UNIT, posx, posy)
       
   642         event.Skip()
   630 
   643 
   631     def _create_EthercatMasterEditor(self, prnt):
   644     def _create_EthercatMasterEditor(self, prnt):
   632         self.EthercatMasterEditor = wx.ScrolledWindow(prnt,
   645         self.EthercatMasterEditor = wx.ScrolledWindow(prnt,
   633                                                       style=wx.TAB_TRAVERSAL | wx.HSCROLL | wx.VSCROLL)
   646                                                       style=wx.TAB_TRAVERSAL | wx.HSCROLL | wx.VSCROLL)
   634         self.EthercatMasterEditor.Bind(wx.EVT_SIZE, self.OnResize)
   647         self.EthercatMasterEditor.Bind(wx.EVT_SIZE, self.OnResize)