From dae339f4942b6f5b00bac4a6a5219df1392c711f Mon Sep 17 00:00:00 2001 From: David Sparer Date: Thu, 12 Jan 2017 09:17:34 -0700 Subject: [PATCH] moved the image getter delegate code into its imagelist since the img names have to match up. seems like a better division of responsibility --- mRemoteV1/UI/Controls/ConnectionTree.cs | 16 +++++----------- mRemoteV1/UI/Controls/NameColumn.cs | 16 ++-------------- mRemoteV1/UI/Controls/StatusImageList.cs | 17 +++++++++++++++-- 3 files changed, 22 insertions(+), 27 deletions(-) diff --git a/mRemoteV1/UI/Controls/ConnectionTree.cs b/mRemoteV1/UI/Controls/ConnectionTree.cs index 36d39e32..8c5bd336 100644 --- a/mRemoteV1/UI/Controls/ConnectionTree.cs +++ b/mRemoteV1/UI/Controls/ConnectionTree.cs @@ -22,8 +22,6 @@ namespace mRemoteNG.UI.Controls private readonly ConnectionTreeDragAndDropHandler _dragAndDropHandler = new ConnectionTreeDragAndDropHandler(); private readonly PuttySessionsManager _puttySessionsManager = PuttySessionsManager.Instance; private OLVColumn _olvNameColumn; - private ImageList _imgListTree; - public ConnectionInfo SelectedNode => (ConnectionInfo) SelectedObject; @@ -51,25 +49,21 @@ namespace mRemoteNG.UI.Controls #region ConnectionTree Setup private void SetupConnectionTreeView() { - CreateNameColumn(); - CreateImageList(); + var imageList = new StatusImageList(); + SmallImageList = imageList.GetImageList(); + CreateNameColumn(imageList.ImageGetter); LinkModelToView(); SetupDropSink(); SetEventHandlers(); } - private void CreateNameColumn() + private void CreateNameColumn(ImageGetterDelegate imageGetterDelegate) { - _olvNameColumn = new NameColumn(); + _olvNameColumn = new NameColumn(imageGetterDelegate); Columns.Add(_olvNameColumn); AllColumns.Add(_olvNameColumn); } - private void CreateImageList() - { - SmallImageList = StatusImageList.GetImageList(); - } - private void LinkModelToView() { CanExpandGetter = item => diff --git a/mRemoteV1/UI/Controls/NameColumn.cs b/mRemoteV1/UI/Controls/NameColumn.cs index ed81d16d..8903f183 100644 --- a/mRemoteV1/UI/Controls/NameColumn.cs +++ b/mRemoteV1/UI/Controls/NameColumn.cs @@ -1,30 +1,18 @@ using BrightIdeasSoftware; using mRemoteNG.Connection; -using mRemoteNG.Container; -using mRemoteNG.Tree.Root; namespace mRemoteNG.UI.Controls { public class NameColumn : OLVColumn { - public NameColumn() + public NameColumn(ImageGetterDelegate imageGetterDelegate) { AspectName = "Name"; FillsFreeSpace = true; IsButton = true; AspectGetter = item => ((ConnectionInfo) item).Name; - ImageGetter = ConnectionImageGetter; - } - - private static object ConnectionImageGetter(object rowObject) - { - if (rowObject is RootPuttySessionsNodeInfo) return "PuttySessions"; - if (rowObject is RootNodeInfo) return "Root"; - if (rowObject is ContainerInfo) return "Folder"; - var connection = rowObject as ConnectionInfo; - if (connection == null) return ""; - return connection.OpenConnections.Count > 0 ? "Play" : "Pause"; + ImageGetter = imageGetterDelegate; } } } \ No newline at end of file diff --git a/mRemoteV1/UI/Controls/StatusImageList.cs b/mRemoteV1/UI/Controls/StatusImageList.cs index 987952aa..24feb1a5 100644 --- a/mRemoteV1/UI/Controls/StatusImageList.cs +++ b/mRemoteV1/UI/Controls/StatusImageList.cs @@ -1,13 +1,16 @@ using System; using System.Windows.Forms; using mRemoteNG.App; +using mRemoteNG.Connection; +using mRemoteNG.Container; +using mRemoteNG.Tree.Root; namespace mRemoteNG.UI.Controls { public class StatusImageList { - public static ImageList GetImageList() + public ImageList GetImageList() { var imageList = new ImageList { @@ -19,7 +22,17 @@ namespace mRemoteNG.UI.Controls return imageList; } - private static void FillImageList(ImageList imageList) + public object ImageGetter(object rowObject) + { + if (rowObject is RootPuttySessionsNodeInfo) return "PuttySessions"; + if (rowObject is RootNodeInfo) return "Root"; + if (rowObject is ContainerInfo) return "Folder"; + var connection = rowObject as ConnectionInfo; + if (connection == null) return ""; + return connection.OpenConnections.Count > 0 ? "Play" : "Pause"; + } + + private void FillImageList(ImageList imageList) { try {