コード例 #1
0
        /// <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);
                }
            }
        }
コード例 #2
0
        /// <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);
                }
            }
        }
コード例 #3
0
ファイル: QueryTree.cs プロジェクト: zparr/ATF
 /// <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);
 }
コード例 #4
0
ファイル: QueryTree.cs プロジェクト: zparr/ATF
 /// <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);
 }
コード例 #5
0
ファイル: QueryTree.cs プロジェクト: zparr/ATF
        /// <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);
        }
コード例 #6
0
ファイル: QueryTree.cs プロジェクト: zparr/ATF
 /// <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));
 }
コード例 #7
0
ファイル: QueryTree.cs プロジェクト: zparr/ATF
#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);
        }