Beispiel #1
0
        protected override void OnAfterSelect(TreeViewEventArgs e)
        {
            if (_noSelectCounter > 0)
            {
                return;
            }
            RdcTreeNode rdcTreeNode = base.SelectedNode as RdcTreeNode;

            if (rdcTreeNode != null)
            {
                ServerBase serverBase = rdcTreeNode as ServerBase;
                if (serverBase != null)
                {
                    if (serverBase.IsClientUndocked || !serverBase.IsClientFullScreen)
                    {
                        serverBase.ServerNode.SetNormalView();
                    }
                    if (!Helpers.IsControlKeyPressed && Program.Preferences.FocusOnClick && e.Action == TreeViewAction.ByMouse && serverBase.IsConnected)
                    {
                        SetDelayedFocusServer(serverBase);
                    }
                }
                if (!rdcTreeNode.IsVisible)
                {
                    rdcTreeNode.EnsureVisible();
                }
                rdcTreeNode.Show();
            }
            Program.TheForm.SetTitle();
            base.OnAfterSelect(e);
        }
Beispiel #2
0
        public static RuleGroup Create(XmlNode xmlNode, RdcTreeNode node, ICollection <string> errors)
        {
            RuleGroup ruleGroup = new RuleGroup();

            ruleGroup.ReadXml(xmlNode, node, errors);
            return(ruleGroup);
        }
Beispiel #3
0
 public static void VisitParents(this RdcTreeNode node, Action <RdcTreeNode> callback)
 {
     for (RdcTreeNode rdcTreeNode = node.Parent as RdcTreeNode; rdcTreeNode != null; rdcTreeNode = (rdcTreeNode.Parent as RdcTreeNode))
     {
         callback(rdcTreeNode);
     }
 }
Beispiel #4
0
        public static Rule Create(XmlNode xmlNode, RdcTreeNode node, ICollection <string> errors)
        {
            Rule rule = new Rule();

            rule.ReadXml(xmlNode, node, errors);
            return(rule);
        }
Beispiel #5
0
 public static void VisitNodeAndParents(this RdcTreeNode node, Func <RdcTreeNode, NodeVisitorResult> callback)
 {
     if (callback(node) == NodeVisitorResult.Continue)
     {
         node.VisitParents(callback);
     }
 }
Beispiel #6
0
 public void ConfirmRemove(RdcTreeNode node, bool askUser)
 {
     if (node.ConfirmRemove(askUser))
     {
         RemoveNode(node);
     }
 }
Beispiel #7
0
        public virtual void CreateControls(RdcTreeNode settings)
        {
            LogonCredentialsTabPage       logonCredentialsTabPage       = (LogonCredentialsTabPage)settings.LogonCredentials.CreateTabPage(this);
            LogonCredentialsDialogOptions logonCredentialsDialogOptions = LogonCredentialsDialogOptions.ShowProfiles;

            if (settings.LogonCredentials.InheritSettingsType.Mode != InheritanceMode.Disabled)
            {
                logonCredentialsDialogOptions |= LogonCredentialsDialogOptions.AllowInheritance;
            }
            logonCredentialsTabPage.CreateControls(logonCredentialsDialogOptions);
            AddTabPage(logonCredentialsTabPage);
            GatewaySettingsTabPage gatewaySettingsTabPage = (GatewaySettingsTabPage)settings.GatewaySettings.CreateTabPage(this);

            logonCredentialsDialogOptions = LogonCredentialsDialogOptions.ShowProfiles;
            if (settings.GatewaySettings.InheritSettingsType.Mode != InheritanceMode.Disabled)
            {
                logonCredentialsDialogOptions |= LogonCredentialsDialogOptions.AllowInheritance;
            }
            gatewaySettingsTabPage.CreateControls(logonCredentialsDialogOptions);
            AddTabPage(gatewaySettingsTabPage);
            AddTabPage(settings.ConnectionSettings.CreateTabPage(this));
            AddTabPage(settings.RemoteDesktopSettings.CreateTabPage(this));
            AddTabPage(settings.LocalResourceSettings.CreateTabPage(this));
            AddTabPage(settings.SecuritySettings.CreateTabPage(this));
            AddTabPage(settings.DisplaySettings.CreateTabPage(this));
            InitButtons();
            this.ScaleAndLayout();
            settings.InheritSettings();
            settings.ResolveCredentials();
        }
        private void CreateServerPropertiesPage(RdcTreeNode settings)
        {
            ServerPropertiesTabPage page = (ServerPropertiesTabPage)(base.PropertiesPage = (settings.Properties.CreateTabPage(this) as ServerPropertiesTabPage));

            AddTabPage(page);
            base.PropertiesPage.ParentGroupChanged += base.PopulateCredentialsProfiles;
        }
        private void CreateImportServersPage(RdcTreeNode settings)
        {
            ImportServersPropertiesPage page = (ImportServersPropertiesPage)(base.PropertiesPage = new ImportServersPropertiesPage(this));

            AddTabPage(page);
            base.PropertiesPage.ParentGroupChanged += base.PopulateCredentialsProfiles;
        }
