Changeset 4068 for trunk/sources/HeuristicLab.ExtLibs/HeuristicLab.Netron/3.0.2672.12446/Netron.Diagramming.Core-3.0.2672.12446/PropertySystem/Providers/ShapeProvider.cs
- Timestamp:
- 07/22/10 00:44:01 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.ExtLibs/HeuristicLab.Netron/3.0.2672.12446/Netron.Diagramming.Core-3.0.2672.12446/PropertySystem/Providers/ShapeProvider.cs
r2768 r4068 1 1 using System; 2 using System.Collections.Generic;3 using System.Text;4 2 using System.ComponentModel; 5 namespace Netron.Diagramming.Core 6 { 3 namespace Netron.Diagramming.Core { 4 /// <summary> 5 /// Type descriptor provider for all descendants of the <see cref="ShapeBase"/> classes. 6 /// </summary> 7 class ShapeProvider : TypeDescriptionProvider { 8 #region Fields 9 7 10 /// <summary> 8 /// Type descriptor provider for all descendants of the <see cref="ShapeBase"/> classes.11 /// simple shape descriptor 9 12 /// </summary> 10 class ShapeProvider : TypeDescriptionProvider 11 { 12 #region Fields 13 14 /// <summary> 15 /// simple shape descriptor 16 /// </summary> 17 private static SimpleShapeBaseDescriptor simpleShapeBaseDescriptor; 18 /// <summary> 19 /// complex shape descriptor 20 /// </summary> 21 private static ComplexShapeBaseDescriptor complexShapeBaseDescriptor; 13 private static SimpleShapeBaseDescriptor simpleShapeBaseDescriptor; 14 /// <summary> 15 /// complex shape descriptor 16 /// </summary> 17 private static ComplexShapeBaseDescriptor complexShapeBaseDescriptor; 22 18 23 19 24 20 private static ClassShapeDescriptor classShapeDescriptor; 25 21 26 22 #endregion 27 23 28 24 #region Properties 29 25 30 26 31 27 #endregion 32 28 33 #region Constructor 34 public ShapeProvider() 35 { 36 simpleShapeBaseDescriptor = new SimpleShapeBaseDescriptor(this, typeof(SimpleShapeBase)); 37 complexShapeBaseDescriptor = new ComplexShapeBaseDescriptor(this, typeof(ComplexShapeBase)); 38 classShapeDescriptor = new ClassShapeDescriptor(this, typeof(ClassShape)); 39 } 40 #endregion 29 #region Constructor 30 public ShapeProvider() { 31 simpleShapeBaseDescriptor = new SimpleShapeBaseDescriptor(this, typeof(SimpleShapeBase)); 32 complexShapeBaseDescriptor = new ComplexShapeBaseDescriptor(this, typeof(ComplexShapeBase)); 33 classShapeDescriptor = new ClassShapeDescriptor(this, typeof(ClassShape)); 34 } 35 #endregion 41 36 42 #region Methods 43 /// <summary> 44 /// Gets a custom type descriptor for the given type and object. 45 /// </summary> 46 /// <param name="objectType">The type of object for which to retrieve the type descriptor.</param> 47 /// <param name="instance">An instance of the type. Can be null if no instance was passed to the <see cref="T:System.ComponentModel.TypeDescriptor"></see>.</param> 48 /// <returns> 49 /// An <see cref="T:System.ComponentModel.ICustomTypeDescriptor"></see> that can provide metadata for the type. 50 /// </returns> 51 public override ICustomTypeDescriptor GetTypeDescriptor(Type objectType, object instance) 52 { 53 if (typeof(SimpleShapeBase).IsInstanceOfType(instance)) 54 { 55 return simpleShapeBaseDescriptor; 56 } 57 else if (typeof(ClassShape).IsInstanceOfType(instance)) 58 { 59 return classShapeDescriptor; 60 } 61 else if (typeof(ComplexShapeBase).IsInstanceOfType(instance)) 62 { 63 return complexShapeBaseDescriptor; 64 } 65 else //if nothing found use the base descriptor 66 return base.GetTypeDescriptor(objectType, instance); 67 68 } 69 #endregion 37 #region Methods 38 /// <summary> 39 /// Gets a custom type descriptor for the given type and object. 40 /// </summary> 41 /// <param name="objectType">The type of object for which to retrieve the type descriptor.</param> 42 /// <param name="instance">An instance of the type. Can be null if no instance was passed to the <see cref="T:System.ComponentModel.TypeDescriptor"></see>.</param> 43 /// <returns> 44 /// An <see cref="T:System.ComponentModel.ICustomTypeDescriptor"></see> that can provide metadata for the type. 45 /// </returns> 46 public override ICustomTypeDescriptor GetTypeDescriptor(Type objectType, object instance) { 47 if (typeof(SimpleShapeBase).IsInstanceOfType(instance)) { 48 return simpleShapeBaseDescriptor; 49 } else if (typeof(ClassShape).IsInstanceOfType(instance)) { 50 return classShapeDescriptor; 51 } else if (typeof(ComplexShapeBase).IsInstanceOfType(instance)) { 52 return complexShapeBaseDescriptor; 53 } else //if nothing found use the base descriptor 54 return base.GetTypeDescriptor(objectType, instance); 70 55 71 56 } 57 #endregion 58 59 } 72 60 } 73 61
Note: See TracChangeset
for help on using the changeset viewer.