private async void CalculatePhenomena() { var ps = ViewManager.CreateViewModel <PhenomenaSettingsVM>(); ps.JulianDayFrom = sky.Context.JulianDay; ps.JulianDayTo = sky.Context.JulianDay + 30; if (ViewManager.ShowDialog(ps) ?? false) { var tokenSource = new CancellationTokenSource(); ViewManager.ShowProgress("Please wait", "Calculating phenomena...", tokenSource); var events = await Task.Run(() => sky.GetEvents( ps.JulianDayFrom, ps.JulianDayTo, ps.Categories, tokenSource.Token)); if (!tokenSource.IsCancellationRequested) { tokenSource.Cancel(); var vm = ViewManager.CreateViewModel <PhenomenaVM>(); vm.SetEvents(events); if (ViewManager.ShowDialog(vm) ?? false) { sky.SetDate(vm.JulianDay); if (vm.Body != null) { map.GoToObject(vm.Body, TimeSpan.Zero); } } } } }
private void ShowMotionTrackWindow() { var body = map.SelectedObject; if (IsMotionTrackEnabled()) { var vm = ViewManager.CreateViewModel <MotionTrackVM>(); vm.TrackId = Guid.NewGuid(); vm.SelectedBody = body; vm.JulianDayFrom = sky.Context.JulianDay; vm.JulianDayTo = sky.Context.JulianDay + 30; vm.UtcOffset = sky.Context.GeoLocation.UtcOffset; if (ViewManager.ShowDialog(vm) ?? false) { sky.Calculate(); } } else { var vm = ViewManager.CreateViewModel <TracksListVM>(); if (ViewManager.ShowDialog(vm) ?? false) { sky.Calculate(); } } }
private async void GetObjectEphemeris(CelestialObject body) { var es = ViewManager.CreateViewModel <EphemerisSettingsVM>(); es.SelectedBody = body; es.JulianDayFrom = sky.Context.JulianDay; es.JulianDayTo = sky.Context.JulianDay + 30; if (ViewManager.ShowDialog(es) ?? false) { var tokenSource = new CancellationTokenSource(); var progress = new Progress <double>(); ViewManager.ShowProgress("Please wait", "Calculating ephemerides...", tokenSource, progress); var ephem = await Task.Run(() => sky.GetEphemerides( es.SelectedBody, es.JulianDayFrom, es.JulianDayTo, es.Step.TotalDays, es.Categories, tokenSource.Token, progress )); if (!tokenSource.IsCancellationRequested) { tokenSource.Cancel(); var vm = ViewManager.CreateViewModel <EphemerisVM>(); vm.SetData(es.SelectedBody, es.JulianDayFrom, es.JulianDayTo, es.Step, ephem); ViewManager.ShowWindow(vm); } } }
private void EditFrame(FovFrame frame) { var viewModel = ViewManager.CreateViewModel <FovSettingsVM>(); viewModel.Frame = frame; if (ViewManager.ShowDialog(viewModel) ?? false) { frame = viewModel.Frame; int index = fovFrames.FindIndex(f => f.Id == frame.Id); if (index >= 0) { fovFrames.RemoveAt(index); fovFrames.Insert(index, frame); } else { fovFrames.Add(frame); } settings.Set("FovFrames", fovFrames); settings.Save(); NotifyPropertyChanged(nameof(FovFrames), nameof(IsEmptyList)); } }
private void ShowLunarEclipsesView() { var vm = ViewManager.CreateViewModel <LunarEclipseVM>(); vm.Closing += (e) => { vm.Dispose(); }; ViewManager.ShowWindow(vm); }
private void OpenFovFramesList() { var vm = ViewManager.CreateViewModel <FovFramesListVM>(); ViewManager.ShowDialog(vm); NotifyPropertyChanged( nameof(FrameMenuItems), nameof(FrameContextMenuItems), nameof(IsContextMenuVisible)); }
private void ShowTracksListWindow() { if (IsTracksListEnabled) { var vm = ViewManager.CreateViewModel <TracksListVM>(); if (ViewManager.ShowDialog(vm) ?? false) { sky.Calculate(); } } }
private void SelectLocation() { var vm = ViewManager.CreateViewModel <LocationVM>(); if (ViewManager.ShowDialog(vm) ?? false) { sky.Context.GeoLocation = new CrdsGeographical(vm.ObserverLocation); settings.Set("ObserverLocation", vm.ObserverLocation); settings.Save(); sky.Calculate(); } }
private void EditTrack(Track t) { var vm = ViewManager.CreateViewModel <MotionTrackVM>(); vm.TrackId = t.Id; vm.LabelsStep = t.LabelsStep; vm.DrawLabels = t.DrawLabels; vm.SelectedBody = t.Body; vm.JulianDayFrom = t.From; vm.JulianDayTo = t.To; vm.UtcOffset = sky.Context.GeoLocation.UtcOffset; vm.TrackColor = t.Color; if (ViewManager.ShowDialog(vm) ?? false) { sky.Calculate(); LoadList(); } }
private void AddFovFrame() { var viewModel = ViewManager.CreateViewModel <FovSettingsVM>(); viewModel.Frame = new TelescopeFovFrame() { Id = Guid.NewGuid(), Color = new SkyColor(Color.Purple) }; if (ViewManager.ShowDialog(viewModel) ?? false) { fovFrames.Add(viewModel.Frame); settings.SetAndSave("FovFrames", fovFrames); NotifyPropertyChanged( nameof(FrameMenuItems), nameof(FrameContextMenuItems), nameof(IsContextMenuVisible)); } }
/// <summary> /// Creates new plan, from filter or from collection of items. /// </summary> private void CreateNewPlan(PlanImportData data) { var planFilterVM = ViewManager.CreateViewModel <PlanningFilterVM>(); var defaults = settings.Get("PlannerDefaultSettings", new PlanningFilter()); planFilterVM.Title = Text.Get("Planner.PlanningFilter.CreateNew.Title"); planFilterVM.Filter = defaults; planFilterVM.JulianDay = sky.Context.JulianDayMidnight; planFilterVM.TimeFrom = TimeSpan.FromHours(22); planFilterVM.TimeTo = TimeSpan.FromHours(0); // create filter window with list of celestial objects if (data != null && data.Objects.Any()) { planFilterVM.CelestialObjects = data.Objects; if (data.Date != null) { planFilterVM.JulianDay = new Date(data.Date.Value).ToJulianEphemerisDay(); } if (data.Begin != null) { planFilterVM.TimeFrom = data.Begin.Value; } if (data.End != null) { planFilterVM.TimeTo = data.End.Value; } if (data.FilePath != null) { planFilterVM.Title = Text.Get("Planner.PlanningFilter.Import.Title"); } } if (ViewManager.ShowDialog(planFilterVM) ?? false) { var planListVM = ViewManager.CreateViewModel <PlanningListVM>(); ViewManager.ShowWindow(planListVM); planListVM.CreatePlan(planFilterVM.Filter); AddActivePlan(planListVM); planListVM.Closing += x => RemoveActivePlan(planListVM); } }
private void ShowPlannerDefaults() { var planFilterVM = ViewManager.CreateViewModel <PlanningFilterVM>(); var defaults = settings.Get("PlannerDefaultSettings", new PlanningFilter()); defaults.JulianDayMidnight = sky.Context.JulianDayMidnight; defaults.ObserverLocation = sky.Context.GeoLocation; planFilterVM.Title = Text.Get("Planner.PlanningFilter.Defaults"); planFilterVM.IsDateTimeControlsVisible = false; planFilterVM.Filter = defaults; if (!defaults.CelestialObjectsTypes.Any()) { planFilterVM.Nodes.First().IsChecked = true; } if (ViewManager.ShowDialog(planFilterVM) ?? false) { settings.SetAndSave("PlannerDefaultSettings", planFilterVM.Filter); } }
private void EditEquipment(Type equipmentType, bool isNew) { if (equipmentType == typeof(Telescope)) { var vm = ViewManager.CreateViewModel <TelescopeVM>(); vm.Telescopes = Telescopes; if (!isNew) { vm.Telescope.CopyFrom(Telescope); } if (ViewManager.ShowDialog(vm) ?? false) { if (isNew) { Telescopes.Add(vm.Telescope); } TelescopeId = Guid.Empty; TelescopeId = vm.Telescope.Id; Telescope.CopyFrom(vm.Telescope); _Equipment.Telescopes = new ObservableCollection <Telescope>(Telescopes.OrderBy(t => t.Name)); NotifyPropertyChanged(nameof(Telescopes), nameof(TelescopeId), nameof(Telescope)); Calculate(); SaveEquipment(); } } else if (equipmentType == typeof(Eyepiece)) { var vm = ViewManager.CreateViewModel <EyepieceVM>(); vm.Eyepieces = Eyepieces; if (!isNew) { vm.Eyepiece.CopyFrom(Eyepiece); } if (ViewManager.ShowDialog(vm) ?? false) { if (isNew) { Eyepieces.Add(vm.Eyepiece); } EyepieceId = Guid.Empty; EyepieceId = vm.Eyepiece.Id; Eyepiece.CopyFrom(vm.Eyepiece); _Equipment.Eyepieces = new ObservableCollection <Eyepiece>(Eyepieces.OrderBy(t => t.Name)); NotifyPropertyChanged(nameof(Eyepieces), nameof(EyepieceId), nameof(Eyepiece)); Calculate(); SaveEquipment(); } } else if (equipmentType == typeof(Camera)) { var vm = ViewManager.CreateViewModel <CameraVM>(); vm.Cameras = Cameras; if (!isNew) { vm.Camera.CopyFrom(Camera); } if (ViewManager.ShowDialog(vm) ?? false) { if (isNew) { Cameras.Add(vm.Camera); } CameraId = Guid.Empty; CameraId = vm.Camera.Id; Camera.CopyFrom(vm.Camera); _Equipment.Cameras = new ObservableCollection <Camera>(Cameras.OrderBy(t => t.Name)); NotifyPropertyChanged(nameof(Cameras), nameof(CameraId), nameof(Camera)); Calculate(); SaveEquipment(); } } else if (equipmentType == typeof(Binocular)) { var vm = ViewManager.CreateViewModel <BinocularVM>(); vm.Binoculars = Binoculars; if (!isNew) { vm.Binocular.CopyFrom(Binocular); } if (ViewManager.ShowDialog(vm) ?? false) { if (isNew) { Binoculars.Add(vm.Binocular); } BinocularId = Guid.Empty; BinocularId = vm.Binocular.Id; Binocular.CopyFrom(vm.Binocular); _Equipment.Binoculars = new ObservableCollection <Binocular>(Binoculars.OrderBy(t => t.Name)); NotifyPropertyChanged(nameof(Binoculars), nameof(BinocularId), nameof(Binocular)); Calculate(); SaveEquipment(); } } }