Example #1
0
        private void ElementTypeComboBoxOnOnFormEvent(object sender, FormElementEvent e)
        {
            var oldElement = FormElement;

            if (!(e is SelectElementChangedEvent eventArgs))
            {
                return;
            }

            if (ElementTypeToFriendlyName(FormElement?.Model.GetType()) == eventArgs.NewValue)
            {
                return;
            }

            IControlElementViewModel newElementViewModel = null;

            switch (eventArgs.NewValue)
            {
            case "Button":
                newElementViewModel =
                    new ButtonElementViewModel(new ButtonElementBuilder().FromTemplate(oldElement.Model)
                                               .Build());
                break;

            case "Html":
                newElementViewModel =
                    new HtmlElementViewModel(new HtmlElementBuilder().FromTemplate(oldElement.Model)
                                             .Build());
                break;

            case "CheckBox":
                newElementViewModel =
                    new CheckElementViewModel(new CheckElementBuilder().FromTemplate(oldElement.Model)
                                              .Build());
                break;

            case "TextBox":
                newElementViewModel =
                    new TextElementViewModel(new TextElementBuilder().FromTemplate(oldElement.Model)
                                             .Build());
                break;

            case "ComboBox":
                newElementViewModel =
                    new SelectElementViewModel(new SelectElementBuilder().FromTemplate(oldElement.Model)
                                               .Build());
                break;
            }

            var elementIndex = ParentElement.Children.IndexOf(oldElement);

            ParentElement.Children.RemoveAt(elementIndex);
            ParentElement.Children.Insert(elementIndex, newElementViewModel);
            FormElement = newElementViewModel;
        }
Example #2
0
        public void ButtonClickEvent_Fires()
        {
            //Arrange
            var sut           = new ButtonElementViewModel(new ButtonElementBuilder().Build());
            var buttonClicked = false;

            sut.OnFormEvent += (s, e) => buttonClicked = true;

            //Act
            sut.ButtonClickedCommand.Execute(null);

            //Assert
            Assert.True(buttonClicked);
        }
Example #3
0
        private void AddButtonConfigurationRows(ICompositeElementViewModel group, ButtonElementViewModel button)
        {
            var textField =
                new TextElementViewModel(
                    new TextElementBuilder()
                    .SetName("buttonContentTextBox")
                    .SetLabel(ElementLabel.Left("Content"))
                    .SetDefaultValue(button.Content).Build());

            textField.OnFormEvent += (s, e) =>
            {
                if (e is TextElementChangedEvent eventArgs)
                {
                    button.Content = eventArgs.NewValue;
                }
            };

            group.Children.Add(textField);
        }
        private void AddButtonConfigurationRows(FormGroup group, ButtonElementViewModel button)
        {
            var textField = new TextField("buttonContentTextBox", LabelPosition.AboveElement, "Content",
                                          new ValidationRule <TextField>[]
            {
            }, button.Content);

            textField.OnFormEvent += (s, e) =>
            {
                if (e is TextFieldChangedEventArgs eventArgs)
                {
                    button.Content = eventArgs.NewContent;
                }
            };

            group.Rows.Add(new FormRow(1, new[]
            {
                new FormColumn(1, textField)
            }));
        }
Example #5
0
        private void AddHtmlConfigurationRows(ICompositeElementViewModel group, HtmlElementViewModel element)
        {
            var buttonField =
                new ButtonElementViewModel(
                    new ButtonElementBuilder()
                    .SetName("editHtml")
                    .SetLabel(ElementLabel.Left("Edit"))
                    .SetContent("Edit").Build());

            buttonField.OnFormEvent += (s, e) =>
            {
                if (e is ButtonElementClickedEvent eventArgs)
                {
                    var htmlEditor = new HtmlEditorDialog(element.Content);
                    htmlEditor.ShowDialog();

                    element.Content = htmlEditor.ViewModel.Content;
                    Refresh();
                }
            };

            group.Children.Add(buttonField);
        }