Example #1
0
        /// <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);
        }
Example #2
0
        public void GivenFormatAndNoVariable()
        {
            var format = "some value: {nullvariable}";
            var result = DescriptionProvider.GetDescription(format, null);

            result.Should().Be(@"some value: {nullvariable}");
        }
Example #3
0
        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");
        }
Example #4
0
        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}");
        }
Example #5
0
        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());
        }
Example #7
0
 public string GetDescription(string format)
 {
     return(DescriptionProvider.GetDescription(format, DescriptionValues));
 }