Beremiz.py
changeset 413 88ee3d7bd4eb
parent 408 6eaa1908507d
child 417 a895ae50b737
equal deleted inserted replaced
412:2b9bc5ee30c0 413:88ee3d7bd4eb
  1075         return OnPluginTreeItemChannelChanged
  1075         return OnPluginTreeItemChannelChanged
  1076     
  1076     
  1077     def _GetAddPluginFunction(self, name, plugin):
  1077     def _GetAddPluginFunction(self, name, plugin):
  1078         def OnPluginMenu(event):
  1078         def OnPluginMenu(event):
  1079             wx.CallAfter(self.AddPlugin, name, plugin)
  1079             wx.CallAfter(self.AddPlugin, name, plugin)
  1080             event.Skip()
       
  1081         return OnPluginMenu
  1080         return OnPluginMenu
  1082     
  1081     
  1083     def Gen_AddPluginMenu(self, plugin):
  1082     def Gen_AddPluginMenu(self, plugin):
  1084         def AddPluginMenu(event):
  1083         def AddPluginMenu(event):
  1085             main_menu = wx.Menu(title='')
  1084             main_menu = wx.Menu(title='')
  1087                 for name, XSDClass, help in plugin.PlugChildsTypes:
  1086                 for name, XSDClass, help in plugin.PlugChildsTypes:
  1088                     new_id = wx.NewId()
  1087                     new_id = wx.NewId()
  1089                     main_menu.Append(help=help, id=new_id, kind=wx.ITEM_NORMAL, text=_("Append ")+help)
  1088                     main_menu.Append(help=help, id=new_id, kind=wx.ITEM_NORMAL, text=_("Append ")+help)
  1090                     self.Bind(wx.EVT_MENU, self._GetAddPluginFunction(name, plugin), id=new_id)
  1089                     self.Bind(wx.EVT_MENU, self._GetAddPluginFunction(name, plugin), id=new_id)
  1091             self.PopupMenuXY(main_menu)
  1090             self.PopupMenuXY(main_menu)
  1092             event.Skip()
       
  1093         return AddPluginMenu
  1091         return AddPluginMenu
  1094     
  1092     
  1095     def GetButtonCallBackFunction(self, plugin, method):
  1093     def GetButtonCallBackFunction(self, plugin, method):
  1096         """ Generate the callbackfunc for a given plugin method"""
  1094         """ Generate the callbackfunc for a given plugin method"""
  1097         def OnButtonClick(event):
  1095         def OnButtonClick(event):
  1304                 self.RefreshAll()
  1302                 self.RefreshAll()
  1305             else:
  1303             else:
  1306                 self.ResetView()
  1304                 self.ResetView()
  1307                 self.ShowErrorMessage(result)
  1305                 self.ShowErrorMessage(result)
  1308             self._Refresh(TITLE, TOOLBAR, FILEMENU, EDITMENU)
  1306             self._Refresh(TITLE, TOOLBAR, FILEMENU, EDITMENU)
  1309         event.Skip()
       
  1310     
  1307     
  1311     def OnOpenProjectMenu(self, event):
  1308     def OnOpenProjectMenu(self, event):
  1312         if not self.Config.HasEntry("lastopenedfolder"):
  1309         if not self.Config.HasEntry("lastopenedfolder"):
  1313             defaultpath = os.path.expanduser("~")
  1310             defaultpath = os.path.expanduser("~")
  1314         else:
  1311         else:
  1333                     self.ShowErrorMessage(result)
  1330                     self.ShowErrorMessage(result)
  1334             else:
  1331             else:
  1335                 self.ShowErrorMessage(_("\"%s\" folder is not a valid Beremiz project\n") % projectpath)
  1332                 self.ShowErrorMessage(_("\"%s\" folder is not a valid Beremiz project\n") % projectpath)
  1336             self._Refresh(TITLE, TOOLBAR, FILEMENU, EDITMENU)
  1333             self._Refresh(TITLE, TOOLBAR, FILEMENU, EDITMENU)
  1337         dialog.Destroy()
  1334         dialog.Destroy()
  1338         event.Skip()
       
  1339     
  1335     
  1340     def OnCloseProjectMenu(self, event):
  1336     def OnCloseProjectMenu(self, event):
  1341         if self.PluginRoot is not None:
  1337         if self.PluginRoot is not None:
  1342             if self.PluginRoot.ProjectTestModified():
  1338             if self.PluginRoot.ProjectTestModified():
  1343                 dialog = wx.MessageDialog(self,
  1339                 dialog = wx.MessageDialog(self,
  1351                 elif answer == wx.ID_CANCEL:
  1347                 elif answer == wx.ID_CANCEL:
  1352                     return
  1348                     return
  1353             self.ResetView()
  1349             self.ResetView()
  1354             self._Refresh(TITLE, TOOLBAR, FILEMENU, EDITMENU)
  1350             self._Refresh(TITLE, TOOLBAR, FILEMENU, EDITMENU)
  1355             self.RefreshAll()
  1351             self.RefreshAll()
  1356         event.Skip()
       
  1357     
  1352     
  1358     def OnSaveProjectMenu(self, event):
  1353     def OnSaveProjectMenu(self, event):
  1359         if self.PluginRoot is not None:
  1354         if self.PluginRoot is not None:
  1360             self.PluginRoot.SaveProject()
  1355             self.PluginRoot.SaveProject()
  1361             self.RefreshAll()
  1356             self.RefreshAll()
  1362             self.RefreshTitle()
  1357             self.RefreshTitle()
  1363         event.Skip()
       
  1364     
  1358     
  1365     def OnPropertiesMenu(self, event):
  1359     def OnPropertiesMenu(self, event):
  1366         event.Skip()
  1360         self.ShowProperties()
  1367     
  1361     
  1368     def OnQuitMenu(self, event):
  1362     def OnQuitMenu(self, event):
  1369         self.Close()
  1363         self.Close()
  1370         event.Skip()
       
  1371         
  1364         
  1372     def OnBeremizMenu(self, event):
  1365     def OnBeremizMenu(self, event):
  1373         open_pdf(Bpath( "doc", "manual_beremiz.pdf"))
  1366         open_pdf(Bpath( "doc", "manual_beremiz.pdf"))
  1374         event.Skip()
       
  1375     
  1367     
  1376     def OnAboutMenu(self, event):
  1368     def OnAboutMenu(self, event):
  1377         OpenHtmlFrame(self,_("About Beremiz"), Bpath("doc","about.html"), wx.Size(550, 500))
  1369         OpenHtmlFrame(self,_("About Beremiz"), Bpath("doc","about.html"), wx.Size(550, 500))
  1378         event.Skip()
       
  1379     
  1370     
  1380     def GetAddButtonFunction(self, plugin, window):
  1371     def GetAddButtonFunction(self, plugin, window):
  1381         def AddButtonFunction(event):
  1372         def AddButtonFunction(event):
  1382             if plugin and len(plugin.PlugChildsTypes) > 0:
  1373             if plugin and len(plugin.PlugChildsTypes) > 0:
  1383                 plugin_menu = wx.Menu(title='')
  1374                 plugin_menu = wx.Menu(title='')