Beispiel #10
0
 public void AddNode(RdcTreeNode node, GroupBase parent)
 {
     if (node == null)
     {
         throw new ArgumentNullException("node");
     }
     if (!(node is ServerBase) && !(node is GroupBase))
     {
         throw new ArgumentOutOfRangeException("node", "Node must derive from ServerBase or GroupBase");
     }
     if (parent == null)
     {
         throw new ArgumentNullException("parent");
     }
     if (parent == RootNode)
     {
         base.Nodes.Add(node);
     }
     else
     {
         parent.Nodes.Add(node);
         this.SortGroup(parent);
     }
     OnGroupChanged(parent, ChangeType.TreeChanged);
 }
Beispiel #11
0
 public InheritanceControl(TabbedSettingsDialog dialog, string settingsGroupName)
 {
     _dialog            = dialog;
     _settingsGroupName = settingsGroupName;
     _sourceNode        = DefaultSettingsGroup.Instance;
     _enabled           = true;
 }
Beispiel #12
0
        public override bool HandleMove(RdcTreeNode childNode)
        {
            ReconnectServerRef reconnectServerRef = AddReference(childNode as ServerBase);

            reconnectServerRef.Start(removeAfterConnection: false);
            return(true);
        }
Beispiel #13
0
        public override void ReadXml(XmlNode xmlNode, RdcTreeNode node)
        {
            XmlNode firstChild = xmlNode.FirstChild;

            if (firstChild == null)
            {
                Value = string.Empty;
            }
            else
            {
                Value = firstChild.InnerText;
            }
            try
            {
                XmlNode xmlNode2 = xmlNode.Attributes["storeAsClearText"];
                if (xmlNode2 != null && bool.Parse(xmlNode2.InnerText))
                {
                    node.Password.IsDecrypted = true;
                }
                else if (xmlNode.ParentNode.Name != "credentialsProfile")
                {
                    Encryption.DeferDecryption(this, node, xmlNode.GetFullPath());
                }
            }
            catch
            {
            }
        }
Beispiel #14
0
 public void OnContextMenu(ContextMenuStrip contextMenuStrip, RdcMan.RdcTreeNode node)
 {
     //if (node != null)
     //{
     //    contextMenuStrip.Items.Insert(0, new DelegateMenuItem("Disconnect", MenuNames.SessionDisconnect, new Action(node.Disconnect)));
     //}
 }
Beispiel #15
0
        internal void ReadXml(XmlNode xmlNode, RdcTreeNode node, ICollection <string> errors)
        {
            InheritanceMode result = InheritSettingsType.Mode;

            if (result != InheritanceMode.Disabled)
            {
                try
                {
                    string value = xmlNode.Attributes["inherit"].Value;
                    if (!Enum.TryParse(value, out result))
                    {
                        errors.Add("Unexpected inheritance mode '{0}' in {1}".InvariantFormat(value, xmlNode.GetFullPath()));
                        result = InheritanceMode.None;
                    }
                }
                catch
                {
                    errors.Add("No inheritance mode specified in {0}".InvariantFormat(xmlNode.GetFullPath()));
                    result = InheritanceMode.None;
                }
                InheritSettingsType.Mode = result;
            }
            switch (result)
            {
            case InheritanceMode.FromParent:
            {
                bool anyInherited = false;
                InheritSettings(node, ref anyInherited);
                break;
            }

            case InheritanceMode.None:
            case InheritanceMode.Disabled:
                foreach (XmlNode childNode in xmlNode.ChildNodes)
                {
                    try
                    {
                        ISetting setting = (ISetting)SettingProperties[childNode.Name].Property.GetValue(this, null);
                        try
                        {
                            setting.ReadXml(childNode, node);
                        }
                        catch
                        {
                            errors.Add("Error processing Xml node {0}".InvariantFormat(childNode.GetFullPath()));
                        }
                    }
                    catch
                    {
                        errors.Add("Unexpected Xml node {0}".InvariantFormat(childNode.GetFullPath()));
                    }
                }
                break;

            default:
                errors.Add("Unexpected inheritance mode '{0}' in {1}".InvariantFormat(result.ToString(), xmlNode.GetFullPath()));
                break;
            }
        }
Beispiel #16
0
 public override void WriteXml(XmlTextWriter tw, RdcTreeNode node)
 {
     foreach (T item in base.Value)
     {
         T current = item;
         tw.WriteElementString("item", current.ToString());
     }
 }
Beispiel #17
0
        protected override void OnItemDrag(ItemDragEventArgs e)
        {
            base.OnItemDrag(e);
            RdcTreeNode rdcTreeNode = _draggedNode = (e.Item as RdcTreeNode);

            _preDragSelectedNode = base.SelectedNode;
            DoDragDrop(_draggedNode, DragDropEffects.Move);
        }
