using System;
namespace DevComponents.DotNetBar.Charts.Style
{
///
/// Represents base class that each visual style factory for the ChartControl inherits from.
///
public abstract class VisualStyleFactory
{
///
/// Create the DefaultVisualStyle for the ChartControl.
///
/// Color-Factory used to generate colors.
/// New instance of DefaultVisualStyles class.
public abstract DefaultVisualStyles CreateStyle(Rendering.ColorFactory factory);
///
/// Create the DefaultVisualStyle for the ChartControl with empty color factory.
///
/// New instance of DefaultVisualStyles class.
public virtual DefaultVisualStyles CreateStyle()
{
if (StyleManager.ColorTint.IsEmpty)
return CreateStyle(Rendering.ColorFactory.Empty);
return CreateStyle(new Rendering.ColorBlendFactory(StyleManager.ColorTint));
}
///
/// Returns the style factory for specified visual style.
///
/// Style to create factory for.
/// An instance of VisualStyleFactory.
public static VisualStyleFactory GetStyleFactory(ChartControlStyle style)
{
if (style == ChartControlStyle.Office2010Blue)
return new Office2010BlueStyleFactory();
if (style == ChartControlStyle.Office2010Silver)
return new Office2010SilverStyleFactory();
if (style == ChartControlStyle.Office2010Black)
return new Office2010BlackStyleFactory();
if (style == ChartControlStyle.Metro)
return new MetroStyleFactory();
throw new ArgumentException(string.Format(
"Specified style '{0}' factory has not been implemented.", style));
}
}
}