diff --git a/CSharp/Libraries/UniversalEditor.UserInterface/Common/Reflection.cs b/CSharp/Libraries/UniversalEditor.UserInterface/Common/Reflection.cs index 5cb69836..ab88565d 100644 --- a/CSharp/Libraries/UniversalEditor.UserInterface/Common/Reflection.cs +++ b/CSharp/Libraries/UniversalEditor.UserInterface/Common/Reflection.cs @@ -163,6 +163,7 @@ namespace UniversalEditor.UserInterface.Common return mvarAvailableEditors; } + /* private static Dictionary editorsByObjectModelType = new Dictionary(); public static IEditorImplementation[] GetAvailableEditors(ObjectModelReference objectModelReference) { @@ -185,6 +186,22 @@ namespace UniversalEditor.UserInterface.Common // editorsByObjectModelType.Clear(); return editorsByObjectModelType[objectModelReference.ObjectModelType]; } - + */ + + public static IEditorImplementation[] GetAvailableEditors(ObjectModelReference objectModelReference) + { + List list = new List(); + IEditorImplementation[] editors = GetAvailableEditors(); + foreach (IEditorImplementation editor in editors) + { + if (editor.SupportedObjectModels.Contains(objectModelReference.ObjectModelType) || editor.SupportedObjectModels.Contains(objectModelReference.ObjectModelID)) + { + Type editorType = editor.GetType (); + IEditorImplementation editor1 = (editorType.Assembly.CreateInstance(editorType.FullName) as IEditorImplementation); + list.Add(editor1); + } + } + return list.ToArray(); + } } }