private void SaveProjectAs(TelemetryProject project, string fileName) { UpdateProjectState(project); project.Save(fileName); MessageBox.Show($"Project {project.Name} saved"); DisplayProjectName(project); }
protected virtual void OnProjectChanged(TelemetryProject project) { if (project != null) { SetProjectOpenFormState(); } else { SetProjectClosedFormState(); } }
private bool PromptToSaveChanges(TelemetryProject project) { var cancel = false; var promptResponse = MessageBox.Show(this, "Save changes to the project?", "Save Changes?", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); if (promptResponse == DialogResult.Cancel) { cancel = true; } else if (promptResponse == DialogResult.Yes) { SaveProject(project); } return(cancel); }
private void DisplayProject(TelemetryProject project) { ClearProjectDisplay(); DisplayProjectName(project); foreach (DisplayInfo displayInfo in project.Displays) { if (displayInfo is LapTimesDisplayInfo) { NewLapTimesDisplay((LapTimesDisplayInfo)displayInfo); } if (displayInfo is LineGraphDisplayInfo) { NewLineGraphDisplay((LineGraphDisplayInfo)displayInfo); } } }
private void UpdateProjectState(TelemetryProject project) { project.SessionName = _sessionFileName; project.Displays.Clear(); foreach (ITelemetryDisplay display in _displayController.Displays) { if (display is ITelemetryFrameDisplay) { project.Displays.Add(((ITelemetryFrameDisplay)display).DisplayInfo); } else if (display is ITelemetryLapDisplay) { project.Displays.Add(((ITelemetryLapDisplay)display).DisplayInfo); } } }
private bool CloseProject(TelemetryProject project) { var cancel = false; if (project != null && ProjectHasChanges(project)) { cancel = PromptToSaveChanges(project); } if (!cancel) { ClearProjectDisplay(); Project = null; } return(cancel); }
private void LoadNewProject() { var cancel = false; if (Project != null) { cancel = CloseProject(Project); } if (!cancel) { var projectName = GetProjectName(""); Project = new TelemetryProject() { Name = projectName }; DisplayProject(Project); } }
private void SaveProject(TelemetryProject project) { var dialog = new SaveFileDialog() { InitialDirectory = ProjectsFolder, Filter = "Project Files (*.json)|*.json|All Files (*.*)|*.*", FilterIndex = 1, FileName = Path.GetFileName(GetProjectFileName(project)) }; if (dialog.ShowDialog(this) == DialogResult.OK) { var nameToSaveAs = Path.GetFileNameWithoutExtension(dialog.FileName); if (nameToSaveAs != project.Name) { project.Name = nameToSaveAs; } SaveProjectAs(project, dialog.FileName); Project = project; } }
private async Task <TelemetryProject> OpenProject(string fileName) { var project = TelemetryProject.Load(fileName); if (project != null) { if (Session == null) { if (!String.IsNullOrEmpty(project.SessionName)) { Session = await LoadTelemetryFileSessionAsync(project.SessionName); } } else { project.SessionName = _sessionFileName; } DisplayProject(project); } return(project); }
private void DisplayProjectName(TelemetryProject project) { lblProject.Text = $"Project: [{project.Name}]"; }
private bool ProjectHasChanges(TelemetryProject project) { var newState = TelemetryProject.SerializeProject(project); return(project.State != newState); }
private string GetProjectFileName(TelemetryProject project) { return(Path.Combine(ProjectsFolder, $"{Project.Name}.json")); }