void AddTypeNode(ULTypeInfo type) { var ns_list = type.Namespace.Split('.'); ItemCollection lastCollection = treeView.Items; TreeNode parentNode = null; foreach (var n in ns_list) { parentNode = FindChild <TreeNode>(lastCollection, (v) => v.HeaderText == n); if (parentNode == null) { parentNode = new TreeNode(); parentNode.HeaderText = n; lastCollection.Add(parentNode); } lastCollection = parentNode.Items; } var classNode = new TypeNodeItem(type); var bm = new BitmapImage(new Uri("Images/type.png", UriKind.RelativeOrAbsolute)); classNode.Icon = bm; parentNode.Items.Add(classNode); foreach (var m in type.Members) { AddMember(classNode, m); } }
private void treeViewTypes_AfterSelect(object sender, TreeViewEventArgs e) { propertyGrid1.SelectedObject = e.Node.Tag; if (e.Node.Tag is ULTypeInfo) { _selectedType = e.Node.Tag as ULTypeInfo; } else if (e.Node.Tag is ULMemberInfo) { _selectedType = Data.GetType((e.Node.Tag as ULMemberInfo).DeclareTypeID); } if (tabControl1.SelectedIndex == 0) { if (e.Node.Tag is ULMemberInfo) { graphEditor1.memberInfo = e.Node.Tag as ULMemberInfo; } } else if (tabControl1.SelectedIndex == 1) { UpdateCSCode(); } }
private void contextMenuStrip_TreeView_ItemClicked(object sender, ToolStripItemClickedEventArgs e) { if (e.ClickedItem == tsmi_AddType) { var form = new Form_AddType(); if (form.ShowDialog() == DialogResult.OK) { var type = new ULTypeInfo(); type.Name = form.InputName; type.Namespace = form.InputNamespace; if (Data.types.ContainsKey(type.ID)) { return; } Data.types[type.ID] = type; ResetView(); } } else if (e.ClickedItem == tsmi_AddMember && _selectedType != null) { var form = new Form_AddMember(); if (form.ShowDialog() == DialogResult.OK) { var member = new ULMemberInfo(); member.Name = form.InputName; member.TypeID = form.InputTypeID; member.DeclareTypeID = _selectedType.ID; _selectedType.Members.Add(member); ResetView(); } } else if (e.ClickedItem == tsmi_Delete) { if (treeViewTypes.SelectedNode != null) { var selectedType = treeViewTypes.SelectedNode.Tag as ULTypeInfo; if (selectedType != null) { Data.types.Remove(selectedType.ID); treeViewTypes.Nodes.Remove(treeViewTypes.SelectedNode); } else { var selectMethod = treeViewTypes.SelectedNode.Tag as ULMemberInfo; if (selectMethod != null) { Data.GetType(selectMethod.DeclareTypeID).Members.Remove(selectMethod); treeViewTypes.Nodes.Remove(treeViewTypes.SelectedNode); } } } } else if (e.ClickedItem == tsmi_Refresh) { ResetView(); } }
void UpdateTypeNode(ULTypeInfo type) { var node = FindChild <TypeNodeItem>(treeView.Items, (v) => { return(v.type.ID == type.ID); }, true); if (node != null) { node.type = type; node.Items.Clear(); foreach (var m in type.Members) { AddMember(node, m); } node.Refresh(); } }
void UpdateCode(ULTypeInfo typeInfo) { //switch (tabControl.SelectedIndex) //{ // case 0: // { // cs_richTextBox.Document.Blocks.Clear(); // Paragraph paragraph = new Paragraph(); // paragraph.Inlines.Add(new Run() { Text = ULToCS.To(typeInfo) }); // cs_richTextBox.Document.Blocks.Add(paragraph); // foreach (var k in ULToCS.keywords) // FindWordFromPosition(cs_richTextBox.Document.ContentStart, k); // } // break; // case 1: // { // lua_richTextBox.Document.Blocks.Clear(); // Paragraph paragraph = new Paragraph(); // paragraph.Inlines.Add(new Run() { Text = ULToLua.To(typeInfo) }); // lua_richTextBox.Document.Blocks.Add(paragraph); // foreach (var k in ULToLua.keywords) // FindWordFromPosition(lua_richTextBox.Document.ContentStart, k); // } // break; // case 2: // { // cpp_richTextBox.Document.Blocks.Clear(); // Paragraph paragraph = new Paragraph(); // paragraph.Inlines.Add(new Run() { Text = ULToCpp.To(typeInfo) }); // cpp_richTextBox.Document.Blocks.Add(paragraph); // //foreach (var k in ULToCpp.keywords) // // FindWordFromPosition(cpp_richTextBox.Document.ContentStart, k); // } // break; // case 3: // break; //} }
private void toolStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e) { if (e.ClickedItem == tsb_Compile) { var r = CSToUL.Convert(rtb_CSharpCode.Text); foreach (var g in r.GetChildrenTypes(r)) { Data.types[g.ID] = g; } ResetView(); if (_selectedType != null) { _selectedType = Data.GetType(_selectedType.ID); UpdateCSCode(); var nodes = treeViewTypes.Nodes.Find(_selectedType.ID, true); if (nodes.Length > 0) { treeViewTypes.SelectedNode = nodes[0]; treeViewTypes.SelectedNode.Expand(); } } } }
//public List<ULMemberInfo> memberInfos = new List<ULMemberInfo>(); public void Compile(ClassDeclarationSyntax classDeclaration) { type = new ULTypeInfo(); ExportClass(classDeclaration); }
public TypeNodeItem(ULTypeInfo t) { type = t; textBlock.Text = type.Name; }
TypeNodeItem FindTypeNode(ULTypeInfo type) { return(FindChild <TypeNodeItem>(treeView.Items, (v) => { return v.type.ID == type.ID; }, true)); }