/// <summary>
        /// Edit element executed.
        /// </summary>
        protected virtual void EditElementCommand_Executed()
        {
            // update the default values list first.
            this.UpdateDefaultValuesList();

            using (SelectElementViewModel vm = new SelectElementViewModel(this.ViewModelStore, this.DefaultValues))
            {
                vm.Title = "Select a role player";

                //if (this.Elements.Count == 1)
                //    vm.Title += " of type " + this.ViewModelStore.ElementTypeProvider.GetTypeDisplayName(this.Elements[0] as ModelElement);

                bool?result = this.GlobalServiceProvider.Resolve <IUIVisualizerService>().ShowDialog("SelectElementPopup", vm);
                if (result == true)
                {
                    try
                    {
                        using (Transaction transaction = this.Store.TransactionManager.BeginTransaction("Update role value - " + this.PropertyName))
                        {
                            PropertyGridEditorViewModel.SetPropertyValues(this.Elements, this.PropertyName, vm.SelectedElement);
                            transaction.Commit();
                        }
                    }
                    catch (Exception ex)
                    {
                        System.Windows.MessageBox.Show("Error while adding: " + ex.Message);
                    }
                }
            }
            GC.Collect();
        }
Exemplo n.º 2
0
        /// <summary>
        /// Delete element executed.
        /// </summary>
        protected virtual void AddElementCommand_Executed()
        {
            WaitCursor cursor = new WaitCursor();

            try
            {
                // update the default values list first.
                this.UpdateDefaultValuesList();

                using (SelectElementViewModel vm = new SelectElementViewModel(this.ViewModelStore, this.DefaultValues))
                {
                    vm.Title = "Select a role player";

                    if (this.Elements.Count == 1)
                    {
                        if (this.Elements[0] is IDomainModelOwnable)
                        {
                            vm.Title += " of type " + (this.Elements[0] as IDomainModelOwnable).DomainElementTypeDisplayName;
                        }
                    }
                    //vm.Title += " of type " + this.ViewModelStore.GetDomainModelServices(this.Elements[0] as ModelElement).ElementTypeProvider.GetTypeDisplayName(
                    //    this.Elements[0] as ModelElement);

                    cursor.Dispose();
                    cursor = null;

                    bool?result = this.GlobalServiceProvider.Resolve <IUIVisualizerService>().ShowDialog("SelectElementPopup", vm);
                    if (result == true && vm.SelectedElement is ModelElement)
                    {
                        try
                        {
                            using (Transaction transaction = this.Store.TransactionManager.BeginTransaction("Add new relationship"))
                            {
                                RoleAssignment[] roleAssignments = new RoleAssignment[2];
                                roleAssignments[0] = new RoleAssignment(this.SourceRoleId, this.Elements[0] as ModelElement);
                                roleAssignments[1] = new RoleAssignment(this.TargetRoleId, vm.SelectedElement as ModelElement);
                                this.Store.ElementFactory.CreateElementLink(this.RelationshipDomainClassId, roleAssignments);

                                transaction.Commit();
                            }
                        }
                        catch (Exception ex)
                        {
                            System.Windows.MessageBox.Show("Error while adding: " + ex.Message);
                        }
                    }
                }
            }
            finally
            {
                if (cursor != null)
                {
                    cursor.Dispose();
                }
            }
            GC.Collect();
        }
Exemplo n.º 3
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;
        }
Exemplo n.º 4
0
        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;
        }
Exemplo n.º 5
0
        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);
        }