private void UpdatePort()
 {
     if (_fly != null)
     {
         _fly.InitShape(this);
         _fly.Reposition(this, Point.Empty);
     }
 }
        public void AssignFly(IFlyweightShape<BusShape> fly)
        {
            if(_fly != fly)
            {
                _fly = fly;
                if(_fly != null)
                {
                    _fly.InitShape(this);
                    _fly.Reposition(this, Point.Empty);
                }
            }

            Invalidate();
        }
        public void AssignFly(IFlyweightShape <PortShape> fly)
        {
            if (_fly != fly)
            {
                _fly = fly;
                if (_fly != null)
                {
                    _fly.InitShape(this);
                    _fly.Reposition(this, Point.Empty);
                }
            }

            Invalidate();
        }
 public override void Move(Point p)
 {
     base.Move(p);
     _fly.Reposition(this, p);
 }