/// <summary> /// Override this method to extend or re-implement a custom ListView template. /// </summary> /// <param name="element">The root visual template element. This is called for every instancce spawned by the ListView.</param> /// <param name="scriptableObject">The data object that should be assigned to the visual element.</param> /// <param name="serializedObject">A SerializedObject Wrapper of the ScriptableObject. Useful for directly binding data.</param> public virtual void BindListViewItem(VisualElement element, T scriptableObject, SerializedObject serializedObject) { string assetName = AssetDatabase.GetAssetPath(scriptableObject).Split('/').Last().Replace(".asset", ""); var icon = element.Q <VisualElement>(UXMLNames.TemplateIcon); var bgImgValue = icon.style.backgroundImage; var background = bgImgValue.value; background.texture = IconProviderInternal((serializedObject?.targetObject as T)); icon.style.backgroundImage = background; var templateLabel = element.Q <Label>(UXMLNames.TemplateNameLabel); templateLabel.bindingPath = ((MemberExpression)NameProvier.Body).Member.Name; templateLabel.Bind(serializedObject); Label nameLabel = element.Q <Label>(UXMLNames.TemplatePathLabel); nameLabel.text = assetName; var descriptionLabel = element.Q <Label>(UXMLNames.TemplateNameDescription); try { descriptionLabel.bindingPath = ((MemberExpression)DescriptionProvider.Body).Member.Name; } catch { //not pointing to a property, return string descriptionLabel.text = DescriptionProvider.Compile().Invoke((serializedObject?.targetObject as T)); } descriptionLabel.Bind(serializedObject); }
public void GivenFormatAndNoVariable() { var format = "some value: {nullvariable}"; var result = DescriptionProvider.GetDescription(format, null); result.Should().Be(@"some value: {nullvariable}"); }
public void GivenFormatAndMatchingCompoundVariable() { var format = "some value: {parent.variable}"; var values = JObject.Parse(@"{ ""parent"": { ""variable"": ""Value"" }}"); var result = DescriptionProvider.GetDescription(format, values); result.Should().Be(@"some value: Value"); }
public void GivenFormatAndNotMatchingStringVariable() { var format = "some value: {variable}"; var values = JObject.Parse(@"{ ""otherVariable"": ""Value"" }"); var result = DescriptionProvider.GetDescription(format, values); result.Should().Be(@"some value: {variable}"); }
public void GivenFormatAndMatchingStringVariables() { var format = "some value: {variable1}, other value: {variable2}"; var values = JObject.Parse(@"{ ""variable1"": ""Value1"", ""variable2"": ""Value2"" }"); var result = DescriptionProvider.GetDescription(format, values); result.Should().Be(@"some value: Value1, other value: Value2"); }
public override string GetContent() { ParameterInfo[] parameters = Method.GetParameters(); PipeTableDocumentComponent parameterTable = new PipeTableDocumentComponent("Name", "Description", "Type"); foreach (ParameterInfo parameter in parameters) { parameterTable.AddRow(parameter.Name, DescriptionProvider.GetParameterDescription(parameter), parameter.ParameterType.Name); } return(parameterTable.GetContent()); }
public string GetDescription(string format) { return(DescriptionProvider.GetDescription(format, DescriptionValues)); }