root / trunk / extensions / ext3Dgui / buildman / bin / bmbase / PlugInManager.py @ 26254
History | View | Annotate | Download (851 Bytes)
1 |
"""
|
---|---|
2 |
PlugInManager is a singleton class that manages
|
3 |
plugininstances, and register methods. Each
|
4 |
plugin should call to register itself
|
5 |
"""
|
6 |
class PlugInManager: |
7 |
_pluginInstances = {} |
8 |
|
9 |
def registerPlugIn(self, id, pluginInstance): |
10 |
PlugInManager._pluginInstances[id] = pluginInstance
|
11 |
pluginInstance.setId(id)
|
12 |
|
13 |
def getPlugInInstances(self): |
14 |
return PlugInManager._pluginInstances
|
15 |
|
16 |
def getPlugInInstance(self,id): |
17 |
return PlugInManager._pluginInstances[id] |
18 |
|
19 |
def getPlugInInstanceByGoal(self,goal): |
20 |
for plugin in PlugInManager._pluginInstances.values(): |
21 |
if goal in plugin.getGoals().keys(): |
22 |
return plugin
|
23 |
return None |
24 |
|
25 |
def supportedGoals(self): |
26 |
goals = [] |
27 |
for plugin in PlugInManager._pluginInstances.values(): |
28 |
for g in plugin.getGoals().keys(): |
29 |
goals.append(g) |
30 |
return goals
|
31 |
|
32 |
#loading plugins
|
33 |
from bmplugins import * |
34 |
|
35 |
|