/// <summary>
        /// return the selfCondition
        /// </summary>
        /// <param name="treeView"></param>
        /// <returns></returns>
        private TestObjectNurse GetNurseObjectsLine(TreeView treeView)
        {
            TreeNode fromNode = treeView.Nodes[0];

            IElementProperties properties = (IElementProperties)fromNode.Tag;

            TestObjectNurse topNurseNode     = properties.ToNurseObject();
            TestObjectNurse currentNurseNode = topNurseNode;

            PreGetNurseObjectsLine(properties);

            while (fromNode != null)
            {
                switch (fromNode.Nodes.Count)
                {
                case 0:
                    fromNode = null;
                    break;

                case 1:
                    fromNode = fromNode.Nodes[0];
                    break;

                default:
                    fromNode = fromNode.Nodes["self"];
                    break;
                }

                //need refactoring
                if (fromNode != null && (fromNode.Checked))
                {
                    properties = (IElementProperties)fromNode.Tag;
                    TestObjectNurse childNurseNode = properties.ToNurseObject();
                    bool            need2Add       = PreGetNurseObjectsLine((IElementProperties)fromNode.Tag);
                    if (need2Add || fromNode.IsSelected)
                    {
                        currentNurseNode.AddChild(childNurseNode);
                        currentNurseNode = childNurseNode;
                    }
                }
            }

            return(currentNurseNode);
        }