Example #1
0
        public void ProcessCreateNewAttribute()
        {
            var entityID = new ProjectTreeHelper().GetFirstAncestorID <EntityDTO>();

            if (entityID == Guid.Empty)
            {
                throw new InvalidOperationException("No entity selected.");
            }
            var newAttribute = new AttributeDTO()
            {
                AttributeName = "<Enter name>", EntityID = entityID
            };

            var view = new AttributeDetailsView();

            view.Object = newAttribute;

            var popup = new PopupWindow();

            popup.Title    = "New Attribute";
            popup.Validate = () => { return(new Validator().Validate(newAttribute)); };
            popup.ViewPanel.Children.Add(view);

            if (popup.ShowDialog() == true)
            {
                new ObjectDataSource().SaveObject(newAttribute);
                ServiceLocator serviceLocator = ServiceLocator.GetActive();
                serviceLocator.BasicController.ProcessProjectTreeRefresh();
            }
        }
Example #2
0
        public void ProcessShowProjectTreeNodeDetails()
        {
            var serviceLocator = ServiceLocator.GetActive();

            serviceLocator.SessionState.ValidationErrors.Clear();
            serviceLocator.SessionState.ObjectInEditor = null;

            var node = new ProjectTreeHelper().GetCurrentNode();

            if (node == null)
            {
                serviceLocator.SessionState.DetailsPanel.Children.Clear();
                serviceLocator.SessionState.DetailsView = null;
                return;
            }

            IDetailsView view             = null;
            var          persistentObject = node.Object as PersistentObjectDTO;

            if (persistentObject != null)
            {
                if (persistentObject.PersistentType == typeof(Entity))
                {
                    view = new EntityDetailsView();
                }
                else if (persistentObject.PersistentType == typeof(Project))
                {
                    view = new ProjectDetailsView();
                }
                else if (persistentObject.PersistentType == typeof(Database))
                {
                    view = new DatabaseDetailsView();
                }
                else if (persistentObject.PersistentType == typeof(ERModel.Attribute))
                {
                    view = new AttributeDetailsView();
                }
                else if (persistentObject.PersistentType == typeof(DataType))
                {
                    view = new DataTypeDetailsView();
                }
                else if (persistentObject.PersistentType == typeof(Relation))
                {
                    view = new RelationDetailsView();
                }
                else if (persistentObject.PersistentType == typeof(RelationItem))
                {
                    view = new RelationItemDetailsView();
                }
                else if (persistentObject.PersistentType == typeof(Diagram))
                {
                    view = new DiagramChartView();
                }
                else if (persistentObject.PersistentType == typeof(DiagramEntity))
                {
                    view = new DiagramEntityDetailsView();
                }
                else if (persistentObject.PersistentType == typeof(BaseEnum))
                {
                    view = new BaseEnumDetailsView();
                }
                else if (persistentObject.PersistentType == typeof(BaseEnumValue))
                {
                    view = new BaseEnumValueDetailsView();
                }

                if (view != null)
                {
                    view.Object = persistentObject;
                }
            }

            serviceLocator.SessionState.DetailsPanel.Children.Clear();
            serviceLocator.SessionState.DetailsView    = view;
            serviceLocator.SessionState.ObjectInEditor = persistentObject;

            if (view != null)
            {
                serviceLocator.SessionState.DetailsPanel.Children.Add(view as UIElement);
            }
        }