#if WPF using System; using System.Windows; using System.Windows.Controls; using System.Windows.Shapes; #else using System; using System.Windows; using System.Windows.Controls; using System.Windows.Shapes; #endif using System.Windows.Controls.Primitives; namespace Visifire.Commons { /// /// Visifire Control base class /// public abstract class VisifireControl : VisifireElement { #region Public Methods /// /// Initializes a new instance of the Visifire.Commons.VisifireControl class /// public VisifireControl() { ToolTipEnabled = true; } /// /// Accepts absolute or relative Uri, builds and returns absolute path /// /// Path as String /// String public static String GetAbsolutePath(String path) { #if SL String address, queryString; String BaseUri = System.Windows.Browser.HtmlPage.Document.DocumentUri.ToString(); Int32 index = path.IndexOf('?'); if (index == -1) { address = path; queryString = ""; } else { address = path.Substring(0, index); queryString = path.Substring(index); } Uri ur = new Uri(address, UriKind.RelativeOrAbsolute); if (ur.IsAbsoluteUri) { return ur.AbsoluteUri + queryString; } else if (path.StartsWith("/")) { UriBuilder baseUri = new UriBuilder(BaseUri); UriBuilder newUri = new UriBuilder(baseUri.Scheme, baseUri.Host, baseUri.Port, address, queryString); return newUri.ToString(); } else { UriBuilder baseUri = new UriBuilder(BaseUri); String sourcePath = baseUri.Path.Substring(0, baseUri.Path.LastIndexOf('/') + 1); UriBuilder newUri = new UriBuilder(baseUri.Scheme, baseUri.Host, baseUri.Port, sourcePath + address, queryString); return newUri.ToString(); } #else return path; #endif } #endregion #region Public Properties /// /// Identifies the Visifire.Commons.ToolTipEnabled dependency property. /// /// /// The identifier for the Visifire.Commons.ToolTipEnabled dependency property. /// public static readonly DependencyProperty ToolTipEnabledProperty = DependencyProperty.Register ("ToolTipEnabled", typeof(Boolean), typeof(VisifireControl), null); #if SL /// /// Sliverlight Object Id /// [System.Windows.Browser.ScriptableMember] public String ControlId { get; set; } #endif /// /// Enables or disables all ToolTips in chart /// #if SL [System.Windows.Browser.ScriptableMember] #endif public Boolean ToolTipEnabled { get { return (Boolean)GetValue(ToolTipEnabledProperty); } set { SetValue(ToolTipEnabledProperty, value); } } /// /// Whether the chart is in design mode or application mode /// internal Boolean IsInDesignMode { get { #if WPF return System.ComponentModel.DesignerProperties.GetIsInDesignMode(this); #else return System.ComponentModel.DesignerProperties.GetIsInDesignMode(this); #endif } } #endregion #region Public Events And Delegates #endregion #region Protected Methods #endregion #region Internal Properties #endregion #region Private Delegates #endregion #region Private Methods #endregion #region Internal Methods #endregion #region Internal Events And Delegates #endregion #region Data /// /// Whether the template is applied or not /// internal Boolean _isTemplateApplied; #region Template Part internal Grid _rootElement; internal const string RootElementName = "RootElement"; internal Grid _shadowGrid; internal const string ShadowGridName = "ShadowGrid"; internal Border _chartBorder; internal const string ChartBorderName = "ChartBorder"; internal Rectangle _chartLightingBorder; internal const string ChartLightingBorderName = "ChartLightingBorder"; internal Canvas _bevelCanvas; internal const string BevelCanvasName = "BevelCanvas"; internal Grid _chartAreaGrid; internal const string ChartAreaGridName = "ChartAreaGrid"; internal StackPanel _topOuterPanel; internal const string TopOuterPanelName = "TopOuterPanel"; internal StackPanel _topOuterTitlePanel; internal const string TopOuterTitlePanelName = "TopOuterTitlePanel"; internal StackPanel _topOuterLegendPanel; internal const string TopOuterLegendPanelName = "TopOuterLegendPanel"; internal StackPanel _bottomOuterPanel; internal const string BottomOuterPanelName = "BottomOuterPanel"; internal StackPanel _bottomOuterLegendPanel; internal const string BottomOuterLegendPanelName = "BottomOuterLegendPanel"; internal StackPanel _bottomOuterTitlePanel; internal const string BottomOuterTitlePanelName = "BottomOuterTitlePanel"; internal StackPanel _leftOuterPanel; internal const string LeftOuterPanelName = "LeftOuterPanel"; internal StackPanel _leftOuterTitlePanel; internal const string LeftOuterTitlePanelName = "LeftOuterTitlePanel"; internal StackPanel _leftOuterLegendPanel; internal const string LeftOuterLegendPanelName = "LeftOuterLegendPanel"; internal StackPanel _rightOuterPanel; internal const string RightOuterPanelName = "RightOuterPanel"; internal StackPanel _rightOuterLegendPanel; internal const string RightOuterLegendPanelName = "RightOuterLegendPanel"; internal StackPanel _rightOuterTitlePanel; internal const string RightOuterTitlePanelName = "RightOuterTitlePanel"; internal Grid _centerOuterGrid; internal const string CenterOuterGridName = "CenterOuterGrid"; internal Grid _centerGrid; internal const string CenterGridName = "CenterGrid"; internal Grid _topOffsetGrid; internal const string TopOffsetGridName = "TopOffsetGrid"; internal Grid _bottomOffsetGrid; internal const string BottomOffsetGridName = "BottomOffsetGrid"; internal Grid _leftOffsetGrid; internal const string LeftOffsetGridName = "LeftOffsetGrid"; internal Grid _rightOffsetGrid; internal const string RightOffsetGridName = "RightOffsetGrid"; internal Grid _topAxisGrid; internal const string TopAxisGridName = "TopAxisGrid"; internal StackPanel _topAxisContainer; internal const string TopAxisContainerName = "TopAxisContainer"; internal StackPanel _topAxisPanel; internal const string TopAxisPanelName = "TopAxisPanel"; internal ScrollBar _topAxisScrollBar; internal const string TopAxisScrollBarName = "TopAxisScrollBar"; internal Grid _leftAxisGrid; internal const string LeftAxisGridName = "LeftAxisGrid"; internal StackPanel _leftAxisContainer; internal const string LeftAxisContainerName = "LeftAxisContainer"; internal StackPanel _leftAxisPanel; internal const string LeftAxisPanelName = "LeftAxisPanel"; internal ScrollBar _leftAxisScrollBar; internal const string LeftAxisScrollBarName = "LeftAxisScrollBar"; internal Grid _rightAxisGrid; internal const string RightAxisGridName = "RightAxisGrid"; internal StackPanel _rightAxisContainer; internal const string RightAxisContainerName = "RightAxisContainer"; internal ScrollBar _rightAxisScrollBar; internal const string RightAxisScrollBarName = "RightAxisScrollBar"; internal StackPanel _rightAxisPanel; internal const string RightAxisPanelName = "RightAxisPanel"; internal Grid _bottomAxisGrid; internal const string BottomAxisGridName = "BottomAxisGrid"; internal StackPanel _bottomAxisContainer; internal const string BottomAxisContainerName = "BottomAxisContainer"; internal ScrollBar _bottomAxisScrollBar; internal const string BottomAxisScrollBarName = "BottomAxisScrollBar"; internal StackPanel _bottomAxisPanel; internal const string BottomAxisPanelName = "BottomAxisPanel"; internal Grid _centerInnerGrid; internal const string CenterInnerGridName = "CenterInnerGrid"; internal Grid _innerGrid; internal const string InnerGridName = "InnerGrid"; internal StackPanel _topInnerPanel; internal const string TopInnerPanelName = "TopInnerPanel"; internal StackPanel _topInnerTitlePanel; internal const string TopInnerTitlePanelName = "TopInnerTitlePanel"; internal StackPanel _topInnerLegendPanel; internal const string TopInnerLegendPanelName = "TopInnerLegendPanel"; internal StackPanel _bottomInnerPanel; internal const string BottomInnerPanelName = "BottomInnerPanel"; internal StackPanel _bottomInnerLegendPanel; internal const string BottomInnerLegendPanelName = "BottomInnerLegendPanel"; internal StackPanel _bottomInnerTitlePanel; internal const string BottomInnerTitlePanelName = "BottomInnerTitlePanel"; internal StackPanel _leftInnerPanel; internal const string LeftInnerPanelName = "LeftInnerPanel"; internal StackPanel _leftInnerTitlePanel; internal const string LeftInnerTitlePanelName = "LeftInnerTitlePanel"; internal StackPanel _leftInnerLegendPanel; internal const string LeftInnerLegendPanelName = "LeftInnerLegendPanel"; internal StackPanel _rightInnerPanel; internal const string RightInnerPanelName = "RightInnerPanel"; internal StackPanel _rightInnerLegendPanel; internal const string RightInnerLegendPanelName = "RightInnerLegendPanel"; internal StackPanel _rightInnerTitlePanel; internal const string RightInnerTitlePanelName = "RightInnerTitlePanel"; internal Grid _plotAreaGrid; internal const string PlotAreaGridName = "PlotAreaGrid"; internal ScrollViewer _plotAreaScrollViewer; internal const string PlotAreaScrollViewerName = "PlotAreaScrollViewer"; internal Canvas _plotCanvas; internal const string PlotGridName = "PlotCanvas"; internal Canvas _plotAreaShadowCanvas; internal const string PlotAreaShadowCanvasName = "PlotAreaShadowCanvas"; internal Canvas _drawingCanvas; internal const string DrawingCanvasName = "DrawingCanvas"; internal StackPanel _centerDockInsidePlotAreaPanel; internal const string CenterDockInsidePlotAreaPanelName = "CenterDockInsidePlotAreaPanel"; internal StackPanel _centerDockOutsidePlotAreaPanel; internal const string CenterDockOutsidePlotAreaPanelName = "CenterDockOutsidePlotAreaPanel"; internal Canvas _toolTipCanvas; internal const string ToolTipCanvasName = "ToolTipCanvas"; internal Visifire.Charts.ToolTip _toolTip; #endregion #endregion } }