mirror of
https://github.com/mRemoteNG/mRemoteNG.git
synced 2026-02-17 22:11:48 +08:00
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:
@@ -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 =>
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user