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; }
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); }
public FormElementEditorViewModel() { _elementNameTextBox = new TextElementViewModel( new TextElementBuilder().SetName("elementNameTextBox") .SetLabel(ElementLabel.Left("Control Name")).Build()); _elementLabelTextBox = new TextElementViewModel( new TextElementBuilder().SetName("elementLabelTextBox") .SetLabel(ElementLabel.Left("Label Text")).Build()); _elementTypeComboBox = new SelectElementViewModel( new SelectElementBuilder().SetName("elementTypeComboBox") .SetLabel(ElementLabel.Left("Control Type")).AddValues("Button", "Html", "CheckBox", "ComboBox", "TextBox", "Columns", "Rows", "Group").Build()); _elementLabelPosition = new SelectElementViewModel( new SelectElementBuilder().SetName("elementLabelPosition") .SetLabel(ElementLabel.Left("Label Position")) .AddValues("Hidden", "Above", "Below", "Left", "Right").SetDefaultValue("Hidden").Build()); _elementVerticalAlignment = new SelectElementViewModel( new SelectElementBuilder().SetName("elementVerticalAlignment") .SetLabel(ElementLabel.Left("Vertical Alignment")) .AddValues("Center", "Top", "Bottom", "Stretch") .SetDefaultValue("Stretch").Build()); _elementHorizontalAlignment = new SelectElementViewModel( new SelectElementBuilder().SetName("elementHorizontalAlignment") .SetLabel(ElementLabel.Left("Horizontal Alignment")).AddValues("Center", "Left", "Right", "Stretch") .SetDefaultValue("Stretch").Build()); _elementTypeComboBox.OnFormEvent += ElementTypeComboBoxOnOnFormEvent; _elementNameTextBox.OnFormEvent += ElementNameTextBoxOnOnFormEvent; _elementLabelTextBox.OnFormEvent += ElementLabelTextBoxOnOnFormEvent; _elementLabelPosition.OnFormEvent += _elementLabelPosition_OnFormEvent; _elementVerticalAlignment.OnFormEvent += _elementVerticalAlignment_OnFormEvent; _elementHorizontalAlignment.OnFormEvent += _elementHorizontalAlignment_OnFormEvent; }
private void AddTextConfigurationRows(ICompositeElementViewModel group, TextElementViewModel element) { var textField = new TextElementViewModel( new TextElementBuilder() .SetName("htmlContent") .SetLabel(ElementLabel.Left("Content")) .SetDefaultValue(element.DefaultContent).Build()); textField.OnFormEvent += (s, e) => { if (e is TextElementChangedEvent eventArgs) { element.DefaultContent = eventArgs.NewValue; element.Content = eventArgs.NewValue; } }; group.Children.Add(textField); }
private void AddCheckBoxConfigurationRows(ICompositeElementViewModel group, ICheckElementViewModel element) { var textField = new TextElementViewModel( new TextElementBuilder() .SetName("contentTextField") .SetLabel(ElementLabel.Left("Default Content")) .SetDefaultValue(element.Content).Build()); var checkedField = new CheckElementViewModel( new CheckElementBuilder() .SetName("checkbox") .SetLabel(ElementLabel.Left("Default Value")) .SetDefaultValue(element.DefaultIsChecked) .SetContent(element.Content).Build()); textField.OnFormEvent += (s, e) => { if (e is TextElementChangedEvent eventArgs) { element.Content = eventArgs.NewValue; } }; checkedField.OnFormEvent += (s, e) => { if (e is CheckElementChangedEvent eventArgs) { element.DefaultIsChecked = eventArgs.NewValue; element.IsChecked = eventArgs.NewValue; } }; group.Children.Add(textField); group.Children.Add(checkedField); }
private void AddComboBoxConfigurationRows(ICompositeElementViewModel group, ISelectElementViewModel element) { var optionsField = new TextElementViewModel( new TextElementBuilder() .SetName("options") .SetLabel(ElementLabel.Left("Options")) .SetDefaultValue(string.Join(",", element.Items)).Build()); var defaultSelectedText = new TextElementViewModel( new TextElementBuilder() .SetName("defaultText") .SetLabel(ElementLabel.Left("Default Text")) .SetDefaultValue(element.DefaultSelectedItem).Build()); var defaultSelectedItem = new SelectElementViewModel( new SelectElementBuilder() .SetName("defaultItem") .SetLabel(ElementLabel.Left("Default Item")) .SetDefaultValue(element.DefaultSelectedItem) .AddValues(element.Items).Build()); optionsField.OnFormEvent += (s, e) => { if (e is TextElementChangedEvent eventArgs) { element.Items.Clear(); element.Items.AddRange(eventArgs.NewValue.Split(',')); defaultSelectedItem.Items.Clear(); defaultSelectedItem.Items.AddRange(eventArgs.NewValue.Split(',').ToList()); if (!defaultSelectedItem.Items.Contains(element.DefaultSelectedItem)) { defaultSelectedItem.DefaultSelectedItem = string.Empty; element.DefaultSelectedItem = string.Empty; } } }; defaultSelectedItem.OnFormEvent += (s, e) => { if (e is SelectElementChangedEvent eventArgs && element.SelectedItem != eventArgs.NewValue) { element.DefaultSelectedItem = eventArgs.NewValue; element.SelectedItem = eventArgs.NewValue; defaultSelectedText.Content = eventArgs.NewValue; } }; defaultSelectedText.OnFormEvent += (s, e) => { if (e is TextElementChangedEvent eventArgs && element.SelectedItem != eventArgs.NewValue) { element.DefaultSelectedItem = eventArgs.NewValue; element.SelectedItem = string.Empty; defaultSelectedItem.SelectedItem = string.Empty; defaultSelectedItem.DefaultSelectedItem = eventArgs.NewValue; } }; group.Children.Add(optionsField); group.Children.Add(defaultSelectedItem); group.Children.Add(defaultSelectedText); }