Example #1
0
            /// <summary>
            /// Devuelve el primer nodo del árbol, a partir del nodo actual, cuyo tipo es el indicado como parámetro.
            /// </summary>
            /// <param name="nodeType">Tipo del nodo buscado.</param>
            /// <returns>Primer nodo del árbol, a partir del nodo actual, cuyo tipo es el indicado como parámetro.</returns>
            public RtfTreeNode SelectSingleNode(RtfNodeType nodeType)
            {
                int         i     = 0;
                bool        found = false;
                RtfTreeNode node  = null;

                while (i < children.Count && !found)
                {
                    if (children[i].type == nodeType)
                    {
                        node  = children[i];
                        found = true;
                    }
                    else
                    {
                        node = children[i].SelectSingleNode(nodeType);

                        if (node != null)
                        {
                            found = true;
                        }
                    }

                    i++;
                }

                return(node);
            }
Example #2
0
            /// <summary>
            /// Constructor privado de la clase RtfTreeNode. Crea un nodo a partir de un token del analizador léxico.
            /// </summary>
            /// <param name="token">Token RTF devuelto por el analizador léxico.</param>
            internal RtfTreeNode(RtfToken token)
            {
                children = new RtfNodeCollection();

                this.type     = (RtfNodeType)token.Type;
                this.key      = token.Key;
                this.hasParam = token.HasParameter;
                this.param    = token.Parameter;

                /* Inicializados por defecto */
                //this.parent = null;
                //this.root = null;
            }
Example #3
0
            /// <summary>
            /// Constructor de la clase RtfTreeNode. Crea un nodo especificando su tipo, palabra clave y parámetro.
            /// </summary>
            /// <param name="type">Tipo del nodo.</param>
            /// <param name="key">Palabra clave o símbolo de Control.</param>
            /// <param name="hasParameter">Indica si la palabra clave o el símbolo de Control va acompañado de un parámetro.</param>
            /// <param name="parameter">Parámetro del la palabra clave o símbolo de Control.</param>
            public RtfTreeNode(RtfNodeType type, string key, bool hasParameter, int parameter)
            {
                children = new RtfNodeCollection();

                this.type     = type;
                this.key      = key;
                this.hasParam = hasParameter;
                this.param    = parameter;

                /* Inicializados por defecto */
                //this.parent = null;
                //this.root = null;
            }
Example #4
0
            /// <summary>
            /// Constructor de la clase RtfTreeNode. Crea un nodo sin inicializar.
            /// </summary>
            public RtfTreeNode()
            {
                children = new RtfNodeCollection();

                this.type = RtfNodeType.None;
                this.key  = "";

                /* Inicializados por defecto */
                //this.param = 0;
                //this.hasParam = false;
                //this.parent = null;
                //this.root = null;
            }
Example #5
0
            /// <summary>
            /// Devuelve todos los nodos de la lista de nodos hijos del nodo actual cuyo tipo es el indicado como parámetro.
            /// </summary>
            /// <param name="nodeType">Tipo del nodo buscado.</param>
            /// <returns>Colección de nodos de la lista de nodos hijos del nodo actual cuyo tipo es el indicado como parámetro.</returns>
            public RtfNodeCollection SelectChildNodes(RtfNodeType nodeType)
            {
                RtfNodeCollection nodes = new RtfNodeCollection();

                foreach (RtfTreeNode node in children)
                {
                    if (node.type == nodeType)
                    {
                        nodes.Add(node);
                    }
                }

                return(nodes);
            }
Example #6
0
            /// <summary>
            /// Devuelve el primer nodo hermano del actual cuyo tipo es el indicado como parámetro.
            /// </summary>
            /// <param name="nodeType">Tpo de nodo buscado.</param>
            /// <returns>Primer nodo hermano del actual cuyo tipo es el indicado como parámetro.</returns>
            public RtfTreeNode SelectSibling(RtfNodeType nodeType)
            {
                RtfTreeNode par    = this.parent;
                int         curInd = par.ChildNodes.IndexOf(this);

                int         i     = curInd + 1;
                bool        found = false;
                RtfTreeNode node  = null;

                while (i < par.children.Count && !found)
                {
                    if (par.children[i].type == nodeType)
                    {
                        node  = par.children[i];
                        found = true;
                    }

                    i++;
                }

                return(node);
            }
