示例#1
0
 private void goToClassToolStripMenuItem_Click(object sender, EventArgs e)
 {
     using (var csf = new ClassSelectionForm(currentProject.Classes.OrderBy(c => c.Name)))
     {
         if (csf.ShowDialog() == DialogResult.OK)
         {
             var selectedClassNode = csf.SelectedClass;
             if (selectedClassNode != null)
             {
                 projectView.SelectedClass = selectedClassNode;
             }
         }
     }
 }
示例#2
0
        private void memoryViewControl_ChangeClassTypeClick(object sender, NodeClickEventArgs e)
        {
            var classes = CurrentProject.Classes.OrderBy(c => c.Name);

            if (e.Node is FunctionNode functionNode)
            {
                var noneClass = new ClassNode(false)
                {
                    Name = "None"
                };

                using (var csf = new ClassSelectionForm(noneClass.Yield().Concat(classes)))
                {
                    if (csf.ShowDialog() == DialogResult.OK)
                    {
                        var selectedClassNode = csf.SelectedClass;
                        if (selectedClassNode != null)
                        {
                            if (selectedClassNode == noneClass)
                            {
                                selectedClassNode = null;
                            }

                            functionNode.BelongsToClass = selectedClassNode;
                        }
                    }
                }
            }
            else if (e.Node is BaseWrapperNode refNode)
            {
                using (var csf = new ClassSelectionForm(classes))
                {
                    if (csf.ShowDialog() == DialogResult.OK)
                    {
                        var selectedClassNode = csf.SelectedClass;
                        if (refNode.CanChangeInnerNodeTo(selectedClassNode))
                        {
                            if (!refNode.GetRootWrapperNode().ShouldPerformCycleCheckForInnerNode() || IsCycleFree(e.Node.GetParentClass(), selectedClassNode))
                            {
                                refNode.ChangeInnerNode(selectedClassNode);
                            }
                        }
                    }
                }
            }
        }