--- a/PLCOpenEditor.py Thu May 28 08:10:18 2009 +0200
+++ b/PLCOpenEditor.py Sat May 30 17:15:22 2009 +0200
@@ -1295,6 +1295,8 @@
if selected != -1:
window = self.TabsOpened.GetPage(selected)
window.SetScale(idx)
+ window.RefreshVisibleElements()
+ window.RefreshScrollBars()
event.Skip()
return ZoomFunction
@@ -4534,9 +4536,10 @@
# Variables Editor Panel
#-------------------------------------------------------------------------------
-class VariableTableItem:
+class VariableTableItem(DebugDataConsumer):
def __init__(self, parent, variable, value):
+ DebugDataConsumer.__init__(self)
self.Parent = parent
self.Variable = variable
self.Value = value
@@ -4553,12 +4556,12 @@
return self.Variable
def SetValue(self, value):
- if self.Parent and self.Value != value:
+ if self.Value != value:
self.Value = value
- self.Parent.RefreshGrid()
+ self.Parent.NewDataAvailable()
def GetValue(self):
- return self.Value
+ return self.Value
class DebugVariableTable(wx.grid.PyGridTableBase):
@@ -4716,10 +4719,10 @@
[ID_DEBUGVARIABLEPANEL, ID_DEBUGVARIABLEPANELVARIABLESGRID,
ID_DEBUGVARIABLEPANELUPBUTTON, ID_DEBUGVARIABLEPANELDOWNBUTTON,
- ID_DEBUGVARIABLEPANELDELETEBUTTON,
+ ID_DEBUGVARIABLEPANELDELETEBUTTON,
] = [wx.NewId() for _init_ctrls in range(5)]
-class DebugVariablePanel(wx.Panel):
+class DebugVariablePanel(wx.Panel, DebugViewer):
if wx.VERSION < (2, 6, 0):
def Bind(self, event, function, id = None):
@@ -4786,9 +4789,10 @@
def __init__(self, parent, controler):
self._init_ctrls(parent)
+ DebugViewer.__init__(self, controler, True)
self.Controler = controler
- self.Table = DebugVariableTable(self, [], ["Variable", "Value"])
+ self.Table = DebugVariableTable(self, [], ["Variable", "Value"])
self.VariablesGrid.SetTable(self.Table)
self.VariablesGrid.SetRowLabelSize(0)
@@ -4797,20 +4801,21 @@
attr.SetAlignment(wx.ALIGN_RIGHT, wx.ALIGN_CENTER)
self.VariablesGrid.SetColAttr(col, attr)
self.VariablesGrid.SetColSize(col, 100)
-
+
self.Table.ResetView(self.VariablesGrid)
- def __del__(self):
- for item in self.Table.GetData():
- self.Controler.UnsubscribeDebugIECVariable(item.GetVariable().upper(), item)
+ def RefreshNewData(self):
+ self.RefreshGrid()
def RefreshGrid(self):
+ self.Freeze()
self.Table.ResetView(self.VariablesGrid)
+ self.Thaw()
def OnDeleteButton(self, event):
idx = self.VariablesGrid.GetGridCursorRow()
item = self.Table.GetItem(idx)
- self.Controler.UnsubscribeDebugIECVariable(item.GetVariable().upper(), item)
+ self.RemoveDataConsumer(item)
self.Table.RemoveItem(idx)
self.RefreshGrid()
event.Skip()
@@ -4828,7 +4833,7 @@
if iec_path == item.GetVariable():
return
item = VariableTableItem(self, iec_path, "")
- result = self.Controler.SubscribeDebugIECVariable(iec_path.upper(), item)
+ result = self.AddDataConsumer(iec_path.upper(), item)
if result is not None:
self.Table.InsertItem(idx, item)
self.RefreshGrid()