Example #1
0
        public void TestControlTypes()
        {
            TextControl textControl = new TextControl();
            Assert.AreEqual(ControlType.Text, textControl.Type);

            ComboControl comboControl = new ComboControl();
            Assert.AreEqual(ControlType.Combo, comboControl.Type);

            RadioControl radioControl = new RadioControl();
            Assert.AreEqual(ControlType.Radio, radioControl.Type);

            CheckboxControl checkboxControl = new CheckboxControl();
            Assert.AreEqual(ControlType.Checkbox, checkboxControl.Type);

            CheckboxGroupControl checkboxGroupControl = new CheckboxGroupControl();
            Assert.AreEqual(ControlType.CheckboxGroup, checkboxGroupControl.Type);

            DateControl dateControl = new DateControl();
            Assert.AreEqual(ControlType.Date, dateControl.Type);

            TimeControl timeControl = new TimeControl();
            Assert.AreEqual(ControlType.Time, timeControl.Type);

            FileBrowserControl fileBrowserControl = new FileBrowserControl();
            Assert.AreEqual(ControlType.FileBrowser, fileBrowserControl.Type);

            HiddenControl hiddenControl = new HiddenControl();
            Assert.AreEqual(ControlType.Hidden, hiddenControl.Type);

            LabelControl labelControl = new LabelControl();
            Assert.AreEqual(ControlType.Label, labelControl.Type);

            HtmlControl htmlControl = new HtmlControl();
            Assert.AreEqual(ControlType.Html, htmlControl.Type);

            GroupControl groupControl = new GroupControl();
            Assert.AreEqual(ControlType.Group, groupControl.Type);

            RepeaterControl repeaterControl = new RepeaterControl();
            Assert.AreEqual(ControlType.Repeater, repeaterControl.Type);

            CalculationControl calculationControl = new CalculationControl();
            Assert.AreEqual(ControlType.Calculation, calculationControl.Type);

            SignaturePadControl signaturePadControl = new SignaturePadControl();
            Assert.AreEqual(ControlType.SignaturePad, signaturePadControl.Type);

            GeolocationControl geolocationControl = new GeolocationControl();
            Assert.AreEqual(ControlType.Geolocation, geolocationControl.Type);

            HeadingControl headingControl = new HeadingControl();
            Assert.AreEqual(ControlType.Heading, headingControl.Type);
        }
Example #2
0
        public void TestGetAllRootControlGroups()
        {
            GroupControl groupControl1 = new GroupControl();
            GroupControl groupControl2 = new GroupControl { Id = 2 };
            GroupControl subgroupControl1 = new GroupControl { ParentId = 2 };
            groupControl2.Controls.Add(subgroupControl1);
            this.page.Controls.Add(groupControl1);
            this.page.Controls.Add(groupControl2);

            ControlList controlList = this.page.AllRootControlGroups;
            Assert.IsTrue(controlList.Contains(groupControl1));
            Assert.IsTrue(controlList.Contains(groupControl2));
            Assert.IsFalse(controlList.Contains(subgroupControl1));
        }
        public void TestInitialize()
        {
            JsonConvert.DefaultSettings = () => new JsonSerializerSettings
            {
                Formatting = Formatting.None,
                Converters = new JsonConverter[] { new JsonKnownTypeConverter() }
            };
            string jsonProduct = AssemblyResourceReader.ReadAsString("Test_Data.Metadata.json");
            this.Product = JsonConvert.DeserializeObject<ProductDefinition>(jsonProduct);

            this.RepeaterControl = this.Product.FormDefinition.Pages[0].Controls[0] as RepeaterControl;
            this.RepeaterDescendantGroupControl = this.RepeaterControl.Controls[0] as GroupControl;
            this.RepeaterDescendantControl = this.RepeaterDescendantGroupControl.Controls[0] as TextControl;
            this.HeadingControl = this.Product.FormDefinition.Pages[0].Controls[1] as HeadingControl;
            this.ControlList = this.Product.FormDefinition.Pages[0].Controls;
        }
        /// <summary>
        /// Writes the value of <paramref name="group"/> to the <paramref name="table"/>.
        /// </summary>
        /// <param name="table">The <see cref="MigraDoc.DocumentObjectModel.Tables.Table"/> to write to.</param>
        /// <param name="group">The control.</param>
        /// <param name="container">The application data container.</param>
        /// <param name="level">The depth down the control tree being rendered (affects indenting).</param>
        private void WriteValueGroup(Table table, GroupControl group, Dictionary<string, object> container, int level)
        {
            Color backgroundColour = new Color(100 - (level * PdfConstants.AlphaMultiplier * 100), this.BorderColour.C, this.BorderColour.M, this.BorderColour.Y, this.BorderColour.K);

            table.AppendHeaderRow(this.DefaultStyle.Font.Size, group.Label, PdfResources.StyleNameHeaderRow, backgroundColour)
                .Format.LeftIndent = new Unit(PdfConstants.IndentMultiplier * level, UnitType.Millimeter);
            level = level < 5 ? level + 1 : level;
            this.WriteValue(table, group.Controls, container, level);
        }
            public void RepeaterInsideGroupCalc()
            {
                ControlList controls = new ControlList();
                int i = 0;

                GroupControl group = new GroupControl { Id = i++, Name = "group1" };
                controls.Add(group);
                RepeaterControl control = new RepeaterControl
                                          { Id = i++, Name = "repeater1" };
                group.Controls.Add(control);
                control.AddChild(new TextControl { Id = i++, Name = "field1" });
                control.AddChild(new TextControl { Id = i++, Name = "field2" });
                control.AddChild(new CalculationControl { Id = i + 1, Name = "field3", CalculationExpression = "{%field1%}+{%field2%}" });

                Application app = new Application();
                List<Dictionary<string, object>> repeaterValue = new List<Dictionary<string, object>>
                                                                 {
                                                                     new Dictionary<string, object>()
                                                                 };
                repeaterValue[0]["field1"] = "1";
                repeaterValue[0]["field2"] = "1";
                repeaterValue[0]["field3"] = null;
                repeaterValue.Add(new Dictionary<string, object>());
                repeaterValue[1]["field1"] = "2";
                repeaterValue[1]["field2"] = "2";
                repeaterValue[1]["field3"] = null;
                app.ApplicationData["repeater1"] = repeaterValue.ToArray();

                MultiExpressionEvaluator evaluator = new MultiExpressionEvaluator(app, controls);
                ApplicationData result = evaluator.EvaluateAll();

                var repeater = (Dictionary<string, object>[])result["repeater1"];
                Assert.AreEqual(repeater[0]["field3"], "2");
                Assert.AreEqual(repeater[1]["field3"], "4");
            }