Ejemplo n.º 1
0
        private void IndicatorAdded(object sender, CandleChartControl.IndiEventArgs ie)
        {
            if (ie.indi.CreateOwnPanel == false || ie.indi.ownPane == null)
            {
                return;
            }
            // надо вкладку создать
            var tp = new TabPage {
                Parent = panesTabCtrl, Text = ie.indi.UniqueName, Tag = ie.indi
            };

            tp.Show();
            panesTabCtrl.SelectedTab = tp;
        }
Ejemplo n.º 2
0
        void IndicatorDeleted(object sender, CandleChartControl.IndiEventArgs ie)
        {
            // надо вкладку удалить
            if (ie.indi.ownPane == null)
            {
                return;
            }

            foreach (TabPage page in panesTabCtrl.TabPages)
            {
                if (page.Text != ie.indi.UniqueName)
                {
                    continue;
                }
                panesTabCtrl.TabPages.Remove(page);
                ie.indi.IsPanelVisible = false;
                break;
            }
        }
Ejemplo n.º 3
0
        void IndicatorEdited(object sender, CandleChartControl.IndiEventArgs ie)
        {
            // проверяем надо ли название панели поменять если изменили название индикатора
            var oldName = (string)sender;

            // имя индикатора не поменялось, проверяем надо ли удалять панель или добавить
            if (oldName != ie.indi.UniqueName)
            {
                foreach (TabPage page in panesTabCtrl.TabPages)
                {
                    if (page.Text != oldName)
                    {
                        continue;
                    }
                    page.Text = ie.indi.UniqueName;
                    page.Tag  = ie.indi;
                    break;
                }
            }

            // проверяем надо ли вкладку изменить
            if (!ie.indi.CreateOwnPanel && ie.indi.ownPane != null)
            {
                // возможно надо табу удалить, проверяем есть ли вообще она
                foreach (TabPage page in panesTabCtrl.TabPages)
                {
                    if (page.Text != ie.indi.UniqueName)
                    {
                        continue;
                    }
                    panesTabCtrl.TabPages.Remove(page);
                    ie.indi.IsPanelVisible = false;
                    return;
                }
            }

            // проверяем случай когда включили свою панель на индикаторе
            if (ie.indi.CreateOwnPanel && ie.indi.ownPane != null)
            {
                // проверяем может такая таба уже открыта
                foreach (TabPage page in panesTabCtrl.TabPages)
                {
                    if (page.Text != ie.indi.UniqueName)
                    {
                        continue;
                    }
                    // нашли табу - ничего не делаем
                    page.Tag = ie.indi;
                    return;
                }
                // табы нет, создаем ее
                chart.chart.Panes.Add(ie.indi.ownPane, ie.indi.ownPane.PercentHeight);
                var tp = new TabPage {
                    Parent = panesTabCtrl, Text = ie.indi.UniqueName, Tag = ie.indi
                };
                tp.Show();
                panesTabCtrl.SelectedTab = tp;
                ie.indi.IsPanelVisible   = true;
                foreach (var series in ie.indi.SeriesResult)
                {
                    if (!ie.indi.ownPane.Series.ContainsSeries(series))
                    {
                        ie.indi.ownPane.Series.Add(series);
                    }
                }
            }
        }