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); }
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); }
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); }
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); }