Beispiel #18
0
        public override void CreateControls(RdcTreeNode settingsNode)
        {
            GroupPropertiesTabPage page = (GroupPropertiesTabPage)(base.PropertiesPage = (settingsNode.Properties.CreateTabPage(this) as GroupPropertiesTabPage));

            AddTabPage(page);
            base.PropertiesPage.ParentGroupChanged += base.PopulateCredentialsProfiles;
            base.CreateControls(settingsNode);
        }
Beispiel #19
0
        protected override void Copy(RdcTreeNode node)
        {
            ServerBase serverBase = node as ServerBase;

            if (serverBase != null)
            {
                Copy(serverBase.Properties);
            }
        }
Beispiel #20
0
 public void ReadXml(XmlNode xmlNode, RdcTreeNode node, ICollection <string> errors)
 {
     Operator = xmlNode.Attributes["operator"].Value.ParseEnum <RuleGroupOperator>();
     Rules    = new List <Rule>();
     foreach (XmlNode childNode in xmlNode.ChildNodes)
     {
         Rules.Add(Rule.Create(childNode, node, errors));
     }
 }
Beispiel #21
0
        public static void VisitParents(this RdcTreeNode node, Func <RdcTreeNode, NodeVisitorResult> callback)
        {
            RdcTreeNode rdcTreeNode = node.Parent as RdcTreeNode;

            while (rdcTreeNode != null && callback(rdcTreeNode) == NodeVisitorResult.Continue)
            {
                rdcTreeNode = (rdcTreeNode.Parent as RdcTreeNode);
            }
        }
Beispiel #22
0
        public static void AddFavorite(RdcTreeNode node)
        {
            ServerBase serverBase = node as ServerBase;

            if (serverBase != null)
            {
                FavoritesGroup.Instance.AddReference(serverBase);
            }
        }
Beispiel #23
0
 public static void DeferDecryption(IDeferDecryption o, RdcTreeNode node, string errorDetail)
 {
     PendingDecryption.Add(new DeferDecryptionItem
     {
         Object      = o,
         Node        = node,
         ErrorDetail = errorDetail
     });
 }
Beispiel #24
0
        public override void CreateControls(RdcTreeNode settings)
        {
            TabPage tabPage = settings.Properties.CreateTabPage(this);

            base.PropertiesPage = (tabPage as INodePropertiesPage);
            AddTabPage(tabPage);
            InitButtons();
            this.ScaleAndLayout();
        }
Beispiel #25
0
        protected override void WriteSettings(XmlTextWriter tw, RdcTreeNode node)
        {
            HashSet <ISetting> hashSet = new HashSet <ISetting>();

            if (DesktopSizeSameAsClientAreaSize.Value || DesktopSizeFullScreen.Value)
            {
                hashSet.Add(DesktopSize);
            }
            base.WriteSettings(tw, node, hashSet);
        }
Beispiel #26
0
        protected override void WriteSettings(XmlTextWriter tw, RdcTreeNode node)
        {
            HashSet <ISetting> hashSet = new HashSet <ISetting>();

            if (string.IsNullOrEmpty(base.Comment.Value))
            {
                hashSet.Add(base.Comment);
            }
            base.WriteSettings(tw, node, hashSet);
        }
Beispiel #27
0
 public override void ReadXml(XmlNode xmlNode, RdcTreeNode node)
 {
     if (int.TryParse(xmlNode.InnerText, out int result))
     {
         base.Value = (TEnum)(object)result;
     }
     else
     {
         base.Value = (TEnum)Enum.Parse(typeof(TEnum), xmlNode.InnerText);
     }
 }
Beispiel #28
0
        internal void InheritSettings(RdcTreeNode node, ref bool anyInherited)
        {
            GroupBase inheritedSettingsNode = InheritSettingsType.GetInheritedSettingsNode(node);

            if (inheritedSettingsNode != null)
            {
                inheritedSettingsNode.InheritSettings();
                Copy(inheritedSettingsNode);
                anyInherited = true;
            }
        }
        public override void CreateControls(RdcTreeNode settings)
        {
            FileGroupPropertiesTabPage page = (FileGroupPropertiesTabPage)(base.PropertiesPage = (settings.Properties.CreateTabPage(this) as FileGroupPropertiesTabPage));

            AddTabPage(page);
            base.PropertiesPage.ParentGroupChanged += base.PopulateCredentialsProfiles;
            base.CreateControls(settings);
            AddTabPage(settings.EncryptionSettings.CreateTabPage(this));
            CreateProfileManagementTabPage();
            PopulateCredentialsProfiles(base.AssociatedNode as FileGroup);
            PopulateCredentialsManagementTab((base.AssociatedNode as FileGroup).CredentialsProfiles);
        }
Beispiel #30
0
 internal void CopySettings(RdcTreeNode node, Type excludeType)
 {
     for (int i = 0; i < AllSettingsGroups.Count; i++)
     {
         SettingsGroup settingsGroup = AllSettingsGroups[i];
         if (!(settingsGroup.GetType() == excludeType))
         {
             AllSettingsGroups[i].InheritSettingsType.Mode = node.AllSettingsGroups[i].InheritSettingsType.Mode;
             AllSettingsGroups[i].Copy(node.AllSettingsGroups[i]);
         }
     }
 }