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);
			}
		}