BaseItemImageVisibilityConverter.cs 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. using MediaBrowser.Model.Dto;
  2. using MediaBrowser.Model.Entities;
  3. using System;
  4. using System.Windows;
  5. using System.Windows.Data;
  6. namespace MediaBrowser.UI.Converters
  7. {
  8. /// <summary>
  9. /// Class BaseItemImageVisibilityConverter
  10. /// </summary>
  11. class BaseItemImageVisibilityConverter : IValueConverter
  12. {
  13. /// <summary>
  14. /// Converts a value.
  15. /// </summary>
  16. /// <param name="value">The value produced by the binding source.</param>
  17. /// <param name="targetType">The type of the binding target property.</param>
  18. /// <param name="parameter">The converter parameter to use.</param>
  19. /// <param name="culture">The culture to use in the converter.</param>
  20. /// <returns>A converted value. If the method returns null, the valid null value is used.</returns>
  21. public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
  22. {
  23. var item = value as BaseItemDto;
  24. if (item != null)
  25. {
  26. var paramString = parameter as string;
  27. var vals = paramString.Split(',');
  28. var imageType = (ImageType)Enum.Parse(typeof(ImageType), vals[0], true);
  29. bool reverse = vals.Length > 1 && vals[1].Equals("reverse", StringComparison.OrdinalIgnoreCase);
  30. return GetVisibility(item, imageType, reverse);
  31. }
  32. return Visibility.Collapsed;
  33. }
  34. /// <summary>
  35. /// Gets the visibility.
  36. /// </summary>
  37. /// <param name="item">The item.</param>
  38. /// <param name="type">The type.</param>
  39. /// <param name="reverse">if set to <c>true</c> [reverse].</param>
  40. /// <returns>Visibility.</returns>
  41. private Visibility GetVisibility(BaseItemDto item, ImageType type, bool reverse)
  42. {
  43. var hasImageVisibility = reverse ? Visibility.Collapsed : Visibility.Visible;
  44. var hasNoImageVisibility = reverse ? Visibility.Visible : Visibility.Collapsed;
  45. if (type == ImageType.Logo)
  46. {
  47. return item.HasLogo || !string.IsNullOrEmpty(item.ParentLogoItemId) ? hasImageVisibility : hasNoImageVisibility;
  48. }
  49. return item.HasPrimaryImage ? hasImageVisibility : hasNoImageVisibility;
  50. }
  51. /// <summary>
  52. /// Converts a value.
  53. /// </summary>
  54. /// <param name="value">The value that is produced by the binding target.</param>
  55. /// <param name="targetType">The type to convert to.</param>
  56. /// <param name="parameter">The converter parameter to use.</param>
  57. /// <param name="culture">The culture to use in the converter.</param>
  58. /// <returns>A converted value. If the method returns null, the valid null value is used.</returns>
  59. /// <exception cref="System.NotImplementedException"></exception>
  60. public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
  61. {
  62. throw new NotImplementedException();
  63. }
  64. }
  65. }