--- a/etherlab/ConfigEditor.py Sun Dec 18 19:42:13 2011 +0100
+++ b/etherlab/ConfigEditor.py Tue Dec 20 23:43:27 2011 +0100
@@ -96,13 +96,9 @@
self.EndModal(wx.ID_OK)
-def GetPDOsTableColnames():
- _ = lambda x : x
- return ["#", _("Index"), _("Name"), _("Type")]
-
def GetVariablesTableColnames():
_ = lambda x : x
- return ["#", _("Index"), _("SubIndex"), _("Name"), _("Type"), _("PDO")]
+ return ["#", _("Index"), _("SubIndex"), _("Name"), _("Type"), _("PDO index"), _("PDO name"), _("PDO type")]
class PDOsTable(CustomTable):
@@ -177,16 +173,13 @@
def _init_coll_SlaveInfosSizer_Items(self, parent):
parent.AddSizer(self.SlaveInfosDetailsSizer, 0, border=0, flag=wx.GROW)
- parent.AddWindow(self.PDOsLabel, 0, border=0, flag=wx.GROW)
- parent.AddWindow(self.PDOsGrid, 0, border=0, flag=wx.GROW)
parent.AddWindow(self.VariablesLabel, 0, border=0, flag=wx.GROW)
parent.AddWindow(self.VariablesGrid, 0, border=0, flag=wx.GROW)
def _init_coll_SlaveInfosSizer_Growables(self, parent):
parent.AddGrowableCol(0)
parent.AddGrowableRow(2)
- parent.AddGrowableRow(4)
-
+
def _init_coll_SlaveInfosDetailsSizer_Items(self, parent):
parent.AddWindow(self.VendorLabel, 0, border=0, flag=wx.ALIGN_CENTER_VERTICAL|wx.GROW)
parent.AddWindow(self.Vendor, 0, border=0, flag=wx.GROW)
@@ -206,7 +199,7 @@
self.PositionSizer = wx.FlexGridSizer(cols=6, hgap=5, rows=1, vgap=0)
self.TypeSizer = wx.BoxSizer(wx.HORIZONTAL)
self.SlaveInfosBoxSizer = wx.StaticBoxSizer(self.SlaveInfosStaticBox, wx.VERTICAL)
- self.SlaveInfosSizer = wx.FlexGridSizer(cols=1, hgap=0, rows=5, vgap=5)
+ self.SlaveInfosSizer = wx.FlexGridSizer(cols=1, hgap=0, rows=3, vgap=5)
self.SlaveInfosDetailsSizer = wx.FlexGridSizer(cols=4, hgap=5, rows=2, vgap=5)
self._init_coll_MainSizer_Growables(self.MainSizer)
@@ -293,14 +286,6 @@
name='Physics', parent=self, pos=wx.Point(0, 0),
size=wx.Size(0, 24), style=wx.TE_READONLY)
- self.PDOsLabel = wx.StaticText(id=ID_SLAVEPANELPDOSLABEL,
- label=_('PDO entries:'), name='PDOsLabel', parent=self,
- pos=wx.Point(0, 0), size=wx.DefaultSize, style=0)
-
- self.PDOsGrid = CustomGrid(id=ID_SLAVEPANELPDOSGRID,
- name='PDOsGrid', parent=self, pos=wx.Point(0, 0),
- size=wx.Size(0, 0), style=wx.VSCROLL)
-
self.VariablesLabel = wx.StaticText(id=ID_SLAVEPANELVARIABLESLABEL,
label=_('Variable entries:'), name='VariablesLabel', parent=self,
pos=wx.Point(0, 0), size=wx.DefaultSize, style=0)
@@ -322,22 +307,12 @@
self.ParentWindow = window
self.Slave = slave
- self.PDOsTable = PDOsTable(self, [], GetPDOsTableColnames())
- self.PDOsGrid.SetTable(self.PDOsTable)
- self.PDOsGridColAlignements = [wx.ALIGN_RIGHT, wx.ALIGN_RIGHT, wx.ALIGN_LEFT, wx.ALIGN_LEFT]
- self.PDOsGridColSizes = [40, 100, 150, 150]
- self.PDOsGrid.SetRowLabelSize(0)
- for col in range(self.PDOsTable.GetNumberCols()):
- attr = wx.grid.GridCellAttr()
- attr.SetAlignment(self.PDOsGridColAlignements[col], wx.ALIGN_CENTRE)
- self.PDOsGrid.SetColAttr(col, attr)
- self.PDOsGrid.SetColMinimalWidth(col, self.PDOsGridColSizes[col])
- self.PDOsGrid.AutoSizeColumn(col, False)
-
self.VariablesTable = VariablesTable(self, [], GetVariablesTableColnames())
self.VariablesGrid.SetTable(self.VariablesTable)
- self.VariablesGridColAlignements = [wx.ALIGN_RIGHT, wx.ALIGN_RIGHT, wx.ALIGN_RIGHT, wx.ALIGN_LEFT, wx.ALIGN_LEFT, wx.ALIGN_RIGHT]
- self.VariablesGridColSizes = [40, 100, 100, 150, 150, 100]
+ self.VariablesGridColAlignements = [wx.ALIGN_RIGHT, wx.ALIGN_RIGHT, wx.ALIGN_RIGHT,
+ wx.ALIGN_LEFT, wx.ALIGN_LEFT, wx.ALIGN_RIGHT,
+ wx.ALIGN_LEFT, wx.ALIGN_LEFT]
+ self.VariablesGridColSizes = [40, 100, 100, 150, 150, 100, 150, 100]
self.VariablesGrid.SetRowLabelSize(0)
for col in range(self.VariablesTable.GetNumberCols()):
attr = wx.grid.GridCellAttr()
@@ -348,6 +323,9 @@
self.RefreshView()
+ def __del__(self):
+ self.Controler.OnCloseEditor()
+
def GetSlaveTitle(self):
type_infos = self.Controler.GetSlaveType(self.Slave)
return "%s (%d:%d)" % (type_infos["device_type"], self.Slave[0], self.Slave[1])
@@ -370,8 +348,6 @@
self.ProductCode.SetValue(slave_infos["product_code"])
self.RevisionNumber.SetValue(slave_infos["revision_number"])
self.Physics.SetValue(slave_infos["physics"])
- self.PDOsTable.SetData(slave_infos["pdos"])
- self.PDOsTable.ResetView(self.PDOsGrid)
self.VariablesTable.SetData(slave_infos["variables"])
self.VariablesTable.ResetView(self.VariablesGrid)
else:
@@ -426,14 +402,10 @@
var_name = self.VariablesTable.GetValueByName(row, "Name")
entry_index = self.Controler.ExtractHexDecValue(self.VariablesTable.GetValueByName(row, "Index"))
entry_subindex = self.VariablesTable.GetValueByName(row, "SubIndex")
- pdo_index = self.VariablesTable.GetValueByName(row, "PDO")
- for pdo_row in xrange(self.PDOsTable.GetNumberRows()):
- if self.PDOsTable.GetValueByName(row, "Index") == pdo_index:
- if self.PDOsTable.GetValueByName(row, "Type") == "Transmit":
- dir = "%I"
- else:
- dir = "%Q"
- break
+ if self.VariablesTable.GetValueByName(row, "PDO type") == "Transmit":
+ dir = "%I"
+ else:
+ dir = "%Q"
location = "%s%s" % (dir, self.Controler.GetSizeOfType(data_type)) + \
".".join(map(lambda x:str(x), self.Controler.GetCurrentLocation() + self.Slave + (entry_index, entry_subindex)))
data = wx.TextDataObject(str((location, "location", data_type, var_name, "")))
@@ -499,10 +471,10 @@
self.SetIcon(wx.BitmapFromImage(img.Rescale(16, 16)))
def GetTitle(self):
- filename = self.Controler.GetFilename()
+ fullname = self.Controler.PlugFullName()
if not self.Controler.ConfigIsSaved():
- return "~%s~" % filename
- return filename
+ return "~%s~" % fullname
+ return fullname
def GetBufferState(self):
return self.Controler.GetBufferState()