/// <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); }
/// <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; }
/// <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; }
/// <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; }
/// <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); }
/// <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); }
/// <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; }
/// <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; }
/// <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; }
/// <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; }
public Node(RtfNodeType type, string key) { Type = type; InternalKeyword = key; }
/// <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; }
/// <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; }
/// <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; }
/// <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; }
/// <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; }