Пример #1
0
        /// <summary>Renders the add new rule.</summary>
        /// <param name="output">The output.</param>
        private void RenderAddNewRule([NotNull] TextBlockWriter output)
        {
            Debug.ArgumentNotNull(output, "output");

            if (!this.IsEditable || !this.AllowMultiple)
            {
                return;
            }

            output.WriteStartBlock(padding: new Thickness(16, 0, 0, 0));
            output.WriteHyperlink("Add a new rule", AddNewRule);
            output.WriteEndBlock();
        }
Пример #2
0
        /// <summary>Renders the unary operator.</summary>
        /// <param name="output">The output.</param>
        /// <param name="operatorElement">The operator element.</param>
        private void RenderUnaryOperator([NotNull] TextBlockWriter output, [NotNull] XElement operatorElement)
        {
            Debug.ArgumentNotNull(output, "output");
            Debug.ArgumentNotNull(operatorElement, "operatorElement");

            var op = operatorElement.Name.LocalName;

            if (this.IsEditable)
            {
                output.WriteHyperlink(op, ToggleOperator);
            }
            else
            {
                output.Write(op);
            }
        }
Пример #3
0
        /// <summary>Renders the binary operator.</summary>
        /// <param name="output">The output.</param>
        /// <param name="operatorElement">The operator element.</param>
        private void RenderBinaryOperator([NotNull] TextBlockWriter output, [NotNull] XElement operatorElement)
        {
            Debug.ArgumentNotNull(output, "output");
            Debug.ArgumentNotNull(operatorElement, "operatorElement");

            var op = operatorElement.Name.LocalName;

            // var uid = operatorElement.GetAttributeValue("uid");
            // var click = StringUtil.EscapeQuote("ToggleOperator(\"" + uid + "\")");

            var right = operatorElement.Element(1);

            if (right == null)
            {
                return;
            }

            // var leftLeaf = GetLeftLeaf(right);
            // var conditionUid = leftLeaf.GetAttributeValue("uid");

            output.WriteEndBlock();
            output.WriteStartBlock();

            if (op == "and")
            {
                output.Write("    ");
            }

            if (this.IsEditable)
            {
                output.WriteHyperlink(op, this.ToggleOperator);
            }
            else
            {
                output.Write(op);
            }

            output.Write(" ");
        }
Пример #4
0
        /// <summary>Renders the rule title.</summary>
        /// <param name="output">The output.</param>
        /// <param name="uid">The uid.</param>
        /// <param name="title">The title.</param>
        /// <param name="ruleId">The rule id.</param>
        /// <param name="isClosed">if set to <c>true</c> [is closed].</param>
        private void RenderRuleTitle([NotNull] TextBlockWriter output, [NotNull] string uid, [NotNull] string title, [NotNull] string ruleId, bool isClosed)
        {
            Debug.ArgumentNotNull(output, "output");
            Debug.ArgumentNotNull(uid, "uid");
            Debug.ArgumentNotNull(title, "title");
            Debug.ArgumentNotNull(ruleId, "ruleId");

            if (!this.IsEditable || !this.AllowMultiple)
            {
                output.WriteStartBlock();
                output.Write(title);
                output.WriteEndBlock();

                return;
            }

            // var activeStyle = isClosed ? string.Empty : " scRuleActive";
            output.WriteStartBlock();

            output.WriteHyperlink(title, ToggleRule);

            var stackPanel = new StackPanel
            {
                Orientation = Orientation.Horizontal
            };

            stackPanel.Children.Add(new Button {
                Content = "Edit"
            });
            stackPanel.Children.Add(new Button {
                Content = "Delete"
            });

            output.Write(stackPanel);

            output.WriteEndBlock();
        }