private void UpdateArrow(EdgeType type)
        {
            switch (type)
            {
            case EdgeType.ConditionalFlow:
                delegateStyle.SourceArrow = new IconArrow(IconFactory.CreateArrowIcon(ArrowType.ConditionalSource, Color))
                {
                    Bounds = new SizeD(16, 8), CropLength = 0, Length = 16
                };
                delegateStyle.TargetArrow = new IconArrow(IconFactory.CreateArrowIcon(ArrowType.DefaultTarget, Color))
                {
                    Bounds = new SizeD(8, 6), CropLength = 0, Length = 8
                };
                break;

            case EdgeType.Association:
                delegateStyle.SourceArrow = Arrows.None;
                delegateStyle.TargetArrow = Arrows.None;
                break;

            case EdgeType.DirectedAssociation:
                delegateStyle.SourceArrow = Arrows.None;
                delegateStyle.TargetArrow = new IconArrow(IconFactory.CreateArrowIcon(ArrowType.Association, Color))
                {
                    Bounds = new SizeD(8, 6), CropLength = 0, Length = 0
                };
                break;

            case EdgeType.BidirectedAssociation:
                delegateStyle.SourceArrow = new IconArrow(IconFactory.CreateArrowIcon(ArrowType.Association, Color))
                {
                    Bounds = new SizeD(8, 6), CropLength = 0, Length = 0
                };
                delegateStyle.TargetArrow = new IconArrow(IconFactory.CreateArrowIcon(ArrowType.Association, Color))
                {
                    Bounds = new SizeD(8, 6), CropLength = 0, Length = 0
                };
                break;

            case EdgeType.MessageFlow:
                delegateStyle.SourceArrow = new IconArrow(IconFactory.CreateArrowIcon(ArrowType.MessageSource, Color))
                {
                    Bounds = new SizeD(6, 6), CropLength = 0, Length = 6
                };
                delegateStyle.TargetArrow = new IconArrow(IconFactory.CreateArrowIcon(ArrowType.MessageTarget, Color))
                {
                    Bounds = new SizeD(8, 6), CropLength = 0, Length = 8
                };
                break;

            case EdgeType.DefaultFlow:
                delegateStyle.SourceArrow = new IconArrow(IconFactory.CreateArrowIcon(ArrowType.DefaultSource, Color))
                {
                    Bounds = new SizeD(8, 6), CropLength = 0, Length = 0
                };
                delegateStyle.TargetArrow = new IconArrow(IconFactory.CreateArrowIcon(ArrowType.DefaultTarget, Color))
                {
                    Bounds = new SizeD(8, 6), CropLength = 0, Length = 8
                };
                break;

            case EdgeType.Conversation:
                delegateStyle.SourceArrow = Arrows.None;
                delegateStyle.TargetArrow = Arrows.None;
                break;

            case EdgeType.SequenceFlow:
            default:
                delegateStyle.SourceArrow = Arrows.None;
                delegateStyle.TargetArrow = new IconArrow(IconFactory.CreateArrowIcon(ArrowType.DefaultTarget, Color))
                {
                    Bounds = new SizeD(8, 6), CropLength = 0, Length = 8
                };
                break;
            }
        }