public void Construct(Parameters parameters)
        {
            m_parameters    = parameters;
            m_realTimeState = new ChartState(m_parameters, m_realTimeQuotes);
            m_historyState  = new ChartState(m_parameters, m_historyQuotes);

            m_currentState = m_realTimeState;

            m_settings = ChartSettingsManager.GetSettings(parameters.Symbol);
            m_realTimeQuotes.Interval = m_settings.Duration;
            m_historyQuotes.Interval  = m_settings.Duration;

            m_parameters.SetHeight(m_settings.Height);
            m_spreads.Height = (int)(m_settings.Height - cTopOffset - cBottomOffset);
            m_timer.Interval = m_settings.UpdateInterval;
            m_proxy          = new DataFeedProxy(parameters.Symbol);
            m_proxy.Tick    += OnTick;
            if (m_proxy.IsInitialized)
            {
                m_help.Visible = false;
            }
            else
            {
                m_spreads.Visible = false;
            }
        }
        private void Destroy()
        {
            DataFeedProxy proxy = m_proxy;

            m_proxy = null;
            if (null != proxy)
            {
                proxy.Tick -= OnTick;
                proxy.Dispose();
            }
        }