private void AddElementConfigurationRows(ICompositeElementViewModel group, IFormElementViewModel formElement) { switch (formElement) { case ButtonElementViewModel buttonElement: AddButtonConfigurationRows(group, buttonElement); break; case HtmlElementViewModel htmlElement: AddHtmlConfigurationRows(group, htmlElement); break; case CheckElementViewModel checkBox: AddCheckBoxConfigurationRows(group, checkBox); break; case TextElementViewModel textField: AddTextConfigurationRows(group, textField); break; case SelectElementViewModel comboBox: AddComboBoxConfigurationRows(group, comboBox); break; } }
public static ICompositeElementViewModel TransformInto(this ICompositeElementViewModel viewModel, string destinationTypeName) { switch (destinationTypeName) { case nameof(GroupElement): return(new GroupElementViewModel(new GroupBuilder().FromTemplate(viewModel.Model).Build())); case nameof(LinearLayoutElement): return(new LinearLayoutElementViewModel(new LinearLayoutBuilder().FromTemplate(viewModel.Model) .Build())); } return(viewModel); }
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 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 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); }
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); }