private Command OpenCmdDialog(CmdEditType cmdEditType, ref FrmInputDialog inputDialog, TreeNode selectedNode) { while (inputDialog.ShowDialog() == DialogResult.OK) { Command cmd = inputDialog.GetCmdSet(); if (ChkValidCmd(cmdEditType, selectedNode, cmd) == true) { return(SetProperRunState(cmd)); } } return(null); }
private bool ChkValidCmd(CmdEditType cmdEditType, TreeNode selectedNode, Command cmd) { // Check redundant command TreeNodeCollection cmdGrp; if ((selectedNode == null) || ((cmdEditType == CmdEditType.EDIT) && (selectedNode.Level == 0))) { cmdGrp = TreeView.Nodes; } else if (cmdEditType == CmdEditType.ADD) { cmdGrp = selectedNode.Nodes; } else { cmdGrp = selectedNode.Parent.Nodes; } if (cmd.Name == "") { MessageBox.Show("커맨드 이름을 입력해주세요."); return(false); } else if (cmdEditType == CmdEditType.ADD) { if (cmdGrp.ContainsKey(cmd.Name)) { MessageBox.Show("같은 이름의 커맨드 가 존재합니다."); return(false); } else { return(true); } } else { // 같은 이름의 node라도 그게 자기 자신인 경우는 제외 TreeNode[] treeNodes = cmdGrp.Find(cmd.Name, false); if ((treeNodes.Length == 0) || (treeNodes[0] == selectedNode)) { return(true); } else { MessageBox.Show("같은 이름의 커맨드 가 존재합니다."); return(false); } } }