From eab5a42d9332fe09eee5480554f5a3e71423c317 Mon Sep 17 00:00:00 2001 From: David Sparer Date: Fri, 27 May 2016 11:18:05 -0600 Subject: [PATCH] Refactored ConnectionTree.DeleteSelectedNode() - extracted some methods to make it more readable --- mRemoteV1/Tree/ConnectionTree.cs | 55 ++++++++++++++++++++++++-------- 1 file changed, 42 insertions(+), 13 deletions(-) diff --git a/mRemoteV1/Tree/ConnectionTree.cs b/mRemoteV1/Tree/ConnectionTree.cs index 9af19558..576159d7 100644 --- a/mRemoteV1/Tree/ConnectionTree.cs +++ b/mRemoteV1/Tree/ConnectionTree.cs @@ -38,25 +38,19 @@ namespace mRemoteNG.Tree { try { - if (SelectedNode == null) + if (!SelectedNodeIsAValidDeletionTarget()) return; - if (ConnectionTreeNode.GetNodeType(SelectedNode) == TreeNodeType.Root) - { - Runtime.MessageCollector.AddMessage(MessageClass.WarningMsg, "The root item cannot be deleted!"); - } - else if (ConnectionTreeNode.GetNodeType(SelectedNode) == TreeNodeType.Container) + if (ConnectionTreeNode.GetNodeType(SelectedNode) == TreeNodeType.Container) { if (ConnectionTreeNode.IsEmpty(SelectedNode)) { - if (Interaction.MsgBox(string.Format(Language.strConfirmDeleteNodeFolder, SelectedNode.Text), MsgBoxStyle.YesNo | MsgBoxStyle.Question, null) == MsgBoxResult.Yes) - { + if (UserConfirmsEmptyFolderDeletion()) SelectedNode.Remove(); - } } else { - if (Interaction.MsgBox(string.Format(Language.strConfirmDeleteNodeFolderNotEmpty, SelectedNode.Text), MsgBoxStyle.YesNo | MsgBoxStyle.Question, null) == MsgBoxResult.Yes) + if (UserConfirmsNonEmptyFolderDeletion()) { foreach (TreeNode tNode in SelectedNode.Nodes) { @@ -68,10 +62,8 @@ namespace mRemoteNG.Tree } else if (ConnectionTreeNode.GetNodeType(SelectedNode) == TreeNodeType.Connection) { - if (Interaction.MsgBox(string.Format(Language.strConfirmDeleteNodeConnection, SelectedNode.Text), MsgBoxStyle.YesNo | MsgBoxStyle.Question, null) == MsgBoxResult.Yes) - { + if (UserConfirmsConnectionDeletion()) SelectedNode.Remove(); - } } else { @@ -84,6 +76,43 @@ namespace mRemoteNG.Tree } } + private static bool SelectedNodeIsAValidDeletionTarget() + { + bool validDeletionTarget = true; + if (SelectedNode == null) + validDeletionTarget = false; + else if (ConnectionTreeNode.GetNodeType(SelectedNode) == TreeNodeType.Root) + { + validDeletionTarget = false; + Runtime.MessageCollector.AddMessage(MessageClass.WarningMsg, "The root item cannot be deleted!"); + } + return validDeletionTarget; + } + + private static bool UserConfirmsEmptyFolderDeletion() + { + string messagePrompt = string.Format(Language.strConfirmDeleteNodeFolder, SelectedNode.Text); + return PromptUser(messagePrompt); + } + + private static bool UserConfirmsNonEmptyFolderDeletion() + { + string messagePrompt = string.Format(Language.strConfirmDeleteNodeFolderNotEmpty, SelectedNode.Text); + return PromptUser(messagePrompt); + } + + private static bool UserConfirmsConnectionDeletion() + { + string messagePrompt = string.Format(Language.strConfirmDeleteNodeConnection, SelectedNode.Text); + return PromptUser(messagePrompt); + } + + private static bool PromptUser(string PromptMessage) + { + MsgBoxResult msgBoxResponse = Interaction.MsgBox(PromptMessage, MsgBoxStyle.YesNo | MsgBoxStyle.Question, null); + return (msgBoxResponse == MsgBoxResult.Yes); + } + public static void StartRenameSelectedNode() { if (SelectedNode != null)