moved the image getter delegate code into its imagelist since the img names have to match up. seems like a better division of responsibility

This commit is contained in:
David Sparer
2017-01-12 09:17:34 -07:00
parent 5bcb59f876
commit dae339f494
3 changed files with 22 additions and 27 deletions

View File

@@ -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 =>

View File

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

View File

@@ -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
{