public Point? LoadElementPosition(GroupableNode node)
        {
            if (ShapePositions.Any(x => x.Key == node.Id))
            {
                return ShapePositions.First(x => x.Key == node.Id).Value;
            }

            return null;
        }
        public Point? LoadElementPosition(GroupableNode node)
        {
            Debug.Assert(ShapePositions != null, "Shape positions not initialized");

            if (ShapePositions.Any(x => x.Key == node.Id))
            {
                return ShapePositions.First(x => x.Key == node.Id).Value;
            }

            return null;
        }
Example #3
0
 public void RemoveChild(GroupableNode child)
 {
     this.ChildNodes.Remove(child);
     RecalculateHeight();
 }
Example #4
0
 public void AddChild(GroupableNode child)
 {
     this.ChildNodes.Add(child);
     this.RecalculateHeight();
 }
        public void SaveElementPosition(GroupableNode node, Point? point)
        {
            if (ShapePositions.Any(x => x.Key == node.Id))
            {
                ShapePositions.Remove(node.Id);
            }

            if (point.HasValue)
            {
                ShapePositions.Add(node.Id, point.Value);
            }

            // Saving into file
            if (this.FilePath != null)
            {
                var fileContent = JsonConvert.SerializeObject(this.ShapePositions);
                File.WriteAllText(this.FilePath, fileContent);
            }
        }
 public void RemoveElementPosition(GroupableNode node)
 {
     this.SaveElementPosition(node, null);
 }
        private Point CalculateElementPosition(GroupableNode node)
        {
            var x = 50.0;
            var y = 100.0;

            if (node is EndpointNode)
            {
                var leftAlignment = GetYPosition(Endpoint_LeftAlignment);
                var rightAlignment = GetYPosition(Endpoint_RightAlignment);

                if (leftAlignment <= rightAlignment)
                {
                    x = Endpoint_LeftAlignment;
                }
                else
                {
                    x = Endpoint_RightAlignment;
                }
            }
            else if (node is CommandNode || node is EventNode)
            {
                x = Message_Alignment;
            }

            y = GetYPosition(x);

            return new Point(x, y);
        }
        public void SetElementPosition(GroupableNode node)
        {
            var position = this.LoadElementPosition(node);

            if (!position.HasValue)
            {
                position = this.CalculateElementPosition(node);
                this.SaveElementPosition(node, position.Value);
            }

            node.BoundsChanged += (s, e) => this.SaveElementPosition(node, node.Bounds.Location);
            node.Bounds = new Rect (position.Value, node.Bounds.Size);
        }
        public void SaveElementPosition(GroupableNode node, Point? point)
        {
            if (ShapePositions.Any(x => x.Key == node.Id))
            {
                ShapePositions.Remove(node.Id);
            }

            if (point.HasValue)
            {
                ShapePositions.Add(node.Id, point.Value);
            }

            // Saving into file
            if (this.FilePath != null)
            {
                try
                {
                    var fileContent = JsonConvert.SerializeObject(this.ShapePositions);
                    File.WriteAllText(this.FilePath, fileContent);
                }
                catch (Exception ex)
                {
                    tracer.Error(ex, "Cannot save shape positions to DiagramShapePositions.json.");
                }
            }
        }
Example #10
0
 public void RemoveChild(GroupableNode child)
 {
     this.ChildNodes.Remove(child);
     RecalculateHeight();
 }
Example #11
0
 public void AddChild(GroupableNode child)
 {
     this.ChildNodes.Add(child);
     this.RecalculateHeight();
 }