public DialogResult ShowDialog(SingleInharitanceType inheritedClass) { if (inheritedClass == null) return DialogResult.None; OperationTree.Nodes.Clear(); AddOperations(inheritedClass, inheritedClass.Base); RemoveEmptyNodes(); return ShowDialog(); }
private void AddOperations(SingleInharitanceType derivedClass, SingleInharitanceType baseClass) { if (derivedClass == null || baseClass == null) return; AddOperations(derivedClass, baseClass.Base); TreeNode node = CreateClassNode(baseClass.Name); foreach (Operation operation in baseClass.OverridableOperations) { if (derivedClass.GetDefinedOperation(operation) != null) continue; RemoveSimilarNode(operation); CreateOperationNode(node, operation); } }