private IEnumerable<IAction> Convert( RoadLaneBlock control ) { yield return CreateNewCommand( control ); if ( control.LeftEdge.Connector.PreviousEdge != null ) { yield return Actions.Call<RoadLaneBlock>( control.Id, // BUG To nie bedzie dzialac () => control.LeftEdge.Connector.ConnectEndOn( Is.Control( control.LeftEdge.Connector.PreviousEdge.Parent ) ) ); } if ( control.RightEdge.Connector.NextEdge != null ) { yield return Actions.Call<RoadLaneBlock>( control.Id, // BUG To nie bedzie dzialac () => control.RightEdge.Connector.ConnectStartFrom( Is.Control( control.RightEdge.Connector.NextEdge.Parent ) ) ); } base.BuildRoutes( control ); // base.BuildRoutes( control.LeftEdge ); // base.BuildRoutes( control.RightEdge ); }
public EndRoadLaneEdge( Factories.Factories factories, MovablePoint startPoint, MovablePoint endPoint, RoadLaneBlock parent ) : base( factories, startPoint, endPoint, Styles.NormalStyle, parent ) { this._parrent = parent; this._notMovableMouseHandler = factories.MouseHandlerFactory.CreateEmpty(); this.Connector = new EndRoadLaneEdgeConnector( this ); }
public Lane( RoadLaneBlock lane, Func<Lane, IRoadInformation> conductorFactory ) : base( lane ) { Contract.Requires( lane != null ); Contract.Requires( conductorFactory != null ); Contract.Ensures( this.Information != null ); this.RoadLaneBlock = lane; this._roadInformation = conductorFactory( this ); }
public void ConnectStartFrom( RoadLaneBlock roadLaneEdge ) { this.ConnectedEdge = roadLaneEdge.LeftEdge; this.OpositeEdge = roadLaneEdge.LeftEdge.GetOppositeEdge(); this.OpositeEdge.Translated.Subscribe( x => this._owner.RecalculatePosition() ); this._owner.RecalculatePosition(); // this._owner.Routes.AddRoute( new RouteElement( roadLaneEdge, PriorityType.None ) ); }
private static UseCtorToCreateControl<RoadLaneBlock> CreateNewCommand( RoadLaneBlock control ) { return Actions.CreateControl( control.Id, () => new RoadLaneBlock( Is.Ioc<Factories.Factories>() ) ); }
public void ConnectBeginFrom( RoadLaneBlock roadLaneEdge ) { this.Edge = roadLaneEdge.LeftEdge; }
public void ConnectEndsOn( RoadLaneBlock roadLaneEdge ) { this.Edge = roadLaneEdge.RightEdge; }