PLCOpenEditor.py
changeset 218 1b8e9bb83f25
parent 217 ddb5b2e499e2
child 219 ca1f1d3734f9
--- a/PLCOpenEditor.py	Mon Jun 30 14:35:41 2008 +0200
+++ b/PLCOpenEditor.py	Tue Jul 01 10:33:29 2008 +0200
@@ -43,6 +43,8 @@
 sys.path.append(base_folder)
 from docutils import *
 
+from types import TupleType
+
 __version__ = "$Revision$"
 
 CWD = os.path.split(os.path.realpath(__file__))[0]
@@ -3420,8 +3422,12 @@
                 try:
                     values = eval(data)    
                 except:
+                    message = "Invalid value \"%s\" for location"%data
                     values = None
-                if values and values[1] == "location":
+                if not isinstance(values, TupleType):
+                    message = "Invalid value \"%s\" for location"%data
+                    values = None
+                if values is not None and values[1] == "location":
                     location = values[0]
                     variable_type = self.ParentWindow.Table.GetValueByName(row, "Type")
                     message = None
@@ -3453,10 +3459,13 @@
                                 self.ParentWindow.Table.ResetView(self.ParentWindow.VariablesGrid)
                                 self.ParentWindow.SaveValues()
                             dialog.Destroy()
-            if message is not None:
-                message = wx.MessageDialog(self.ParentWindow, message, "Error", wx.OK|wx.ICON_ERROR)
-                message.ShowModal()
-                message.Destroy()
+            wx.CallAfter(self.ShowMessage, message)
+            
+    def ShowMessage(self, message):
+        if message is not None:
+            message = wx.MessageDialog(self.ParentWindow, message, "Error", wx.OK|wx.ICON_ERROR)
+            message.ShowModal()
+            message.Destroy()
 
 [ID_VARIABLEEDITORPANEL, ID_VARIABLEEDITORPANELVARIABLESGRID, 
  ID_VARIABLEEDITORPANELRETURNTYPE, ID_VARIABLEEDITORPANELCLASSFILTER,