881 |
881 |
882 def OnGenerateProgramMenu(self, event): |
882 def OnGenerateProgramMenu(self, event): |
883 dialog = wx.FileDialog(self, "Choose a file", os.getcwd(), self.Controler.GetProgramFilePath(), "ST files (*.st)|*.st|All files|*.*", wx.SAVE|wx.CHANGE_DIR) |
883 dialog = wx.FileDialog(self, "Choose a file", os.getcwd(), self.Controler.GetProgramFilePath(), "ST files (*.st)|*.st|All files|*.*", wx.SAVE|wx.CHANGE_DIR) |
884 if dialog.ShowModal() == wx.ID_OK: |
884 if dialog.ShowModal() == wx.ID_OK: |
885 filepath = dialog.GetPath() |
885 filepath = dialog.GetPath() |
|
886 message_text = "" |
|
887 header, icon = "Done", wx.ICON_INFORMATION |
886 if os.path.isdir(os.path.dirname(filepath)): |
888 if os.path.isdir(os.path.dirname(filepath)): |
887 result = self.Controler.GenerateProgram(filepath) |
889 program, errors, warnings = self.Controler.GenerateProgram(filepath) |
888 if result is not None: |
890 message_text += "".join(["warning: %s\n" for warning in warnings]) |
889 message = wx.MessageDialog(self, "Can't generate program to file %s :\n%s"%(filepath, result), "Error", wx.OK|wx.ICON_ERROR) |
891 if len(errors) > 0: |
890 message.ShowModal() |
892 message_text += "".join(["error: %s\n" for warning in warnings]) |
891 message.Destroy() |
893 message_text += "Can't generate program to file %s!"%filepath |
|
894 header, icon = "Error", wx.ICON_ERROR |
892 else: |
895 else: |
893 message = wx.MessageDialog(self, "Program was successfully generated!", "Done", wx.OK|wx.ICON_INFORMATION) |
896 message_text += "Program was successfully generated!" |
894 message.ShowModal() |
|
895 message.Destroy() |
|
896 else: |
897 else: |
897 message = wx.MessageDialog(self, "%s is not a valid folder!"%os.path.dirname(filepath), "Error", wx.OK|wx.ICON_ERROR) |
898 message_text += "%s is not a valid folder!"%os.path.dirname(filepath) |
898 message.ShowModal() |
899 header, icon = "Error", wx.ICON_ERROR |
899 message.Destroy() |
900 message = wx.MessageDialog(self, message_text, header, wx.OK|icon) |
|
901 message.ShowModal() |
|
902 message.Destroy() |
900 dialog.Destroy() |
903 dialog.Destroy() |
901 event.Skip() |
904 event.Skip() |
902 |
905 |
903 def SaveProject(self): |
906 def SaveProject(self): |
904 result = self.Controler.SaveXMLFile() |
907 result = self.Controler.SaveXMLFile() |