PLCOpenEditor.py
changeset 218 1b8e9bb83f25
parent 217 ddb5b2e499e2
child 219 ca1f1d3734f9
equal deleted inserted replaced
217:ddb5b2e499e2 218:1b8e9bb83f25
    40 import os, re, platform, sys, time, traceback, getopt
    40 import os, re, platform, sys, time, traceback, getopt
    41 
    41 
    42 base_folder = os.path.split(sys.path[0])[0]
    42 base_folder = os.path.split(sys.path[0])[0]
    43 sys.path.append(base_folder)
    43 sys.path.append(base_folder)
    44 from docutils import *
    44 from docutils import *
       
    45 
       
    46 from types import TupleType
    45 
    47 
    46 __version__ = "$Revision$"
    48 __version__ = "$Revision$"
    47 
    49 
    48 CWD = os.path.split(os.path.realpath(__file__))[0]
    50 CWD = os.path.split(os.path.realpath(__file__))[0]
    49 
    51 
  3418                 message = "Can affect a location only to local or global variables"
  3420                 message = "Can affect a location only to local or global variables"
  3419             else:
  3421             else:
  3420                 try:
  3422                 try:
  3421                     values = eval(data)    
  3423                     values = eval(data)    
  3422                 except:
  3424                 except:
       
  3425                     message = "Invalid value \"%s\" for location"%data
  3423                     values = None
  3426                     values = None
  3424                 if values and values[1] == "location":
  3427                 if not isinstance(values, TupleType):
       
  3428                     message = "Invalid value \"%s\" for location"%data
       
  3429                     values = None
       
  3430                 if values is not None and values[1] == "location":
  3425                     location = values[0]
  3431                     location = values[0]
  3426                     variable_type = self.ParentWindow.Table.GetValueByName(row, "Type")
  3432                     variable_type = self.ParentWindow.Table.GetValueByName(row, "Type")
  3427                     message = None
  3433                     message = None
  3428                     if location.startswith("%"):
  3434                     if location.startswith("%"):
  3429                         if variable_type != values[2]:
  3435                         if variable_type != values[2]:
  3451                                     location = "%M" + location
  3457                                     location = "%M" + location
  3452                                 self.ParentWindow.Table.SetValue(row, col, location)
  3458                                 self.ParentWindow.Table.SetValue(row, col, location)
  3453                                 self.ParentWindow.Table.ResetView(self.ParentWindow.VariablesGrid)
  3459                                 self.ParentWindow.Table.ResetView(self.ParentWindow.VariablesGrid)
  3454                                 self.ParentWindow.SaveValues()
  3460                                 self.ParentWindow.SaveValues()
  3455                             dialog.Destroy()
  3461                             dialog.Destroy()
  3456             if message is not None:
  3462             wx.CallAfter(self.ShowMessage, message)
  3457                 message = wx.MessageDialog(self.ParentWindow, message, "Error", wx.OK|wx.ICON_ERROR)
  3463             
  3458                 message.ShowModal()
  3464     def ShowMessage(self, message):
  3459                 message.Destroy()
  3465         if message is not None:
       
  3466             message = wx.MessageDialog(self.ParentWindow, message, "Error", wx.OK|wx.ICON_ERROR)
       
  3467             message.ShowModal()
       
  3468             message.Destroy()
  3460 
  3469 
  3461 [ID_VARIABLEEDITORPANEL, ID_VARIABLEEDITORPANELVARIABLESGRID, 
  3470 [ID_VARIABLEEDITORPANEL, ID_VARIABLEEDITORPANELVARIABLESGRID, 
  3462  ID_VARIABLEEDITORPANELRETURNTYPE, ID_VARIABLEEDITORPANELCLASSFILTER, 
  3471  ID_VARIABLEEDITORPANELRETURNTYPE, ID_VARIABLEEDITORPANELCLASSFILTER, 
  3463  ID_VARIABLEEDITORPANELADDBUTTON, ID_VARIABLEEDITORPANELDELETEBUTTON, 
  3472  ID_VARIABLEEDITORPANELADDBUTTON, ID_VARIABLEEDITORPANELDELETEBUTTON, 
  3464  ID_VARIABLEEDITORPANELUPBUTTON, ID_VARIABLEEDITORPANELDOWNBUTTON, 
  3473  ID_VARIABLEEDITORPANELUPBUTTON, ID_VARIABLEEDITORPANELDOWNBUTTON,