public override void OnInspectorGUI() { serializedObject.Update(); // Courses can change without recompile so we have to check for them. UpdateAvailableCourses(); DrawRuntimeConfigurationDropDown(); EditorGUI.BeginDisabledGroup(IsCourseListEmpty()); { DrawCourseSelectionDropDown(); GUILayout.BeginHorizontal(); { if (GUILayout.Button("Open Course in Workflow window")) { GlobalEditorHandler.SetCurrentCourse(CourseAssetUtils.GetCourseNameFromPath(configurator.GetSelectedCourse())); GlobalEditorHandler.StartEditingCourse(); } if (GUILayout.Button(new GUIContent("Show Course in Explorer..."))) { string absolutePath = $"{new FileInfo(CourseAssetUtils.GetCourseAssetPath(CourseAssetUtils.GetCourseNameFromPath(configurator.GetSelectedCourse())))}"; EditorUtility.RevealInFinder(absolutePath); } } GUILayout.EndHorizontal(); } EditorGUI.EndDisabledGroup(); serializedObject.ApplyModifiedProperties(); }
private void UpdateAvailableCourses() { if (isDirty == false) { return; } List <string> courses = CourseAssetUtils.GetAllCourses().ToList(); // Create dummy entry if no files are present. if (courses.Any() == false) { trainingCourseDisplayNames.Clear(); trainingCourseDisplayNames.Add("<none>"); return; } trainingCourseDisplayNames = courses; trainingCourseDisplayNames.Sort(); if (string.IsNullOrEmpty(configurator.GetSelectedCourse())) { SetConfiguratorSelectedCourse(CourseAssetUtils.GetCourseStreamingAssetPath(trainingCourseDisplayNames[0])); GlobalEditorHandler.SetCurrentCourse(CourseAssetUtils.GetCourseAssetPath(configurator.GetSelectedCourse())); } }