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; }