private void SeriesMoving(MouseEventArgs e) { MoveSeriesIndicator.MoveStatusEnum moveStatusEnum = CanStartMoveSeries(_seriesSelected); object o; ObjectFromCursor objectFromCursor = _chartX.GetObjectFromCursor(out o); _chartPanelToMoveTo = null; if (moveStatusEnum == MoveSeriesIndicator.MoveStatusEnum.CantMove) { _moveStatusEnum = MoveSeriesIndicator.MoveStatusEnum.CantMove; } else { switch (objectFromCursor) { case ObjectFromCursor.PanelRightYAxis: case ObjectFromCursor.PanelLeftYAxis: if (_chartX.MaximizedPanel != null) { _moveStatusEnum = MoveSeriesIndicator.MoveStatusEnum.CantMove; } else { _moveStatusEnum = moveStatusEnum == MoveSeriesIndicator.MoveStatusEnum.MoveToNewPanel ? moveStatusEnum : MoveSeriesIndicator.MoveStatusEnum.CantMove; } break; case ObjectFromCursor.PanelRightNonPaintableArea: case ObjectFromCursor.PanelPaintableArea: case ObjectFromCursor.PanelLeftNonPaintableArea: _chartPanelToMoveTo = (ChartPanel)o; _moveStatusEnum = _chartPanelToMoveTo._index != _index ? MoveSeriesIndicator.MoveStatusEnum.MoveToExistingPanel : MoveSeriesIndicator.MoveStatusEnum.CantMove; break; } } _panelsContainer.ShowMoveSeriesIndicator(_panelsContainer.ToPanelsHolder(e), _moveStatusEnum); }
internal void MoveSeriesTo(Series seriesToMove, ChartPanel chartPanelToMoveTo, MoveSeriesIndicator.MoveStatusEnum moveStatusEnum) { _panelsContainer.HideMoveSeriesIndicator(); _chartX.Status = StockChartX.ChartStatus.Ready; seriesToMove.HideSelection(); _rootCanvas.ReleaseMouseCapture(); if (moveStatusEnum == MoveSeriesIndicator.MoveStatusEnum.CantMove) { return; } ChartPanel chartPanel = (moveStatusEnum == MoveSeriesIndicator.MoveStatusEnum.MoveToNewPanel ? null : chartPanelToMoveTo) ?? _chartX.AddChartPanel(); chartPanel._enforceSeriesSetMinMax = true; seriesToMove.Painted = false; seriesToMove.MoveToPanel(chartPanel); if ((seriesToMove._seriesType != SeriesTypeEnum.stCandleChart && seriesToMove._seriesType != SeriesTypeEnum.stStockBarChart) && seriesToMove._seriesType != SeriesTypeEnum.stStockBarChartHLC) { _chartX.FireSeriesMoved(seriesToMove, _series.Count == 0 ? -1 : Index, chartPanel.Index); _chartX.UpdateByTimer(); return; } //series is a part from (O)|HLC group, move the others too Series seriesRelated; if (seriesToMove.OHLCType != SeriesTypeOHLC.Open && (seriesRelated = GetSeriesOHLCV(seriesToMove, SeriesTypeOHLC.Open)) != null) { seriesRelated.Painted = false; seriesRelated.MoveToPanel(chartPanel); } if (seriesToMove.OHLCType != SeriesTypeOHLC.High && (seriesRelated = GetSeriesOHLCV(seriesToMove, SeriesTypeOHLC.High)) != null) { seriesRelated.Painted = false; seriesRelated.MoveToPanel(chartPanel); } if (seriesToMove.OHLCType != SeriesTypeOHLC.Low && (seriesRelated = GetSeriesOHLCV(seriesToMove, SeriesTypeOHLC.Low)) != null) { seriesRelated.Painted = false; seriesRelated.MoveToPanel(chartPanel); } if (seriesToMove.OHLCType != SeriesTypeOHLC.Close && (seriesRelated = GetSeriesOHLCV(seriesToMove, SeriesTypeOHLC.Close)) != null) { seriesRelated.Painted = false; seriesRelated.MoveToPanel(chartPanel); } _chartX.FireSeriesMoved(seriesToMove, _series.Count == 0 ? -1 : Index, chartPanel.Index); _chartX.UpdateByTimer(); }