[runtime] Fix corlib out of date error with disabled COM
[mono.git] / mcs / class / referencesource / System.Activities.Presentation / System.Activities.Presentation / System / Activities / Presentation / Base / Core / Internal / PropertyEditing / FromExpression / Framework / ValueEditors / ValueToIconConverter.cs
1 // -------------------------------------------------------------------
2 // Copyright (c) Microsoft Corporation.  All rights reserved.
3 // -------------------------------------------------------------------
4 //From \\authoring\Sparkle\Source\1.0.1083.0\Common\Source\Framework\ValueEditors
5 namespace System.Activities.Presentation.Internal.PropertyEditing.FromExpression.Framework.ValueEditors
6 {
7     using System;
8     using System.Globalization;
9     using System.Windows;
10     using System.Windows.Data;
11     using System.Windows.Media;
12     using System.Diagnostics.CodeAnalysis;
13     using System.Activities.Presentation;
14
15     // <summary>
16     // Implement this interface to provide icons to the ValueToIconProvider
17     // </summary>
18     internal interface IIconProvider
19     {
20         ImageSource GetIconAsImageSource(object key, object parameter);
21     }
22
23     // <summary>
24     // Gets an Icon as a Brush from the IIconProvider passed in as the first object of a multibinding
25     // using the second object as the key.
26     // </summary>
27
28     [SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses")]
29     internal class ValueToIconConverter : IMultiValueConverter
30     {
31         public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
32         {
33             if (values.Length == 2)
34             {
35                 IIconProvider iconProvider = values[0] as IIconProvider;
36                 object objectToLookUp = values[1];
37                 if (iconProvider != null && objectToLookUp != null)
38                 {
39                     return iconProvider.GetIconAsImageSource(objectToLookUp, parameter);
40                 }
41             }
42
43             return null;
44         }
45
46         public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
47         {
48             throw FxTrace.Exception.AsError(new NotImplementedException(ExceptionStringTable.NoConvertBackForValueToIconConverter));
49         }
50     }
51 }