/// <summary> /// Draws the given errors. /// </summary> /// <param name="errors">The errors.</param> /// <param name="unityInterface">The unity interface.</param> public void Errors(List <UnityTestBDDError> errors, IUnityInterfaceWrapper unityInterface) { BDDExtensionRunner bddExtensionRunner = this.component.gameObject.GetComponent <BDDExtensionRunner>(); string openComponentButtonTextureFullPath = Utilities.GetAssetFullPath(bddExtensionRunner, this.OpenComponentButtonTextureFileName); string errorTextureFullPath = Utilities.GetAssetFullPath(bddExtensionRunner, this.ErrorTextureFileName); foreach (UnityTestBDDError error in errors) { unityInterface.EditorGUILayoutBeginHorizontal(); unityInterface.EditorGUILayoutSeparator(); unityInterface.EditorGUILayoutSeparator(); unityInterface.EditorGUILayoutEndHorizontal(); unityInterface.EditorGUILayoutBeginHorizontal(); float currentViewWidth = unityInterface.EditorGUIUtilityCurrentViewWidth(); Texture2D errorTexture = unityInterface.AssetDatabaseLoadAssetAtPath(errorTextureFullPath, typeof(Texture2D)); GUILayoutOption[] errorTextureOptions = new GUILayoutOption[2] { unityInterface.GUILayoutWidth(24), unityInterface.GUILayoutHeight(24) }; unityInterface.EditorGUILayoutLabelField(errorTexture, errorTextureOptions); float labelWidth = currentViewWidth - 100; unityInterface.EditorGUILayoutLabelField(error.Message, labelWidth); Texture2D openComponentButtonTexture = unityInterface.AssetDatabaseLoadAssetAtPath(openComponentButtonTextureFullPath, typeof(Texture2D)); GUILayoutOption[] options = new GUILayoutOption[2] { unityInterface.GUILayoutWidth(24), unityInterface.GUILayoutHeight(24) }; if (unityInterface.GUILayoutButton(openComponentButtonTexture, EditorStyles.label, options)) { if (error.MethodMethodInfo != null) { SourcesManagement.OpenMethodSourceCode(error.MethodMethodInfo, unityInterface); } else if (error.Component != null) { SourcesManagement.OpenSourceCode(error.Component, unityInterface); } else { MethodInfo[] methods = this.component.GetType().GetMethods(); foreach (MethodInfo method in methods) { if (method.DeclaringType.Name.Equals(this.component.GetType().Name)) { SourcesManagement.OpenSourceCode(method, unityInterface); } } } } unityInterface.EditorGUILayoutEndHorizontal(); } }
/// <summary> /// Draws the given errors. /// </summary> /// <param name="errors">The errors.</param> /// <param name="unityInterface">The unity interface.</param> /// <param name="bddExtensionRunner">The BDD extension runner.</param> public void Errors(List <UnityTestBDDError> errors, IUnityInterfaceWrapper unityInterface, BDDExtensionRunner bddExtensionRunner) { string openComponentButtonTextureFullPath = Utilities.GetAssetFullPath(bddExtensionRunner, this.OpenComponentButtonTextureFileName); string errorTextureFullPath = Utilities.GetAssetFullPath(bddExtensionRunner, this.ErrorTextureFileName); foreach (UnityTestBDDError error in errors) { unityInterface.EditorGUILayoutBeginHorizontal(); unityInterface.EditorGUILayoutSeparator(); unityInterface.EditorGUILayoutSeparator(); unityInterface.EditorGUILayoutEndHorizontal(); unityInterface.EditorGUILayoutBeginHorizontal(); float currentViewWidth = unityInterface.EditorGUIUtilityCurrentViewWidth(); if (error.ShowRedExclamationMark) { Texture2D errorTexture = unityInterface.AssetDatabaseLoadAssetAtPath(errorTextureFullPath, typeof(Texture2D)); GUILayoutOption[] errorTextureOptions = new GUILayoutOption[2] { unityInterface.GUILayoutWidth(24), unityInterface.GUILayoutHeight(24) }; unityInterface.EditorGUILayoutLabelField(errorTexture, errorTextureOptions); } float labelWidth = currentViewWidth - 100; unityInterface.EditorGUILayoutLabelField(error.Message, labelWidth); Texture2D openComponentButtonTexture = unityInterface.AssetDatabaseLoadAssetAtPath(openComponentButtonTextureFullPath, typeof(Texture2D)); GUILayoutOption[] options = new GUILayoutOption[2] { unityInterface.GUILayoutWidth(24), unityInterface.GUILayoutHeight(24) }; if (error.ShowButton) { if (unityInterface.GUILayoutButton(openComponentButtonTexture, EditorStyles.label, options)) { if (error.MethodMethodInfo != null) { SourcesManagement.OpenMethodSourceCode(error.MethodMethodInfo, unityInterface); } else if (error.Component != null) { SourcesManagement.OpenSourceCode(error.Component, unityInterface); } } } unityInterface.EditorGUILayoutEndHorizontal(); } }