Ejemplo n.º 1
0
        private void ConstructLeftAndRightNode(TreeView objectTree, AutomationElement clickedElement)
        {
            TreeNode parentNode = null, leafNode;

            leafNode = objectTree.Nodes[0];

            while (leafNode.Nodes.Count > 0)
            {
                parentNode = leafNode;
                leafNode   = leafNode.Nodes[0];
            }

            AutomationElement leftElement  = UIAUtility.GetPreviousElement(clickedElement);
            AutomationElement rightElement = UIAUtility.GetNextElement(clickedElement);

            TreeNode tempNode = null;

            if (parentNode == null)
            {
                return;
            }

            //TreeNodeCollection nodes = (parentNode == null) ? objectTree.Nodes : parentNode.Nodes;
            if (leftElement != null)
            {
                _leftElement = new ElementProperties(leftElement);
                tempNode     = parentNode.Nodes.Insert(0, "left", StringResources.LPSpy_AddObjectsWindow_LeftObject + _leftElement.DerivedName);
                _leftElement.SetContext(tempNode);
                tempNode.Tag = new ElementProperties(leftElement);
            }

            if (rightElement != null)
            {
                _rightElement = new ElementProperties(rightElement);
                tempNode      = parentNode.Nodes.Add("right", StringResources.LPSpy_AddObjectsWindow_RightObject + _rightElement.DerivedName);
                _rightElement.SetContext(tempNode);
                tempNode.Tag = new ElementProperties(rightElement);
            }
        }