Ejemplo n.º 1
0
        public void ProcessCreateNewDataType()
        {
            var databaseID = new ProjectTreeHelper().GetFirstAncestorID <DatabaseDTO>();

            if (databaseID == Guid.Empty)
            {
                throw new InvalidOperationException("No database selected.");
            }
            var newDataType = new DataTypeDTO()
            {
                TypeName = "<Enter name>", DatabaseID = databaseID
            };

            var view = new DataTypeDetailsView();

            view.Object = newDataType;

            var popup = new PopupWindow();

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

            if (popup.ShowDialog() == true)
            {
                new ObjectDataSource().SaveObject(newDataType);
                ServiceLocator serviceLocator = ServiceLocator.GetActive();
                serviceLocator.BasicController.ProcessProjectTreeRefresh();
            }
        }
Ejemplo n.º 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);
            }
        }