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, |