- Timestamp:
- 01/21/10 18:36:15 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Operators.Programmable/3.2/ProgrammableOperator.cs
r2660 r2668 35 35 using System.Data.Linq; 36 36 using System.Xml.XPath; 37 using HeuristicLab.PluginInfrastructure; 37 38 38 39 namespace HeuristicLab.Operators.Programmable { … … 65 66 private object syncRoot = new object(); 66 67 68 public readonly Dictionary<string, List<Assembly>> Plugins; 69 67 70 protected Dictionary<Assembly, bool> Assemblies; 68 71 public IEnumerable<Assembly> AvailableAssemblies { … … 84 87 85 88 public void SelectAssembly(Assembly a) { 86 Assemblies[a] = true; 89 if (a != null && Assemblies.ContainsKey(a)) 90 Assemblies[a] = true; 87 91 } 88 92 89 93 public void UnselectAssembly(Assembly a) { 90 Assemblies[a] = false; 94 if (a != null && Assemblies.ContainsKey(a)) 95 Assemblies[a] = false; 91 96 } 92 97 … … 132 137 Assemblies = DiscoverAssemblies(); 133 138 namespaces = new HashSet<string>(DiscoverNamespaces()); 139 Plugins = GroupAssemblies(); 140 } 141 142 private Dictionary<string, List<Assembly>> GroupAssemblies() { 143 var plugins = new Dictionary<string, List<Assembly>>(); 144 var assemblyNames = Assemblies.ToDictionary(a => a.Key.Location, a => a.Key); 145 foreach (var plugin in ApplicationManager.Manager.Plugins) { 146 var aList = new List<Assembly>(); 147 foreach (var aName in plugin.Assemblies) { 148 Assembly a; 149 assemblyNames.TryGetValue(aName, out a); 150 if (a != null) { 151 aList.Add(a); 152 assemblyNames.Remove(aName); 153 } 154 } 155 plugins[plugin.Name] = aList; 156 } 157 plugins["other"] = assemblyNames.Values.ToList(); 158 return plugins; 134 159 } 135 160 … … 248 273 foreach (var ns in Namespaces) 249 274 if (possibleNamespaces.Contains(ns)) 250 yield return ns; 275 yield return ns; 251 276 } 252 277
Note: See TracChangeset
for help on using the changeset viewer.