Changeset 5850 for trunk/sources
- Timestamp:
- 03/28/11 19:12:31 (14 years ago)
- Location:
- trunk/sources
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Algorithms.DataAnalysis.Views/3.4/CrossValidationView.cs
r5837 r5850 21 21 22 22 using System; 23 using System.Collections.Generic; 23 24 using System.Linq; 24 25 using System.Windows.Forms; … … 252 253 if (error != null) throw error; 253 254 IAlgorithm algorithm = content as IAlgorithm; 254 if (algorithm == null || !(algorithm.Problem is IDataAnalysisProblem <IDataAnalysisProblemData>))255 if (algorithm == null || !(algorithm.Problem is IDataAnalysisProblem)) 255 256 MessageBox.Show(this, "The selected file does not contain an algorithm or the problem of the algorithm is not a DataAnalysisProblem.", "Invalid File", MessageBoxButtons.OK, MessageBoxIcon.Error); 256 257 else … … 274 275 problemTypeSelectorDialog.Caption = "Select Problem"; 275 276 problemTypeSelectorDialog.TypeSelector.Caption = "Available Problems"; 276 problemTypeSelectorDialog.TypeSelector.Configure(Content.ProblemType, false, true);277 }277 } 278 problemTypeSelectorDialog.TypeSelector.Configure(new List<Type>() { Content.ProblemType, Content.Algorithm.ProblemType }, false, true); 278 279 if (problemTypeSelectorDialog.ShowDialog(this) == DialogResult.OK) { 279 try { 280 Content.Problem = (IDataAnalysisProblem)problemTypeSelectorDialog.TypeSelector.CreateInstanceOfSelectedType(); 281 } 282 catch (Exception ex) { 283 ErrorHandling.ShowErrorDialog(this, ex); 284 } 280 Content.Problem = (IDataAnalysisProblem)problemTypeSelectorDialog.TypeSelector.CreateInstanceOfSelectedType(); 285 281 } 286 282 } -
trunk/sources/HeuristicLab.Core.Views/3.3/TypeSelector.cs
r5848 r5850 35 35 protected TypeSelectorDialog typeSelectorDialog; 36 36 37 protected Type baseType;38 public Type BaseType{39 get { return baseType ; }37 protected IEnumerable<Type> baseTypes; 38 public IEnumerable<Type> BaseTypes { 39 get { return baseTypes; } 40 40 } 41 41 protected bool showNotInstantiableTypes; … … 86 86 87 87 public virtual void Configure(Type baseType, bool showNotInstantiableTypes, bool showGenericTypes) { 88 if (baseType == null) throw new ArgumentNullException(); 88 Configure(new List<Type>() { baseType }, showNotInstantiableTypes, showGenericTypes); 89 } 90 91 public virtual void Configure(IEnumerable<Type> baseTypes, bool showNotInstantiableTypes, bool showGenericTypes) { 92 if (baseTypes == null) throw new ArgumentNullException(); 89 93 if (InvokeRequired) 90 Invoke(new Action< Type, bool, bool>(Configure), baseType, showNotInstantiableTypes, showGenericTypes);94 Invoke(new Action<IEnumerable<Type>, bool, bool>(Configure), baseTypes, showNotInstantiableTypes, showGenericTypes); 91 95 else { 92 this.baseType = baseType;96 this.baseTypes = baseTypes; 93 97 this.showNotInstantiableTypes = showNotInstantiableTypes; 94 98 this.showGenericTypes = showGenericTypes; … … 115 119 pluginNode.Tag = plugin; 116 120 117 var types = from t in ApplicationManager.Manager.GetTypes(BaseType , plugin, ShowNotInstantiableTypes)121 var types = from t in ApplicationManager.Manager.GetTypes(BaseTypes, plugin, ShowNotInstantiableTypes) 118 122 orderby t.Name ascending 119 123 select t; … … 252 256 } 253 257 Type param = typeParametersListView.SelectedItems[0].Tag as Type; 254 Type[] con traints = param.GetGenericParameterConstraints();258 Type[] constraints = param.GetGenericParameterConstraints(); 255 259 bool showNotInstantiableTypes = !param.GenericParameterAttributes.HasFlag(GenericParameterAttributes.DefaultConstructorConstraint); 256 typeSelectorDialog.TypeSelector.Configure( typeof(IItem), showNotInstantiableTypes, true);260 typeSelectorDialog.TypeSelector.Configure(constraints, showNotInstantiableTypes, true); 257 261 258 262 if (typeSelectorDialog.ShowDialog(this) == DialogResult.OK) { -
trunk/sources/HeuristicLab.PluginInfrastructure/3.3/DefaultApplicationManager.cs
r5741 r5850 225 225 } 226 226 227 internal static IEnumerable<Type> GetTypes(IEnumerable<Type> types, bool onlyInstantiable, bool allTypes) { 228 IEnumerable<Type> result = GetTypes(types.First(), onlyInstantiable); 229 foreach (Type type in types.Skip(1)) { 230 IEnumerable<Type> discoveredTypes = GetTypes(type, onlyInstantiable); 231 if (allTypes) result = result.Intersect(discoveredTypes); 232 else result = result.Union(discoveredTypes); 233 } 234 235 if (!allTypes) return result.Distinct(); 236 return result; 237 } 238 227 239 /// <summary> 228 240 /// Finds all types that are subtypes or equal to the specified type if they are part of the given … … 243 255 } 244 256 257 internal static IEnumerable<Type> GetTypes(IEnumerable<Type> types, IPluginDescription pluginDescription, bool onlyInstantiable, bool allTypes) { 258 IEnumerable<Type> result = GetTypes(types.First(), pluginDescription, onlyInstantiable); 259 foreach (Type type in types.Skip(1)) { 260 IEnumerable<Type> discoveredTypes = GetTypes(type, pluginDescription, onlyInstantiable); 261 if (allTypes) result = result.Intersect(discoveredTypes); 262 else result = result.Union(discoveredTypes); 263 } 264 265 if (!allTypes) return result.Distinct(); 266 return result; 267 } 268 245 269 private static bool IsDynamicAssembly(Assembly asm) { 246 270 return (asm is System.Reflection.Emit.AssemblyBuilder) || string.IsNullOrEmpty(asm.Location); … … 314 338 } 315 339 316 IEnumerable<Type> IApplicationManager.GetTypes(Type type) {317 return GetTypes(type, true);318 }319 320 340 IEnumerable<Type> IApplicationManager.GetTypes(Type type, bool onlyInstantiable) { 321 341 return GetTypes(type, onlyInstantiable); 322 342 } 323 324 IEnumerable<Type> IApplicationManager.GetTypes(Type type, IPluginDescription plugin) { 325 return GetTypes(type, plugin, true); 343 IEnumerable<Type> IApplicationManager.GetTypes(IEnumerable<Type> types, bool onlyInstantiable, bool allTypes) { 344 return GetTypes(types, onlyInstantiable, allTypes); 326 345 } 327 346 328 347 IEnumerable<Type> IApplicationManager.GetTypes(Type type, IPluginDescription plugin, bool onlyInstantiable) { 329 348 return GetTypes(type, plugin, onlyInstantiable); 349 } 350 IEnumerable<Type> IApplicationManager.GetTypes(IEnumerable<Type> types, IPluginDescription plugin, bool onlyInstantiable, bool allTypes) { 351 return GetTypes(types, plugin, onlyInstantiable, allTypes); 330 352 } 331 353 -
trunk/sources/HeuristicLab.PluginInfrastructure/3.3/Interfaces/IApplicationManager.cs
r5445 r5850 56 56 /// </summary> 57 57 /// <param name="type">The type to discover.</param> 58 /// <param name="onlyInstantiable">Return only types that are instantiable (instance, abstract... are not returned)</param> 58 59 /// <returns>An enumerable of discovered types.</returns> 59 IEnumerable<Type> GetTypes(Type type );60 IEnumerable<Type> GetTypes(Type type, bool onlyInstantiable = true); 60 61 61 62 /// <summary> 62 /// Discovers all types implementing or inheriting <paramref name="type"/> (directly and indirectly).63 /// Discovers all types implementing or inheriting all or any type in <paramref name="types"/> (directly and indirectly). 63 64 /// </summary> 64 /// <param name="type ">The typeto discover.</param>65 /// <param name="types">The types to discover.</param> 65 66 /// <param name="onlyInstantiable">Return only types that are instantiable (instance, abstract... are not returned)</param> 67 /// <param name="allTypes">Specifies if discovered types must implement or inherit all given <paramref name="types"/>.</param> 66 68 /// <returns>An enumerable of discovered types.</returns> 67 IEnumerable<Type> GetTypes(Type type, bool onlyInstantiable); 68 69 /// <summary> 70 /// Discovers all types implementing or inheriting <paramref name="type"/> (directly and indirectly) that are declaed in any assembly of <paramref name="plugin"/>. 71 /// </summary> 72 /// <param name="type">The type to discover.</param> 73 /// <param name="plugin">The declaring plugin.</param> 74 /// <returns>An enumerable of discovered types.</returns> 75 IEnumerable<Type> GetTypes(Type type, IPluginDescription plugin); 69 IEnumerable<Type> GetTypes(IEnumerable<Type> types, bool onlyInstantiable = true, bool allTypes = true); 76 70 77 71 /// <summary> … … 82 76 /// <param name="onlyInstantiable">Return only types that are instantiable (instance, abstract... are not returned)</param> 83 77 /// <returns>An enumerable of discovered types.</returns> 84 IEnumerable<Type> GetTypes(Type type, IPluginDescription plugin, bool onlyInstantiable); 78 IEnumerable<Type> GetTypes(Type type, IPluginDescription plugin, bool onlyInstantiable = true); 79 80 /// <summary> 81 /// Discovers all types implementing or inheriting all or any type in <paramref name="types"/> (directly and indirectly) that are declaed in any assembly of <paramref name="plugin"/>. 82 /// </summary> 83 /// <param name="types">The types to discover.</param> 84 /// <param name="plugin">The declaring plugin.</param> 85 /// <param name="onlyInstantiable">Return only types that are instantiable (instance, abstract... are not returned)</param> 86 /// /// <param name="allTypes">Specifies if discovered types must implement or inherit all given <paramref name="types"/>.</param> 87 /// <returns>An enumerable of discovered types.</returns> 88 IEnumerable<Type> GetTypes(IEnumerable<Type> types, IPluginDescription plugin, bool onlyInstantiable = true, bool allTypes = true); 85 89 86 90 /// <summary> -
trunk/sources/HeuristicLab.PluginInfrastructure/3.3/LightweightApplicationManager.cs
r5741 r5850 82 82 } 83 83 84 85 /// <summary> 86 /// Finds all instantiable types that are subtypes or equal to the specified type. 87 /// </summary> 88 /// <param name="type">Most general type for which to find matching types.</param> 84 /// <summary> 85 /// Finds all instantiable types that are subtypes or equal to the specified types. 86 /// </summary> 87 /// <param name="types">Most general types for which to find matching types.</param> 89 88 /// <remarks>Return only types that are instantiable 90 89 /// (interfaces, abstract classes... are not returned)</remarks> 91 90 /// <returns>Enumerable of the discovered types.</returns> 92 public IEnumerable<Type> GetTypes(Type type) { 93 return GetTypes(type, true); 91 public IEnumerable<Type> GetTypes(IEnumerable<Type> types, bool onlyInstantiable = true, bool allTypes = true) { 92 IEnumerable<Type> result = GetTypes(types.First(), onlyInstantiable); 93 foreach (Type type in types.Skip(1)) { 94 IEnumerable<Type> discoveredTypes = GetTypes(type, onlyInstantiable); 95 if (allTypes) result = result.Intersect(discoveredTypes); 96 else result = result.Union(discoveredTypes); 97 } 98 99 if (!allTypes) return result.Distinct(); 100 return result; 94 101 } 95 102 … … 101 108 /// (interfaces, abstract classes... are not returned)</param> 102 109 /// <returns>Enumerable of the discovered types.</returns> 103 public IEnumerable<Type> GetTypes(Type type, bool onlyInstantiable ) {110 public IEnumerable<Type> GetTypes(Type type, bool onlyInstantiable = true) { 104 111 return from asm in AppDomain.CurrentDomain.GetAssemblies() 105 112 from t in GetTypes(type, asm, onlyInstantiable) … … 115 122 /// (interfaces, abstract classes... are not returned)</param> 116 123 /// <returns>Enumerable of the discovered types.</returns> 117 private static IEnumerable<Type> GetTypes(Type type, Assembly assembly, bool onlyInstantiable ) {124 private static IEnumerable<Type> GetTypes(Type type, Assembly assembly, bool onlyInstantiable = true) { 118 125 try { 119 126 var assemblyTypes = assembly.GetTypes(); … … 175 182 /// <returns></returns> 176 183 /// <throws>NotSupportedException</throws> 177 public IEnumerable<Type> GetTypes(Type type, IPluginDescription plugin, bool onlyInstantiable) { 184 public IEnumerable<Type> GetTypes(Type type, IPluginDescription plugin, bool onlyInstantiable = true) { 185 throw new NotSupportedException("LightweightApplicationManager doesn't support type discovery for plugins."); 186 } 187 188 /// <summary> 189 /// Not supported by the LightweightApplicationManager 190 /// </summary> 191 /// <param name="type"></param> 192 /// <param name="plugin"></param> 193 /// <param name="onlyInstantiable"></param> 194 /// <returns></returns> 195 /// <throws>NotSupportedException</throws> 196 public IEnumerable<Type> GetTypes(IEnumerable<Type> types, IPluginDescription plugin, bool onlyInstantiable = true, bool allTypes = true) { 178 197 throw new NotSupportedException("LightweightApplicationManager doesn't support type discovery for plugins."); 179 198 }
Note: See TracChangeset
for help on using the changeset viewer.