plugger.py
changeset 628 2a8476222ba8
parent 624 8e74266033f8
child 630 91b2ae63ea3d
equal deleted inserted replaced
627:ff7f76c936b9 628:2a8476222ba8
   648         for d in self.PluginMethods:
   648         for d in self.PluginMethods:
   649             if d["method"]==method:
   649             if d["method"]==method:
   650                 d["shown"]=value
   650                 d["shown"]=value
   651                 return True
   651                 return True
   652         return False
   652         return False
       
   653 
       
   654     def CallMethod(self, method):
       
   655         for d in self.PluginMethods:
       
   656             if d["method"]==method and d.get("enabled", True) and d.get("shown", True):
       
   657                 getattr(self, method)()
   653 
   658 
   654 def _GetClassFunction(name):
   659 def _GetClassFunction(name):
   655     def GetRootClass():
   660     def GetRootClass():
   656         return getattr(__import__("plugins." + name), name).RootClass
   661         return getattr(__import__("plugins." + name), name).RootClass
   657     return GetRootClass
   662     return GetRootClass
  1383                 }
  1388                 }
  1384         plc_main_code += targets.targetcode(self.GetTarget().getcontent()["name"])
  1389         plc_main_code += targets.targetcode(self.GetTarget().getcontent()["name"])
  1385         return plc_main_code
  1390         return plc_main_code
  1386 
  1391 
  1387         
  1392         
  1388     def _build(self):
  1393     def _Build(self):
  1389         """
  1394         """
  1390         Method called by user to (re)build SoftPLC and plugin tree
  1395         Method called by user to (re)build SoftPLC and plugin tree
  1391         """
  1396         """
  1392         if self.AppFrame is not None:
  1397         if self.AppFrame is not None:
  1393             self.AppFrame.ClearErrors()
  1398             self.AppFrame.ClearErrors()
  1478         except Exception, exc:
  1483         except Exception, exc:
  1479             self.logger.write_error(_("C Build crashed !\n"))
  1484             self.logger.write_error(_("C Build crashed !\n"))
  1480             self.logger.write_error(traceback.format_exc())
  1485             self.logger.write_error(traceback.format_exc())
  1481             return False
  1486             return False
  1482 
  1487 
       
  1488         self.logger.write(_("Successfully built.\n"))
  1483         # Update GUI status about need for transfer
  1489         # Update GUI status about need for transfer
  1484         self.CompareLocalAndRemotePLC()
  1490         self.CompareLocalAndRemotePLC()
  1485         return True
  1491         return True
  1486     
  1492     
  1487     def ShowError(self, logger, from_location, to_location):
  1493     def ShowError(self, logger, from_location, to_location):
  1749         wx.CallAfter(self.logger.write, _("Debugger disabled\n"))
  1755         wx.CallAfter(self.logger.write, _("Debugger disabled\n"))
  1750 
  1756 
  1751     def KillDebugThread(self):
  1757     def KillDebugThread(self):
  1752         self.debug_break = True
  1758         self.debug_break = True
  1753         if self.DebugThread is not None:
  1759         if self.DebugThread is not None:
  1754             self.logger.writeyield(_("Stopping debug ... "))
  1760             self.logger.writeyield(_("Stopping debugger...\n"))
  1755             self.DebugThread.join(timeout=5)
  1761             self.DebugThread.join(timeout=5)
  1756             if self.DebugThread.isAlive() and self.logger:
  1762             if self.DebugThread.isAlive() and self.logger:
  1757                 self.logger.write_warning(_("Debug Thread couldn't be killed"))
  1763                 self.logger.write_warning(_("Couldn't stop debugger.\n"))
  1758             else:
  1764             else:
  1759                 self.logger.write(_("success\n"))
  1765                 self.logger.write(_("Debugger stopped.\n"))
  1760         self.DebugThread = None
  1766         self.DebugThread = None
  1761 
  1767 
  1762     def _connect_debug(self): 
  1768     def _connect_debug(self): 
  1763         if self.AppFrame:
  1769         if self.AppFrame:
  1764             self.AppFrame.ResetGraphicViewers()
  1770             self.AppFrame.ResetGraphicViewers()
  1944 
  1950 
  1945     PluginMethods = [
  1951     PluginMethods = [
  1946         {"bitmap" : opjimg("Build"),
  1952         {"bitmap" : opjimg("Build"),
  1947          "name" : _("Build"),
  1953          "name" : _("Build"),
  1948          "tooltip" : _("Build project into build folder"),
  1954          "tooltip" : _("Build project into build folder"),
  1949          "method" : "_build"},
  1955          "method" : "_Build"},
  1950         {"bitmap" : opjimg("Clean"),
  1956         {"bitmap" : opjimg("Clean"),
  1951          "name" : _("Clean"),
  1957          "name" : _("Clean"),
  1952          "enabled" : False,
  1958          "enabled" : False,
  1953          "tooltip" : _("Clean project build folder"),
  1959          "tooltip" : _("Clean project build folder"),
  1954          "method" : "_Clean"},
  1960          "method" : "_Clean"},