Xamarin Public Jenkins (auto-signing) 536cd135cc Imported Upstream version 5.4.0.167
Former-commit-id: 5624ac747d633e885131e8349322922b6a59baaa
2017-08-21 15:34:15 +00:00

104 lines
4.0 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//-------------------------------------------------------------
// <copyright company=Microsoft Corporation>
// Copyright © Microsoft Corporation. All Rights Reserved.
// </copyright>
//-------------------------------------------------------------
// @owner=alexgor, deliant
//=================================================================
// File: MapAreaCoordinatesConverter.cs
//
// Namespace: System.Web.UI.DataVisualization.Charting
//
// Classes: MapAreaCoordinatesConverter
//
// Purpose: Design-time converter for map area coordinates
//
// Reviewed: AG - August 7, 2002
//
//===================================================================
using System.ComponentModel;
using System.Globalization;
namespace System.Web.UI.DataVisualization.Charting
{
/// <summary>
/// Converter for the array of map area coordinates
/// </summary>
internal class MapAreaCoordinatesConverter : ArrayConverter
{
/// <summary>
/// Overrides the CanConvertFrom method of TypeConverter.
/// The ITypeDescriptorContext interface provides the context for the
/// conversion. Typically this interface is used at design time to
/// provide information about the design-time container.
/// </summary>
/// <param name="context">Descriptor context.</param>
/// <param name="sourceType">Convertion source type.</param>
/// <returns>Indicates if convertion is possible.</returns>
public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
{
if (sourceType == typeof(string))
{
return true;
}
return base.CanConvertFrom(context, sourceType);
}
/// <summary>
/// Overrides the ConvertFrom method of TypeConverter.
/// Convert from comma separated values in the string.
/// </summary>
/// <param name="context">Descriptor context.</param>
/// <param name="culture">Culture information.</param>
/// <param name="value">Value to convert from.</param>
/// <returns>Indicates if convertion is possible.</returns>
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
{
// Can convert from string where each array element is separated by comma
string stringValue = value as string;
if (stringValue != null)
{
string[] values = stringValue.Split(new char[] { ',' });
float[] array = new float[values.Length];
for (int index = 0; index < values.Length; index++)
{
array[index] = float.Parse(values[index], System.Globalization.CultureInfo.CurrentCulture);
}
return array;
}
// Call base class
return base.ConvertFrom(context, culture, value);
}
/// <summary>
/// Overrides the ConvertTo method of TypeConverter.
/// Convert coordinates array to comma separated values in string.
/// </summary>
/// <param name="context">Descriptor context.</param>
/// <param name="culture">Culture information.</param>
/// <param name="value">Value to convert.</param>
/// <param name="destinationType">Convertion destination type.</param>
/// <returns>Converted object.</returns>
public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType)
{
if (destinationType == typeof(string))
{
float[] array = (float[])value;
string result = "";
foreach (float d in array)
{
result += d.ToString(System.Globalization.CultureInfo.CurrentCulture) + ",";
}
return result.TrimEnd(',');
}
return base.ConvertTo(context, culture, value, destinationType);
}
}
}