/// <summary> /// Constructor</summary> /// <param name="parentNode">Parent QueryNode</param> /// <param name="stringQueryOptions">String search types</param> public QueryStringInput(QueryNode parentNode, StringQuery stringQueryOptions) { m_textInput = null; parentNode.Add(this); // get root node QueryNode nodeAbove = parentNode; while (nodeAbove.Parent != null) { nodeAbove = nodeAbove.Parent as QueryNode; } // register 'option changed' event to root node QueryRoot rootNode = nodeAbove as QueryRoot; if (rootNode != null) { rootNode.RegisterQueryOption(this); } if (stringQueryOptions != StringQuery.None) { QueryOptionItem newOptionItem; // "regular expression" if ((stringQueryOptions & StringQuery.RegularExpression) != 0) { newOptionItem = this.AddOptionItem("matches the regular expression", (UInt64)StringQuery.RegularExpression); m_textInput = newOptionItem.AddStringSearchTextInput(m_textInput); } // "contains" if ((stringQueryOptions & StringQuery.Contains) != 0) { newOptionItem = this.AddOptionItem("contains", (UInt64)StringQuery.Contains); m_textInput = newOptionItem.AddStringSearchTextInput(m_textInput); } // "matches" if ((stringQueryOptions & StringQuery.Matches) != 0) { newOptionItem = this.AddOptionItem("is", (UInt64)StringQuery.Matches); m_textInput = newOptionItem.AddStringSearchTextInput(m_textInput); } // "begins with" if ((stringQueryOptions & StringQuery.BeginsWith) != 0) { newOptionItem = this.AddOptionItem("begins with", (UInt64)StringQuery.BeginsWith); m_textInput = newOptionItem.AddStringSearchTextInput(m_textInput); } // "ends with" if ((stringQueryOptions & StringQuery.EndsWith) != 0) { newOptionItem = this.AddOptionItem("ends with", (UInt64)StringQuery.EndsWith); m_textInput = newOptionItem.AddStringSearchTextInput(m_textInput); } } }
/// <summary> /// Constructor</summary> /// <param name="parentNode">Parent QueryNode</param> /// <param name="numericalQueryOptions">Numerical search types</param> public QueryNumericalInput(QueryNode parentNode, NumericalQuery numericalQueryOptions) { m_textInput1 = null; m_textInput2 = null; parentNode.Add(this); // get root node QueryNode nodeAbove = parentNode; while (nodeAbove.Parent != null) { nodeAbove = nodeAbove.Parent as QueryNode; } // register 'option changed' event to root node QueryRoot rootNode = nodeAbove as QueryRoot; if (rootNode != null) { rootNode.RegisterQueryOption(this); } if (numericalQueryOptions != NumericalQuery.None) { QueryOptionItem newOptionItem; // "equals" if ((numericalQueryOptions & NumericalQuery.Equals) != 0) { newOptionItem = this.AddOptionItem("equals", (UInt64)NumericalQuery.Equals); m_textInput1 = newOptionItem.AddNumericalSearchTextInput(m_textInput1); } // "lesser than" if ((numericalQueryOptions & NumericalQuery.Lesser) != 0) { newOptionItem = this.AddOptionItem("is less than", (UInt64)NumericalQuery.Lesser); m_textInput1 = newOptionItem.AddNumericalSearchTextInput(m_textInput1); } // "lesser than or equal to" if ((numericalQueryOptions & NumericalQuery.LesserEqual) != 0) { newOptionItem = this.AddOptionItem("is lesser or equal to", (UInt64)NumericalQuery.LesserEqual); m_textInput1 = newOptionItem.AddNumericalSearchTextInput(m_textInput1); } // "greater than or equal" if ((numericalQueryOptions & NumericalQuery.GreaterEqual) != 0) { newOptionItem = this.AddOptionItem("is greater or equal to", (UInt64)NumericalQuery.GreaterEqual); m_textInput1 = newOptionItem.AddNumericalSearchTextInput(m_textInput1); } // "greater than" if ((numericalQueryOptions & NumericalQuery.Greater) != 0) { newOptionItem = this.AddOptionItem("is greater than", (UInt64)NumericalQuery.Greater); m_textInput1 = newOptionItem.AddNumericalSearchTextInput(m_textInput1); } // "between" if ((numericalQueryOptions & NumericalQuery.Between) != 0) { newOptionItem = this.AddOptionItem("is between", (UInt64)NumericalQuery.Between); m_textInput1 = newOptionItem.AddNumericalSearchTextInput(m_textInput1); newOptionItem.AddLabel("and"); m_textInput2 = newOptionItem.AddNumericalSearchTextInput(m_textInput2); } } }
/// <summary> /// Adds a child QueryButton node</summary> /// <param name="parentNode">Node to receive child</param> /// <param name="text">Button text</param> /// <returns>Instance of the new QueryButton child node</returns> public static QueryButton AddButton(this QueryNode parentNode, string text) { return(parentNode.Add(new QueryButton(text)) as QueryButton); }
/// <summary> /// Adds a child QuerySeparator node</summary> /// <param name="parentNode">Node to receive child</param> /// <returns>Instance of the new QuerySeparator child node</returns> public static QuerySeparator AddSeparator(this QueryNode parentNode) { return(parentNode.Add(new QuerySeparator()) as QuerySeparator); }
/// <summary> /// Adds a child QueryLabel node</summary> /// <param name="parentNode">Node to receive child</param> /// <param name="text">Label text</param> /// <returns>Instance of the new QueryLabel child node</returns> public static QueryLabel AddLabel(this QueryNode parentNode, string text) { return(parentNode.Add(new QueryLabel(text)) as QueryLabel); }
/// <summary> /// Adds a QueryOption that is the root of a QueryTree that provides text input for numerical queries</summary> /// <param name="parentNode">QueryNode to receive child</param> /// <param name="numericalQueryOptions">Bitfield defining which numerical search types can be selected</param> /// <returns>Instance of the new QueryNumericalInput child node</returns> public static QueryOption AddNumericalQuery(this QueryNode parentNode, NumericalQuery numericalQueryOptions) { return(new QueryNumericalInput(parentNode, numericalQueryOptions)); }
#pragma warning disable 1587 // XML comment is not placed on a valid language element. /// <summary> /// Adds a child QueryNode</summary> /// <param name="parentNode">Node to receive child</param> /// <param name="childNode">Node to be parented</param> /// <returns>The passed-in child node</returns> public static QueryNode Add(this QueryNode parentNode, QueryNode childNode) { parentNode.Children.Add(childNode); return(childNode); }