Example #7
0
            /// <summary>
            /// Devuelve el primer nodo del árbol, a partir del nodo actual, cuyo tipo es el indicado como parámetro.
            /// </summary>
            /// <param name="nodeType">Tipo del nodo buscado.</param>
            /// <returns>Primer nodo del árbol, a partir del nodo actual, cuyo tipo es el indicado como parámetro.</returns>
            public RtfTreeNode SelectSingleNodeByType(RtfNodeType nodeType)
            {
                int i = 0;
                bool found = false;
                RtfTreeNode node = null;

                while (i < children.Count && !found)
                {
                    if (children[i].type == nodeType)
                    {
                        node = children[i];
                        found = true;
                    }
                    else
                    {
                        node = children[i].SelectSingleNodeByType(nodeType);

                        if (node != null)
                        {
                            found = true;
                        }
                    }

                    i++;
                }

                return node;
            }
Example #8
0
            /// <summary>
            /// Constructor de la clase RtfTreeNode. Crea un nodo de un tipo concreto.
            /// </summary>
            /// <param name="nodeType">Tipo del nodo que se va a crear.</param>
            public RtfTreeNode(RtfNodeType nodeType)
            {
                this.type = nodeType;
                this.key = "";

                if (nodeType == RtfNodeType.Group || nodeType == RtfNodeType.Root)
                    children = new RtfNodeCollection();

                if (nodeType == RtfNodeType.Root)
                    this.root = this;

                /* Inicializados por defecto */
                //this.param = 0;
                //this.hasParam = false;
                //this.parent = null;
                //this.root = null;
                //this.tree = null;
                //children = null;
            }
Example #9
0
            /// <summary>
            /// Constructor de la clase RtfTreeNode. Crea un nodo especificando su tipo, palabra clave y parámetro.
            /// </summary>
            /// <param name="type">Tipo del nodo.</param>
            /// <param name="key">Palabra clave o símbolo de Control.</param>
            /// <param name="hasParameter">Indica si la palabra clave o el símbolo de Control va acompañado de un parámetro.</param>
            /// <param name="parameter">Parámetro del la palabra clave o símbolo de Control.</param>
            public RtfTreeNode(RtfNodeType type, string key, bool hasParameter, int parameter)
            {
                this.type = type;
                this.key = key;
                this.hasParam = hasParameter;
                this.param = parameter;

                if (type == RtfNodeType.Group || type == RtfNodeType.Root)
                    children = new RtfNodeCollection();

                if (type == RtfNodeType.Root)
                    this.root = this;

                /* Inicializados por defecto */
                //this.parent = null;
                //this.root = null;
                //this.tree = null;
                //children = null;
            }
Example #10
0
            /// <summary>
            /// Devuelve el primer nodo de la lista de nodos hijos del nodo actual cuyo tipo es el indicado como parámetro.
            /// </summary>
            /// <param name="nodeType">Tipo de nodo buscado.</param>
            /// <returns>Primer nodo de la lista de nodos hijos del nodo actual cuyo tipo es el indicado como parámetro.</returns>
            public RtfTreeNode SelectSingleChildNode(RtfNodeType nodeType)
            {
                int i = 0;
                bool found = false;
                RtfTreeNode node = null;

                if (children != null)
                {
                    while (i < children.Count && !found)
                    {
                        if (children[i].type == nodeType)
                        {
                            node = children[i];
                            found = true;
                        }

                        i++;
                    }
                }

                return node;
            }
Example #11
0
 public Node(RtfNodeType type, string key)
 {
     Type = type;
     InternalKeyword = key;
 }
Example #12
0
 public Node(RtfNodeType type, string key)
 {
     Type            = type;
     InternalKeyword = key;
 }
Example #13
0
            /// <summary>
            /// Constructor de la clase RtfTreeNode. Crea un nodo sin inicializar.
            /// </summary>
            public RtfTreeNode()
            {
                children = new RtfNodeCollection();

                this.type = RtfNodeType.None;
                this.key = "";
                
				/* Inicializados por defecto */
				//this.param = 0;
				//this.hasParam = false;
                //this.parent = null;
                //this.root = null;
            }
Example #14
0
            /// <summary>
            /// Constructor de la clase RtfTreeNode. Crea un nodo sin inicializar.
            /// </summary>
            public RtfTreeNode()
            {
                type = RtfNodeType.None;
                key = "";

                /* Inicializados por defecto */
                //this.param = 0;
                //this.hasParam = false;
                //this.parent = null;
                //this.root = null;
                //this.tree = null;
                //children = null;
            }
