///--------------------------------------------------------------------------------
        /// <summary>This method removes an entity from the view model.</summary>
        ///
        /// <param name="diagramEntity">The diagram entity to remove.</param>
        ///--------------------------------------------------------------------------------
        public void RemoveEntity(DiagramEntityViewModel diagramEntity, bool isDeleted = false)
        {
            // remove diagram entity
            DiagramEntities.Remove(diagramEntity);
            Items.Remove(diagramEntity);
            //diagramEntity.Dispose();
            ClearSelectedItems();
            if (isDeleted == false)
            {
                EntityViewModel entity = EntitiesRemoved.Find("EntityID", diagramEntity.EntityViewModel.EntityID);
                if (entity != null)
                {
                    EntitiesRemoved.Remove(entity);
                    Entities.Add(entity);
                    Entities.Sort("DisplayName", SortDirection.Ascending);
                }
            }
            IList <DiagramRelationshipViewModel> relationshipsToRemove = new List <DiagramRelationshipViewModel>();

            foreach (DiagramRelationshipViewModel diagramRelationship in DiagramRelationships)
            {
                if (diagramRelationship.SinkDiagramEntityViewModel.EntityID == diagramEntity.EntityID || diagramRelationship.SourceDiagramEntityViewModel.EntityID == diagramEntity.EntityID)
                {
                    relationshipsToRemove.Add(diagramRelationship);
                }
            }
            foreach (DiagramRelationshipViewModel diagramRelationship in relationshipsToRemove)
            {
                DiagramRelationships.Remove(diagramRelationship);
                Items.Remove(diagramRelationship);
            }
            Refresh(false);
        }
        ///--------------------------------------------------------------------------------
        /// <summary>This method adds an entity to the view model.</summary>
        ///
        /// <param name="entity">The entity to add.</param>
        /// <param name="position">The desired position to place the entity.</param>
        ///--------------------------------------------------------------------------------
        public DiagramEntityViewModel AddEntity(EntityViewModel entity, Point position, bool isNewEntity = false)
        {
            DiagramEntity dropDiagram = new DiagramEntity();

            dropDiagram.DiagramID       = DiagramID;
            dropDiagram.DiagramEntityID = Guid.NewGuid();
            EntityViewModel        entityView    = entity;
            DiagramEntityViewModel diagramEntity = new DiagramEntityViewModel(dropDiagram, entityView, this);

            diagramEntity.X        = Math.Max(0, position.X);
            diagramEntity.Y        = Math.Max(0, position.Y);
            diagramEntity.Width    = Double.NaN;
            diagramEntity.Height   = Double.NaN;
            diagramEntity.Updated += new EventHandler(Children_Updated);
            diagramEntity.DiagramEntity.Entity = diagramEntity.EntityViewModel.Entity;
            diagramEntity.ResetModified(false);
            diagramEntity.EditDiagramEntity.ResetModified(false);
            if (isNewEntity == true)
            {
                AddDiagramEntity(diagramEntity);
            }
            else
            {
                DiagramEntities.Add(diagramEntity);
                Items.Add(diagramEntity);
            }
            ClearSelectedItems();
            diagramEntity.IsSelected = true;
            diagramEntity.ZIndex     = ++ZIndex;
            Entities.Remove(entity);
            EntitiesRemoved.Add(entity);
            diagramEntity.PositionChanged += new EventHandler(diagramEntity_PositionChanged);

            AddRelationships(diagramEntity);

            return(diagramEntity);
        }
Example #3
0
 private void OnEntitiesRemoved(List <int> deadEntities)
 {
     EntitiesRemoved?.Invoke(null, new EntitiesRemovedEventAgs(deadEntities));
 }
Example #4
0
 private static void OnEntitiesRemoved(List <Entity> deadEntities)
 {
     EntitiesRemoved?.Invoke(null, new EntitiesRemovedEventAgs(deadEntities));
 }
Example #5
0
 public void SendEntitiesRemoved(List <BaseEntity> removedEntities)
 {
     EntitiesRemoved?.Invoke(removedEntities);
 }