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

328 lines
8.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: CommonElements.cs
//
// Namespace: DataVisualization.Charting
//
// Classes: CommonElements
//
// Purpose: CommonElements class provides references to common
// chart classes like DataManager, ChartTypeRegistry,
// ImageLoader and others. It is passed to different
// chart elements to simplify access to those common
// classes.
//
// Reviewed: GS - August 2, 2002
// AG - August 8, 2002
// AG - Microsoft 15, 2007
//
//===================================================================
#region Used namespaces
using System;
using System.ComponentModel.Design;
using System.Drawing.Drawing2D;
using System.Drawing;
using System.Globalization;
#if Microsoft_CONTROL
using System.Windows.Forms.DataVisualization.Charting.Data;
using System.Windows.Forms.DataVisualization.Charting.ChartTypes;
using System.Windows.Forms.DataVisualization.Charting.Utilities;
using System.Windows.Forms.DataVisualization.Charting.Borders3D;
using System.Windows.Forms.DataVisualization.Charting;
using System.Windows.Forms.DataVisualization.Charting.Formulas;
#else
using System.Web.UI.DataVisualization.Charting.ChartTypes;
using System.Web.UI.DataVisualization.Charting.Data;
using System.Web.UI.DataVisualization.Charting.Utilities;
using System.Web.UI.DataVisualization.Charting.Borders3D;
using System.Web.UI.DataVisualization.Charting.Formulas;
#endif
#endregion
#if Microsoft_CONTROL
namespace System.Windows.Forms.DataVisualization.Charting
#else
namespace System.Web.UI.DataVisualization.Charting
#endif
{
/// <summary>
/// CommonElements class provides references to common chart classes like
/// DataManager, ChartTypeRegistry, ImageLoader and others. It is passed
/// to different chart elements to simplify access to those common classes.
/// </summary>
internal class CommonElements
{
#region Fields
private Chart _chart;
private ChartImage _chartPicture;
// Reference to Chart Graphics Object
internal ChartGraphics graph = null;
/// <summary>
/// Service Container
/// </summary>
internal IServiceContainer container = null;
/// <summary>
/// Indicates painting mode
/// </summary>
internal bool processModePaint = true;
/// <summary>
/// Indicates selection mode
/// </summary>
internal bool processModeRegions = false;
// Private Fields
private int _width = 0;
private int _height = 0;
#endregion
#region Properties
/// <summary>
/// Reference to the Data Manager
/// </summary>
internal DataManager DataManager
{
get
{
return (DataManager)container.GetService(typeof(DataManager));
}
}
/// <summary>
/// True if painting mode is active
/// </summary>
public bool ProcessModePaint
{
get
{
return processModePaint;
}
}
/// <summary>
/// True if Hot region or image maps mode is active
/// </summary>
public bool ProcessModeRegions
{
get
{
return processModeRegions;
}
}
/// <summary>
/// Reference to the hot regions object
/// </summary>
public HotRegionsList HotRegionsList
{
get
{
return ChartPicture.hotRegionsList;
}
}
/// <summary>
/// Reference to the Data Manipulator
/// </summary>
public DataManipulator DataManipulator
{
get
{
return ChartPicture.DataManipulator;
}
}
/// <summary>
/// Reference to the ImageLoader
/// </summary>
internal ImageLoader ImageLoader
{
get
{
return (ImageLoader)container.GetService(typeof(ImageLoader));
}
}
/// <summary>
/// Reference to the Chart
/// </summary>
internal Chart Chart
{
get
{
if (_chart==null)
_chart = (Chart)container.GetService(typeof(Chart));
return _chart;
}
}
/// <summary>
/// Reference to the ChartTypeRegistry
/// </summary>
internal ChartTypeRegistry ChartTypeRegistry
{
get
{
return (ChartTypeRegistry)container.GetService(typeof(ChartTypeRegistry));
}
}
/// <summary>
/// Reference to the BorderTypeRegistry
/// </summary>
internal BorderTypeRegistry BorderTypeRegistry
{
get
{
return (BorderTypeRegistry)container.GetService(typeof(BorderTypeRegistry));
}
}
/// <summary>
/// Reference to the FormulaRegistry
/// </summary>
internal FormulaRegistry FormulaRegistry
{
get
{
return (FormulaRegistry)container.GetService(typeof(FormulaRegistry));
}
}
/// <summary>
/// Reference to the ChartPicture
/// </summary>
internal ChartImage ChartPicture
{
get
{
if (_chartPicture ==null)
_chartPicture = (ChartImage)container.GetService(typeof(ChartImage));
return _chartPicture;
}
}
/// <summary>
/// Width of the chart picture
/// </summary>
internal int Width
{
get
{
return _width;
}
set
{
_width = value;
}
}
/// <summary>
/// Height of the chart picture
/// </summary>
internal int Height
{
get
{
return _height;
}
set
{
_height = value;
}
}
#endregion
#region Methods
/// <summary>
/// Constructor
/// </summary>
/// <param name="container">Service container.</param>
internal CommonElements(IServiceContainer container)
{
this.container = container;
}
#endregion
#region String convertion helper methods
/// <summary>
/// Converts string to double.
/// </summary>
/// <param name="stringToParse">String to convert.</param>
/// <returns>Double result.</returns>
internal static double ParseDouble(string stringToParse)
{
return ParseDouble(stringToParse, false);
}
/// <summary>
/// Converts string to double.
/// </summary>
/// <param name="stringToParse">String to convert.</param>
/// <param name="throwException">if set to <c>true</c> the exception thrown.</param>
/// <returns>Double result.</returns>
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1806:DoNotIgnoreMethodResults", MessageId = "System.Double.TryParse(System.String,System.Globalization.NumberStyles,System.IFormatProvider,System.Double@)")]
internal static double ParseDouble(string stringToParse, bool throwException)
{
Double result = 0.0;
if (throwException)
{
result = double.Parse(stringToParse, NumberStyles.Any, CultureInfo.InvariantCulture);
}
else
{
bool parseSucceed = double.TryParse(stringToParse, NumberStyles.Any, CultureInfo.InvariantCulture, out result);
if (!parseSucceed)
{
double.TryParse(stringToParse, NumberStyles.Any, CultureInfo.CurrentCulture, out result);
}
}
return result;
}
/// <summary>
/// Converts string to double.
/// </summary>
/// <param name="stringToParse">String to convert.</param>
/// <returns>Double result.</returns>
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1806:DoNotIgnoreMethodResults", MessageId = "System.Single.TryParse(System.String,System.Globalization.NumberStyles,System.IFormatProvider,System.Single@)")]
internal static float ParseFloat(string stringToParse)
{
float result = 0f;
bool parseSucceed = float.TryParse(stringToParse, NumberStyles.Any, CultureInfo.InvariantCulture, out result);
if (!parseSucceed)
{
float.TryParse(stringToParse, NumberStyles.Any, CultureInfo.CurrentCulture, out result);
}
return result;
}
#endregion
}
}