2 using System.Collections.Generic;
 
    6 using System.Windows.Controls;
 
    7 using System.Windows.Data;
 
    8 using System.Windows.Documents;
 
    9 using System.Windows.Input;
 
   10 using System.Windows.Media;
 
   11 using System.Windows.Media.Imaging;
 
   12 using System.Windows.Navigation;
 
   13 using System.Windows.Shapes;
 
   14 using SiliconStudio.Paradox.Framework.ViewModel;
 
   15 using System.Reflection;
 
   16 using System.Globalization;
 
   17 using System.Diagnostics;
 
   18 using SiliconStudio.Paradox.Framework.Diagnostics;
 
   19 using SiliconStudio.Paradox.EntityModel;
 
   20 using System.ComponentModel;
 
   21 using SiliconStudio.Paradox.DebugTools.ViewModels;
 
   22 using System.Collections;
 
   23 using SiliconStudio.Presentation.Extensions;
 
   25 namespace SiliconStudio.
Paradox.DebugTools
 
   34             InitializeComponent();
 
   36             MyDateTime now = MyDateTime.FromDateTime(DateTime.Now);
 
   40                 CreateComponent(
"DateTime", now),
 
   44             this.DataContext = 
this;
 
   47         public object Components { 
get; 
private set; }
 
   49         private IViewModelNode CreateProperty(
object obj)
 
   51             var context = 
new ViewModelContext();
 
   52             var contextUI = 
new ViewModelContext();
 
   54             context.ChildrenPropertyEnumerators.Add(
new ChildrenPropertyInfoEnumerator());
 
   57             var testModel = 
new ViewModelNode(
"Root", obj);
 
   59             var view = ObservableViewModelNode.CreateObservableViewModel(contextUI, testModel);
 
   61             ObservableViewModelNode.Refresh(contextUI, context, 
new ViewModelState());
 
   66         private Component CreateComponent(
string name, 
object content)
 
   71                 Properties = 
new IViewModelNode[] { CreateProperty(content) },
 
   79         private static DataTemplate errorTemplate;
 
   80         private static DataTemplate componentTemplate;
 
   81         private static DataTemplate viewModelTemplate;
 
   82         private static DataTemplate textTemplate;
 
   86             DataTemplate 
template = null;
 
   88             var element = container as FrameworkElement;
 
   90                 throw new Exception(
"Container must be of type FrameworkElement");
 
   92             if (item is ViewModelReference && ((ViewModelReference)item).ViewModel.PropertyName == 
"EntityComponent")
 
   94                 if (componentTemplate == null)
 
   95                     componentTemplate = (DataTemplate)element.FindResource(
"EntityComponentView");
 
   96                 template = componentTemplate;
 
   98             else if (item is ViewModelReference)
 
  100                 return (DataTemplate)element.FindResource(
"ViewModelReference");
 
  102             else if (item is IViewModelNode)
 
  104                 var viewModel = (IViewModelNode)item;
 
  106                 if (viewModel.Children.Count > 0)
 
  108                     if (viewModelTemplate == null)
 
  109                         viewModelTemplate = (DataTemplate)element.FindResource(
"IViewModelNode");
 
  110                     template = viewModelTemplate;
 
  112                 else if (viewModel.Type == typeof(ViewModelReference))
 
  114                     if (viewModel.PropertyName == 
"ObjectRef")
 
  115                         template = (DataTemplate)element.FindResource(
"ViewModelReferenceNode");
 
  117                         template = (DataTemplate)element.FindResource(
"ViewModelReferenceGuid");
 
  119                 else if (viewModel.Type == typeof(IList<ViewModelReference>))
 
  121                     template = (DataTemplate)element.FindResource(
"ListViewModelReference");
 
  125                     if (textTemplate == null)
 
  126                         textTemplate = (DataTemplate)element.FindResource(
"TextBox");
 
  127                     template = textTemplate;
 
  131             if (
template == null)
 
  133                 if (errorTemplate == null)
 
  134                     errorTemplate = (DataTemplate)element.FindResource(
"Error");
 
  135                 template = errorTemplate;
 
  144         public string Name { 
get; set; }
 
  151         public float M11 { 
get; set; }
 
  152         public float M12 { 
get; set; }
 
  153         public float M13 { 
get; set; }
 
  154         public float M14 { 
get; set; }
 
  156         public float M21 { 
get; set; }
 
  157         public float M22 { 
get; set; }
 
  158         public float M23 { 
get; set; }
 
  159         public float M24 { 
get; set; }
 
  161         public float M31 { 
get; set; }
 
  162         public float M32 { 
get; set; }
 
  163         public float M33 { 
get; set; }
 
  164         public float M34 { 
get; set; }
 
  166         public float M41 { 
get; set; }
 
  167         public float M42 { 
get; set; }
 
  168         public float M43 { 
get; set; }
 
  169         public float M44 { 
get; set; }