mirror of
https://github.com/mRemoteNG/mRemoteNG.git
synced 2026-02-17 22:11:48 +08:00
87 lines
2.3 KiB
C#
87 lines
2.3 KiB
C#
using System;
|
|
using System.ComponentModel;
|
|
using mRemoteNG.Connection;
|
|
using mRemoteNG.Container;
|
|
using mRemoteNG.Tools;
|
|
|
|
|
|
namespace mRemoteNG.Tree.Root
|
|
{
|
|
[DefaultProperty("Name")]
|
|
public class RootNodeInfo : ContainerInfo
|
|
{
|
|
private string _name;
|
|
private string _customPassword = "";
|
|
|
|
public RootNodeInfo(RootNodeType rootType, string uniqueId)
|
|
: base(uniqueId)
|
|
{
|
|
_name = Language.strConnections;
|
|
Type = rootType;
|
|
}
|
|
|
|
public RootNodeInfo(RootNodeType rootType)
|
|
: this(rootType, Guid.NewGuid().ToString())
|
|
{
|
|
}
|
|
|
|
#region Public Properties
|
|
|
|
[LocalizedAttributes.LocalizedCategory("strCategoryDisplay"),
|
|
Browsable(true),
|
|
LocalizedAttributes.LocalizedDefaultValue("strConnections"),
|
|
LocalizedAttributes.LocalizedDisplayName("strPropertyNameName"),
|
|
LocalizedAttributes.LocalizedDescription("strPropertyDescriptionName")]
|
|
public override string Name
|
|
{
|
|
get { return _name; }
|
|
set { _name = value; }
|
|
}
|
|
|
|
[LocalizedAttributes.LocalizedCategory("strCategoryDisplay"),
|
|
Browsable(true),
|
|
LocalizedAttributes.LocalizedDisplayName("strPasswordProtect"),
|
|
TypeConverter(typeof(MiscTools.YesNoTypeConverter))]
|
|
public new bool Password { get; set; }
|
|
|
|
[Browsable(false)]
|
|
public string PasswordString
|
|
{
|
|
get
|
|
{
|
|
return Password ? _customPassword : DefaultPassword;
|
|
}
|
|
set
|
|
{
|
|
_customPassword = value;
|
|
Password = !string.IsNullOrEmpty(value) && _customPassword != DefaultPassword;
|
|
}
|
|
}
|
|
|
|
[Browsable(false)]
|
|
public string DefaultPassword { get; } = "mR3m";
|
|
|
|
[Browsable(false)]
|
|
public RootNodeType Type {get; set;}
|
|
|
|
public override TreeNodeType GetTreeNodeType()
|
|
{
|
|
return Type == RootNodeType.Connection
|
|
? TreeNodeType.Root
|
|
: TreeNodeType.PuttyRoot;
|
|
}
|
|
#endregion
|
|
|
|
public override void AddChildAt(ConnectionInfo newChildItem, int index)
|
|
{
|
|
newChildItem.Inheritance.DisableInheritance();
|
|
base.AddChildAt(newChildItem, index);
|
|
}
|
|
|
|
public override void RemoveChild(ConnectionInfo removalTarget)
|
|
{
|
|
removalTarget.Inheritance.EnableInheritance();
|
|
base.RemoveChild(removalTarget);
|
|
}
|
|
}
|
|
} |