- Timestamp:
- 02/28/08 18:02:45 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.PluginInfrastructure/PluginManager.cs
r2 r29 53 53 } 54 54 55 public List<PluginInfo> InstalledPlugins {55 public ICollection<PluginInfo> InstalledPlugins { 56 56 get { return remoteLoader.InstalledPlugins; } 57 57 } 58 58 59 public ApplicationInfo[] InstalledApplications { 59 public ICollection<PluginInfo> DisabledPlugins { 60 get { return remoteLoader.DisabledPlugins; } 61 } 62 63 public ICollection<PluginInfo> ActivePlugins { 64 get { return remoteLoader.ActivePlugins; } 65 } 66 67 public ICollection<ApplicationInfo> InstalledApplications { 60 68 get { return remoteLoader.InstalledApplications; } 61 69 } 62 70 63 private PluginInfo[]loadedPlugins;64 public PluginInfo[]LoadedPlugins {71 private ICollection<PluginInfo> loadedPlugins; 72 public ICollection<PluginInfo> LoadedPlugins { 65 73 get { return loadedPlugins; } 66 74 internal set { loadedPlugins = value; } … … 72 80 public void Initialize() { 73 81 NotifyListeners(PluginManagerAction.Initializing, "-"); 74 75 82 AppDomainSetup setup = AppDomain.CurrentDomain.SetupInformation; 76 83 setup.PrivateBinPath = pluginDir; 77 84 pluginDomain = AppDomain.CreateDomain("plugin domain", null, setup); 78 79 85 remoteLoader = (Loader)pluginDomain.CreateInstanceAndUnwrap("HeuristicLab.PluginInfraStructure", "HeuristicLab.PluginInfrastructure.Loader"); 80 81 86 remoteLoader.PluginAction += delegate(object sender, PluginManagerActionEventArgs args) { if(Action != null) Action(this, args); }; 82 87 remoteLoader.Init(); 83 84 88 NotifyListeners(PluginManagerAction.Initialized, "-"); 85 89 } … … 99 103 setup.PrivateBinPath = pluginDir; 100 104 AppDomain applicationDomain = AppDomain.CreateDomain(appInfo.Name + " AppDomain", null, setup); 101 105 102 106 Runner remoteRunner = (Runner)applicationDomain.CreateInstanceAndUnwrap("HeuristicLab.PluginInfrastructure", "HeuristicLab.PluginInfrastructure.Runner"); 103 107 NotifyListeners(PluginManagerAction.Initializing, "All plugins"); … … 116 120 public List<PluginInfo> GetDependentPlugins(PluginInfo pluginInfo) { 117 121 List<PluginInfo> mergedList = new List<PluginInfo>(); 118 InstalledPlugins.ForEach(delegate(PluginInfo plugin) {122 foreach(PluginInfo plugin in InstalledPlugins) { 119 123 if(plugin.Dependencies.Contains(pluginInfo)) { 120 124 if(!mergedList.Contains(plugin)) { … … 125 129 GetDependentPlugins(plugin).ForEach(delegate(PluginInfo dependentPlugin) { 126 130 if(!mergedList.Contains(dependentPlugin)) { 127 mergedList.Add(dependentPlugin); 131 mergedList.Add(dependentPlugin); 128 132 } 129 133 }); 130 134 } 131 }); 132 135 } 133 136 return mergedList; 134 137 }
Note: See TracChangeset
for help on using the changeset viewer.