Esempio n. 1
0
        public override DataTemplate SelectTemplate(object item, DependencyObject container)
        {
            DependencyObject depObj = container;

            while (depObj.GetType() != typeof(SfDataGrid))
            {
                depObj = VisualTreeHelper.GetParent(depObj);
                if (depObj == null)
                {
                    return(null);
                }
            }
            if (depObj is FrameworkElement element)
            {
                if (item is PublishedReferentialAction refAction)
                {
                    if (refAction.PublishedReferential.FileHash != null && ExtensionsUtil.IsImageExtension(refAction.PublishedReferential.File.Extension))
                    {
                        return(element.FindResource("ImageTemplate") as DataTemplate);
                    }
                    if (refAction.PublishedReferential.FileHash != null)
                    {
                        return(element.FindResource("UriTemplate") as DataTemplate);
                    }
                    return(element.FindResource("TextTemplate") as DataTemplate);
                }
            }
            return(null);
        }
Esempio n. 2
0
 public override DataTemplate SelectTemplate(object item, DependencyObject container)
 {
     if (container is FrameworkElement element)
     {
         if (item is PublishedReferentialAction refAction)
         {
             if (refAction.PublishedReferential.FileHash != null && ExtensionsUtil.IsImageExtension(refAction.PublishedReferential.File.Extension))
             {
                 return(element.FindResource("ImageTemplate") as DataTemplate);
             }
             if (refAction.PublishedReferential.FileHash != null)
             {
                 return(element.FindResource("UriTemplate") as DataTemplate);
             }
             return(element.FindResource("TextTemplate") as DataTemplate);
         }
         else if (item is PublishedResource pResource)
         {
             if (pResource.FileHash != null && ExtensionsUtil.IsImageExtension(pResource.File.Extension))
             {
                 return(element.FindResource("ResourceImageTemplate") as DataTemplate);
             }
             if (pResource.FileHash != null)
             {
                 return(element.FindResource("ResourceUriTemplate") as DataTemplate);
             }
             return(element.FindResource("ResourceTextTemplate") as DataTemplate);
         }
         else if (item is PublishedActionCategory pCategory)
         {
             if (pCategory.FileHash != null && ExtensionsUtil.IsImageExtension(pCategory.File.Extension))
             {
                 return(element.FindResource("CategoryImageTemplate") as DataTemplate);
             }
             if (pCategory.FileHash != null)
             {
                 return(element.FindResource("CategoryUriTemplate") as DataTemplate);
             }
             return(element.FindResource("CategoryTextTemplate") as DataTemplate);
         }
         else if (item is Skill skill)
         {
             if (skill.Hash != null && ExtensionsUtil.IsImageExtension(skill.CloudFile.Extension))
             {
                 return(element.FindResource("SkillImageTemplate") as DataTemplate);
             }
             if (skill.Hash != null)
             {
                 return(element.FindResource("SkillUriTemplate") as DataTemplate);
             }
             return(element.FindResource("SkillTextTemplate") as DataTemplate);
         }
     }
     return(null);
 }
Esempio n. 3
0
 public override DataTemplate SelectTemplate(object item, DependencyObject container)
 {
     if (item is PublishedAction pAction && pAction.PublishedResource != null)
     {
         if (pAction.PublishedResource.FileHash != null && ExtensionsUtil.IsImageExtension(pAction.PublishedResource.File.Extension))
         {
             return(Application.Current.Resources["ResourceImageTemplate"] as DataTemplate);
         }
         if (pAction.PublishedResource.FileHash != null)
         {
             return(Application.Current.Resources["ResourceUriTemplate"] as DataTemplate);
         }
         return(Application.Current.Resources["ResourceTextTemplate"] as DataTemplate);
     }
     return(Application.Current.Resources["ResourceNullTemplate"] as DataTemplate);
 }
Esempio n. 4
0
 public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
 {
     try
     {
         if (value is ICollection <PublishedReferentialAction> refs)
         {
             if (refs.Any() == true && refs.All(_ => _.PublishedReferential.File != null && ExtensionsUtil.IsImageExtension(_.PublishedReferential.File.Extension)))
             {
                 return(Orientation.Horizontal);
             }
         }
         return(Orientation.Vertical);
     }
     catch
     {
         return(Orientation.Vertical);
     }
 }
        private Component CreateText(GameObject gameObject, TextComponent textComponent)
        {
            var text = gameObject.AddComponent <TextMeshProUGUI>();

            text.enableWordWrapping = false;
            text.overflowMode       = TextOverflowModes.Overflow;
            text.richText           = false;
            text.raycastTarget      = false;

            if (textComponent.Text != null)
            {
                text.text = textComponent.Text;
            }
            if (textComponent.Size != null)
            {
                text.fontSize = Mathf.RoundToInt(textComponent.Size.Value);
            }
            if (textComponent.Color != null)
            {
                text.color = textComponent.Color.Value;
            }
            if (textComponent.Align != null)
            {
                switch (textComponent.Align.Value)
                {
                case TextComponent.TextAlign.UpperLeft:
                    text.alignment = TextAlignmentOptions.TopLeft;
                    break;

                case TextComponent.TextAlign.UpperCenter:
                    text.alignment = TextAlignmentOptions.Top;
                    break;

                case TextComponent.TextAlign.UpperRight:
                    text.alignment = TextAlignmentOptions.TopRight;
                    break;

                case TextComponent.TextAlign.MiddleLeft:
                    text.alignment = TextAlignmentOptions.MidlineLeft;
                    break;

                case TextComponent.TextAlign.MiddleCenter:
                    text.alignment = TextAlignmentOptions.Midline;
                    break;

                case TextComponent.TextAlign.MiddleRight:
                    text.alignment = TextAlignmentOptions.MidlineRight;
                    break;

                case TextComponent.TextAlign.LowerLeft:
                    text.alignment = TextAlignmentOptions.BottomLeft;
                    break;

                case TextComponent.TextAlign.LowerCenter:
                    text.alignment = TextAlignmentOptions.Bottom;
                    break;

                case TextComponent.TextAlign.LowerRight:
                    text.alignment = TextAlignmentOptions.BottomRight;
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
            }

            TMP_FontAsset fontAsset = null;

            if (textComponent.Font != null)
            {
                var fontPath = fontFilePath.Replace("{name}", textComponent.Font) + ".asset";
                fontAsset = AssetDatabase.LoadAssetAtPath <TMP_FontAsset>(fontPath);
                if (fontAsset != null)
                {
                    text.font = fontAsset;
                }
                else
                {
                    Debug.LogWarning($"TextMeshPro Font {fontPath} is not found / name: {ExtensionsUtil.GetGameObjectPath(gameObject)}, text: {textComponent.Text}");
                }
            }

            if (textComponent.Wrap != null)
            {
                text.enableWordWrapping = textComponent.Wrap.Value;
            }

            if (textComponent.LineHeight != null && fontAsset != null)
            {
                var fontLineHeight   = fontAsset.faceInfo.lineHeight * text.fontSize / fontAsset.faceInfo.pointSize; // 66
                var targetLineHeight = textComponent.LineHeight.Value;                                               // 50
                var em100            = (targetLineHeight - fontLineHeight) / text.fontSize;
                text.lineSpacing = em100 * 100.0f;
            }

            return(text);
        }