Example #15
0
            /// <summary>
            /// Constructor privado de la clase RtfTreeNode. Crea un nodo a partir de un token del analizador léxico.
            /// </summary>
            /// <param name="token">Token RTF devuelto por el analizador léxico.</param>
            internal RtfTreeNode(RtfToken token)
            {
                children = new RtfNodeCollection();

                this.type = (RtfNodeType)token.Type;
                this.key = token.Key;
                this.hasParam = token.HasParameter;
                this.param = token.Parameter;

				/* Inicializados por defecto */
                //this.parent = null;
                //this.root = null;
            }
Example #16
0
            /// <summary>
            /// Constructor de la clase RtfTreeNode. Crea un nodo especificando su tipo, palabra clave y parámetro.
            /// </summary>
            /// <param name="type">Tipo del nodo.</param>
            /// <param name="key">Palabra clave o símbolo de Control.</param>
            /// <param name="hasParameter">Indica si la palabra clave o el símbolo de Control va acompañado de un parámetro.</param>
            /// <param name="parameter">Parámetro del la palabra clave o símbolo de Control.</param>
            public RtfTreeNode(RtfNodeType type, string key, bool hasParameter, int parameter)
            {
                children = new RtfNodeCollection();

                this.type = type;
                this.key = key;
                this.hasParam = hasParameter;
                this.param = parameter;

				/* Inicializados por defecto */
                //this.parent = null;
                //this.root = null;
            }
Example #17
0
            /// <summary>
            /// Devuelve el siguiente nodo hermano del actual cuyo tipo es el indicado como parámetro.
            /// </summary>
            /// <param name="nodeType">Tpo de nodo buscado.</param>
            /// <returns>Primer nodo hermano del actual cuyo tipo es el indicado como parámetro.</returns>
            public RtfTreeNode SelectSibling(RtfNodeType nodeType)
            {
                RtfTreeNode node = null;
                RtfTreeNode par = this.parent;

                if (par != null)
                {
                    int curInd = par.ChildNodes.IndexOf(this);

                    int i = curInd + 1;
                    bool found = false;

                    while (i < par.children.Count && !found)
                    {
                        if (par.children[i].type == nodeType)
                        {
                            node = par.children[i];
                            found = true;
                        }

                        i++;
                    }
                }

                return node;
            }
Example #18
0
            /// <summary>
            /// Devuelve todos los nodos, a partir del nodo actual, cuyo tipo es el indicado como parámetro.
            /// </summary>
            /// <param name="nodeType">Tipo del nodo buscado.</param>
            /// <returns>Colección de nodos, a partir del nodo actual, cuyo tipo es la indicado como parámetro.</returns>
            public RtfNodeCollection SelectNodes(RtfNodeType nodeType)
            {
                RtfNodeCollection nodes = new RtfNodeCollection();

                if (children != null)
                {
                    foreach (RtfTreeNode node in children)
                    {
                        if (node.type == nodeType)
                        {
                            nodes.Add(node);
                        }

                        nodes.AddRange(node.SelectNodes(nodeType));
                    }
                }

                return nodes;
            }
Example #19
0
            /// <summary>
            /// Devuelve todos los nodos de la lista de nodos hijos del nodo actual cuyo tipo es el indicado como parámetro.
            /// </summary>
            /// <param name="nodeType">Tipo del nodo buscado.</param>
            /// <returns>Colección de nodos de la lista de nodos hijos del nodo actual cuyo tipo es el indicado como parámetro.</returns>
            public RtfNodeCollection SelectChildNodesByType(RtfNodeType nodeType)
            {
                RtfNodeCollection nodes = new RtfNodeCollection();

                foreach (RtfTreeNode node in children)
                {
                    if (node.type == nodeType)
                    {
                        nodes.Add(node);
                    }
                }

                return nodes;
            }
Example #20
0
            /// <summary>
            /// Constructor privado de la clase RtfTreeNode. Crea un nodo a partir de un token del analizador léxico.
            /// </summary>
            /// <param name="token">Token RTF devuelto por el analizador léxico.</param>
            internal RtfTreeNode(RtfToken token)
            {
                type = (RtfNodeType)token.Type;
                key = token.Key;
                hasParam = token.HasParameter;
                param = token.Parameter;

                /* Inicializados por defecto */
                //this.parent = null;
                //this.root = null;
                //this.tree = null;
                //this.children = null;
            }