root/src/BRAINSDesigner/Form1.cs
| 1 | 23 | ||
|---|---|---|---|
25 | 25 | ||
26 | LoadAIBehaviorData(); | 26 | LoadAIBehaviorData(); |
27 | } | 27 | } |
28 | 28 | string assemblyPath; | |
29 | private void LoadAIBehaviorData() | 29 | private void LoadAIBehaviorData() |
30 | { | 30 | { |
31 | _assemblies = new List<Assembly>(); | 31 | _assemblies = new List<Assembly>(); |
32 | string path = Properties.Settings.Default.Behaviors; | 32 | string path = Properties.Settings.Default.Behaviors; |
33 | 33 | assemblyPath = Path.GetDirectoryName(path); | |
34 | File.Copy( | 34 | //File.Copy( |
35 | path, | 35 | // path, |
36 | Application.StartupPath +"\\"+ Path.GetFileName(path),true); | 36 | // Application.StartupPath +"\\"+ Path.GetFileName(path),true); |
37 | 37 | ||
38 | LoadAssembly(Application.StartupPath + "\\" + "AIFramework.dll"); | 38 | AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve); |
39 | LoadAssembly(Application.StartupPath + "\\" + Path.GetFileName(path)); | 39 | LoadAssembly(Application.StartupPath + "\\" + "Brains.Framework.dll"); |
40 | LoadAssembly(path); | ||
40 | 41 | ||
41 | } | 42 | } |
42 | 43 | ||
44 | Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args) | ||
45 | { | ||
46 | Console.Write(""); | ||
47 | return null; | ||
48 | } | ||
49 | |||
43 | private void LoadAssembly(string file) | 50 | private void LoadAssembly(string file) |
44 | { | 51 | { |
45 | try | 52 | try |
... | ... | ||
118 | ((BehaviorNode)treeView1.SelectedNode.Tag).SubBehaviors.Add(_node); | 125 | ((BehaviorNode)treeView1.SelectedNode.Tag).SubBehaviors.Add(_node); |
119 | treeView1.SelectedNode.Nodes.Add(_newTreeNode); | 126 | treeView1.SelectedNode.Nodes.Add(_newTreeNode); |
120 | treeView1.SelectedNode.Expand(); | 127 | treeView1.SelectedNode.Expand(); |
128 | behaviorTreeViewer1.Invalidate(); | ||
121 | 129 | ||
122 | } | 130 | } |
123 | } | 131 | } |
... | ... | ||
128 | _rootNode = new BehaviorNode(); | 136 | _rootNode = new BehaviorNode(); |
129 | _rootNode.Name = "Behavior"; | 137 | _rootNode.Name = "Behavior"; |
130 | _rootNode.AddParameter("RootType", ""); | 138 | _rootNode.AddParameter("RootType", ""); |
139 | _rootNode.BehaviorName = "Root"; | ||
131 | 140 | ||
132 | TreeNode _rootBehaviorNode = new TreeNode(_rootNode.Name); | 141 | TreeNode _rootBehaviorNode = new TreeNode(_rootNode.Name); |
133 | _rootBehaviorNode.Tag = _rootNode; | 142 | _rootBehaviorNode.Tag = _rootNode; |
134 | treeView1.Nodes.Add(_rootBehaviorNode); | 143 | treeView1.Nodes.Add(_rootBehaviorNode); |
135 | 144 | ||
145 | behaviorTreeViewer1.rootBehavior = _rootNode; | ||
136 | 146 | ||
137 | |||
138 | } | 147 | } |
139 | 148 | ||
140 | 149 | ||
... | ... | ||
143 | TreeNode _no = new TreeNode(name); | 152 | TreeNode _no = new TreeNode(name); |
144 | BehaviorNode _n = new BehaviorNode(); | 153 | BehaviorNode _n = new BehaviorNode(); |
145 | _n.Name = name; | 154 | _n.Name = name; |
155 | if(type!=null) | ||
156 | _n.BehaviorName = type.Name; | ||
146 | _n.Type =type; | 157 | _n.Type =type; |
147 | _no.Tag = _n; | 158 | _no.Tag = _n; |
148 | return _no; | 159 | return _no; |
... | ... | ||
227 | 238 | ||
228 | private void treeView1_AfterSelect(object sender, TreeViewEventArgs e) | 239 | private void treeView1_AfterSelect(object sender, TreeViewEventArgs e) |
229 | { | 240 | { |
230 | TreeNode node = treeView1.SelectedNode; | 241 | |
231 | splitContainer1.Panel2.Controls.Clear(); | 242 | propertyGrid1.SelectedObject = treeView1.SelectedNode.Tag; |
232 | BehaviorNode _node=node.Tag as BehaviorNode; | 243 | //TreeNode node = treeView1.SelectedNode; |
233 | Point _controlPosition = new Point(15, 25); | 244 | //splitContainer1.Panel2.Controls.Clear(); |
234 | int gap = 25; | 245 | //BehaviorNode _node=node.Tag as BehaviorNode; |
235 | foreach (var item in _node.Parameters) | 246 | //Point _controlPosition = new Point(15, 25); |
236 | { | 247 | //int gap = 25; |
237 | Label label = new Label(); | 248 | //foreach (var item in _node.Parameters) |
238 | label.AutoSize = true; | 249 | //{ |
239 | label.Text = item.Name; | 250 | // Label label = new Label(); |
240 | label.Location = _controlPosition; | 251 | // label.AutoSize = true; |
252 | // label.Text = item.Name; | ||
253 | // label.Location = _controlPosition; | ||
241 | 254 | ||
242 | splitContainer1.Panel2.Controls.Add(label); | 255 | // splitContainer1.Panel2.Controls.Add(label); |
243 | Control ctrl = CreateParameterControl(item); | 256 | // Control ctrl = CreateParameterControl(item); |
244 | ctrl.Location = new Point(_controlPosition.X + 60, _controlPosition.Y-2); | 257 | // ctrl.Location = new Point(_controlPosition.X + 60, _controlPosition.Y-2); |
245 | splitContainer1.Panel2.Controls.Add(ctrl); | 258 | // splitContainer1.Panel2.Controls.Add(ctrl); |
246 | _controlPosition.Y += gap; | 259 | // _controlPosition.Y += gap; |
247 | 260 | ||
248 | 261 | ||
249 | } | 262 | //} |
250 | } | 263 | } |
251 | 264 | ||
252 | private Control CreateParameterControl(Parameter item) | 265 | private Control CreateParameterControl(Parameter item) |
... | ... | ||
262 | { | 275 | { |
263 | ((Parameter)((Control)sender).Tag).Value = ((TextBox)sender).Text; | 276 | ((Parameter)((Control)sender).Tag).Value = ((TextBox)sender).Text; |
264 | } | 277 | } |
278 | |||
279 | private void propertyGrid1_Click(object sender, EventArgs e) | ||
280 | { | ||
281 | |||
282 | } | ||
283 | |||
284 | private void propertyGrid1_PropertyValueChanged(object s, PropertyValueChangedEventArgs e) | ||
285 | { | ||
286 | RefreshTreeNode(); | ||
287 | } | ||
288 | |||
289 | private void RefreshTreeNode() | ||
290 | { | ||
291 | if (((BehaviorNode)treeView1.SelectedNode.Tag).BehaviorName != null) | ||
292 | treeView1.SelectedNode.Text = ((BehaviorNode)treeView1.SelectedNode.Tag).BehaviorName; | ||
293 | else if (((BehaviorNode)treeView1.SelectedNode.Tag).Type != null) | ||
294 | treeView1.SelectedNode.Text = ((BehaviorNode)treeView1.SelectedNode.Tag).Type.Name; | ||
295 | else | ||
296 | treeView1.SelectedNode.Text = "Root"; | ||
297 | } | ||
265 | } | 298 | } |
266 | } | 299 | } |
Download diff