root/src/BRAINSDesigner/Form1.cs

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