public TrackingControlViewModel(ITrackPresenter TrackPresenter, IMappingService MappingService, TrackFormatterManager TrackFormatterManager) { _trackPresenter = TrackPresenter; _trackFormatterManager = TrackFormatterManager; _mappingService = MappingService; _track = new ReactiveList<EarthPoint>(); _track.Changed .Subscribe(_ => RefreshTrack()); LoadTrack = ReactiveCommand.CreateAsyncTask(LoadTrackImpl); SaveTrack = ReactiveCommand.CreateAsyncTask(SaveTrackImpl); ReactiveCommand<object> clearCommand = ReactiveCommand.Create(_track.IsEmptyChanged.Select(e => !e)); clearCommand.Subscribe(_ => _track.Clear()); ClearTrack = clearCommand; IConnectableObservable<TrackPathRider> prp = _track.Changed .Select(_ => new TrackPathRider(new GpsTrack(_track.ToList()))) .Publish(); PathRider = prp; prp.Connect(); _mappingService.Clicks .Where(c => c.Action == MouseAction.LeftClick) .Subscribe(c => AppendPointToTrack(c.Point)); _mappingService.Clicks .Where(c => c.Action == MouseAction.RightClick) .Subscribe(c => _track.Remove(_track.LastOrDefault())); }
public SegmentationTrackPresenterDecorator(int SegmentLength, ITrackPresenter Core) { _core = Core; _segmentLength = SegmentLength; }
public TrackFilterPresenterDecorator(double Step, ITrackPresenter Core) { _core = Core; _step = Step; }