public void ContextMenuStrip_InvisibleChartDataInChartDataCollection_ZoomToAllDisabled()
        {
            // Setup
            var builder = new CustomItemsOnlyContextMenuBuilder();

            contextMenuBuilderProvider.Expect(p => p.Get(null, null)).IgnoreArguments().Return(builder);
            mocks.ReplayAll();

            var pointData = new ChartPointData("test data")
            {
                IsVisible = false
            };
            var chartDataCollection = new ChartDataCollection("test data");

            chartDataCollection.Add(pointData);

            // Call
            using (ContextMenuStrip contextMenu = info.ContextMenuStrip(chartDataCollection, null, null))
            {
                // Assert
                TestHelper.AssertContextMenuStripContainsItem(contextMenu, contextMenuZoomToAllIndex,
                                                              "&Zoom naar alles",
                                                              "Om het zoomniveau aan te passen moet er minstens één gegevensreeks in deze map met gegevensreeksen zichtbaar zijn.",
                                                              Resources.ZoomToAllIcon,
                                                              false);
            }
        }
Exemplo n.º 2
0
        public void GivenChartControlWithData_WhenDataSetToOtherChartDataCollection_ThenChartControlUpdated()
        {
            // Given
            using (var chartControl = new ChartControl())
            {
                LinearPlotView linearPlotView       = GetLinearPlotView(chartControl);
                var            chartPointData       = new ChartPointData("Points");
                var            chartLineData        = new ChartLineData("Lines");
                var            chartAreaData        = new ChartAreaData("Areas");
                var            chartDataCollection1 = new ChartDataCollection("Collection 1");
                var            chartDataCollection2 = new ChartDataCollection("Collection 2");

                chartDataCollection1.Add(chartPointData);
                chartDataCollection2.Add(chartLineData);
                chartDataCollection2.Add(chartAreaData);

                chartControl.Data = chartDataCollection1;

                // Precondition
                Assert.AreEqual(1, linearPlotView.Model.Series.Count);
                Assert.AreEqual("Points", linearPlotView.Model.Series[0].Title);

                // When
                chartControl.Data = chartDataCollection2;

                // Then
                Assert.AreEqual(2, linearPlotView.Model.Series.Count);
                Assert.AreEqual("Lines", linearPlotView.Model.Series[0].Title);
                Assert.AreEqual("Areas", linearPlotView.Model.Series[1].Title);
            }
        }
Exemplo n.º 3
0
        public void Selection_NestedNodeData_ReturnsWrappedObjectData()
        {
            // Setup
            var mocks = new MockRepository();
            var contextMenuBuilderProvider = mocks.Stub <IContextMenuBuilderProvider>();

            mocks.ReplayAll();

            ChartData chartData           = CreateChartData();
            var       chartDataCollection = new ChartDataCollection("collection");

            chartDataCollection.Add(chartData);

            using (var view = new ChartLegendView(contextMenuBuilderProvider)
            {
                Data = chartDataCollection
            })
            {
                var context = new ChartDataContext(chartData, chartDataCollection);

                var treeViewControl = TypeUtils.GetField <TreeViewControl>(view, "treeViewControl");
                WindowsFormsTestHelper.Show(treeViewControl);
                treeViewControl.TrySelectNodeForData(context);

                // Call
                object selection = view.Selection;

                // Assert
                Assert.AreSame(chartData, selection);
            }

            WindowsFormsTestHelper.CloseAll();

            mocks.VerifyAll();
        }
        public async Task LoadChart()
        {
            var stockInfo = new StockInfoItem
            {
                Id         = StockValueContext.Id,
                MarketType = StockValueContext.ExchangeTypeKey,
                Name       = StockValueContext.Name
            };
            StockChartModel chartModel = await _queryService.GetRealTimeTradeChartAsync(stockInfo);

            // Set the start and end value to y axis
            SetOpenCloseTimeToCharAxis(chartModel);

            // Set the top and bottom value for the chart
            SetUpDownLimitLineToChart(chartModel.StockMessage);

            // Draw the middle, up and down extra line for the chart
            DrawExtraLines(chartModel.StockMessage);

            // 設定股價座標顯示的區間次數
            SetPriceTickInterval(Convert.ToDouble(chartModel.StockMessage.LimitUp), Convert.ToDouble(chartModel.StockMessage.LimitDown), 5);

            // Add stock point to chart
            foreach (var point in chartModel.ChartData)
            {
                DateTime xDateTime = DateTimeUtils.UnixTimeStampToDateTime(Convert.ToDouble(point.Timestemp));
                var      axisPoint = DateTimeAxis.CreateDataPoint(xDateTime, Convert.ToDouble(point.Value));
                ChartDataCollection.Add(axisPoint);
            }
        }
Exemplo n.º 5
0
        public void GivenChartControlWithData_WhenChartDataNotifiesChange_ThenAllSeriesReused()
        {
            // Given
            using (var chartControl = new ChartControl())
            {
                LinearPlotView linearPlotView             = GetLinearPlotView(chartControl);
                var            chartPointData             = new ChartPointData("Points");
                var            chartLineData              = new ChartLineData("Lines");
                var            chartAreaData              = new ChartAreaData("Areas");
                var            chartDataCollection        = new ChartDataCollection("Root collection");
                var            nestedChartDataCollection1 = new ChartDataCollection("Nested collection 1");
                var            nestedChartDataCollection2 = new ChartDataCollection("Nested collection 2");

                chartDataCollection.Add(chartPointData);
                chartDataCollection.Add(nestedChartDataCollection1);
                nestedChartDataCollection1.Add(chartLineData);
                nestedChartDataCollection1.Add(nestedChartDataCollection2);
                nestedChartDataCollection2.Add(chartAreaData);

                chartControl.Data = chartDataCollection;

                List <Series> seriesBeforeUpdate = linearPlotView.Model.Series.ToList();

                // When
                chartLineData.Points = new Point2D[0];
                chartLineData.NotifyObservers();

                // Then
                CollectionAssert.AreEqual(seriesBeforeUpdate, linearPlotView.Model.Series);
            }
        }
Exemplo n.º 6
0
        public void GivenChartControlWithoutData_WhenDataSetToChartDataCollection_ThenChartControlUpdated()
        {
            // Given
            using (var chartControl = new ChartControl())
            {
                LinearPlotView linearPlotView             = GetLinearPlotView(chartControl);
                var            chartPointData             = new ChartPointData("Points");
                var            chartLineData              = new ChartLineData("Lines");
                var            chartAreaData              = new ChartAreaData("Areas");
                var            chartDataCollection        = new ChartDataCollection("Root collection");
                var            nestedChartDataCollection1 = new ChartDataCollection("Nested collection 1");
                var            nestedChartDataCollection2 = new ChartDataCollection("Nested collection 2");

                chartDataCollection.Add(chartPointData);
                chartDataCollection.Add(nestedChartDataCollection1);
                nestedChartDataCollection1.Add(chartLineData);
                nestedChartDataCollection1.Add(nestedChartDataCollection2);
                nestedChartDataCollection2.Add(chartAreaData);

                // When
                chartControl.Data = chartDataCollection;

                // Then
                ElementCollection <Series> series = linearPlotView.Model.Series;
                Assert.AreEqual(3, series.Count);
                Assert.AreEqual("Points", series[0].Title);
                Assert.AreEqual("Lines", series[1].Title);
                Assert.AreEqual("Areas", series[2].Title);
            }
        }
        public void ContextMenuStrip_ChartDataCollectionWithVisibleChartData_ZoomToAllEnabled()
        {
            // Setup
            var builder = new CustomItemsOnlyContextMenuBuilder();

            contextMenuBuilderProvider.Expect(p => p.Get(null, null)).IgnoreArguments().Return(builder);
            mocks.ReplayAll();

            var chartPointData = new ChartPointData("test")
            {
                IsVisible = true,
                Points    = new[]
                {
                    new Point2D(0, 1)
                }
            };
            var chartDataCollection = new ChartDataCollection("test data");

            chartDataCollection.Add(chartPointData);

            // Call
            using (ContextMenuStrip contextMenu = info.ContextMenuStrip(chartDataCollection, null, null))
            {
                // Assert
                TestHelper.AssertContextMenuStripContainsItem(contextMenu, contextMenuZoomToAllIndex,
                                                              "&Zoom naar alles",
                                                              "Zet het zoomniveau van de grafiek dusdanig dat alle zichtbare gegevensreeksen in deze map met gegevensreeksen precies in het beeld passen.",
                                                              Resources.ZoomToAllIcon);
            }
        }
Exemplo n.º 8
0
        public void ZoomToVisibleSeries_ChartInFormWithEmptyDataSetAndZoomChildChartData_ViewNotInvalidated()
        {
            // Setup
            using (var form = new Form())
            {
                var            chartControl   = new ChartControl();
                LinearPlotView linearPlotView = GetLinearPlotView(chartControl);
                form.Controls.Add(chartControl);
                form.Show();

                var chartDataCollection = new ChartDataCollection("Collection");
                var chartData           = new ChartPointData("Test data");
                var invalidated         = 0;

                chartDataCollection.Add(chartData);

                chartControl.Data = chartDataCollection;
                chartControl.Update();

                var expectedExtent = new Extent(
                    linearPlotView.Model.Axes[0].ActualMinimum,
                    linearPlotView.Model.Axes[0].ActualMaximum,
                    linearPlotView.Model.Axes[1].ActualMinimum,
                    linearPlotView.Model.Axes[1].ActualMaximum);

                linearPlotView.Invalidated += (sender, args) => invalidated++;

                // Call
                chartControl.ZoomToVisibleSeries(chartData);

                // Assert
                Assert.AreEqual(0, invalidated);
                AssertExpectedExtent(linearPlotView.Model.Axes, expectedExtent);
            }
        }
Exemplo n.º 9
0
        private static void SetWaternetZonesChartData(MacroStabilityInwardsWaternet waternet, MacroStabilityInwardsSurfaceLine surfaceLine,
                                                      ChartDataCollection chartData)
        {
            chartData.Clear();

            foreach (MacroStabilityInwardsPhreaticLine phreaticLine in waternet.PhreaticLines)
            {
                ChartLineData phreaticLineChartData = MacroStabilityInwardsChartDataFactory.CreatePhreaticLineChartData(phreaticLine.Name, true);
                phreaticLineChartData.Points = MacroStabilityInwardsChartDataPointsFactory.CreatePhreaticLinePoints(phreaticLine);
                chartData.Add(phreaticLineChartData);
            }

            foreach (MacroStabilityInwardsWaternetLine waternetLine in waternet.WaternetLines)
            {
                ChartMultipleAreaData waternetLineChartData = MacroStabilityInwardsChartDataFactory.CreateWaternetZoneChartData(waternetLine.Name, true);
                waternetLineChartData.Areas = MacroStabilityInwardsChartDataPointsFactory.CreateWaternetZonePoints(waternetLine, surfaceLine);
                chartData.Add(waternetLineChartData);
            }
        }
Exemplo n.º 10
0
        public void Clear_Always_RemovesAllItems()
        {
            // Setup
            var item1 = new ChartLineData("test");
            var item2 = new ChartLineData("test");
            var chartDataCollection = new ChartDataCollection("test");

            chartDataCollection.Add(item1);
            chartDataCollection.Add(item2);

            // Precondition
            Assert.AreEqual(2, chartDataCollection.Collection.Count());

            // Call
            chartDataCollection.Clear();

            // Assert
            CollectionAssert.IsEmpty(chartDataCollection.Collection);
        }
Exemplo n.º 11
0
        public void GivenChartControlWithData_WhenChartDataAdded_ThenCorrespondingSeriesAddedAndOtherSeriesReused()
        {
            // Given
            using (var chartControl = new ChartControl())
            {
                LinearPlotView linearPlotView             = GetLinearPlotView(chartControl);
                var            chartPointData             = new ChartPointData("Points");
                var            chartLineData              = new ChartLineData("Lines");
                var            chartAreaData              = new ChartAreaData("Areas");
                var            chartDataCollection        = new ChartDataCollection("Root collection");
                var            nestedChartDataCollection1 = new ChartDataCollection("Nested collection 1");
                var            nestedChartDataCollection2 = new ChartDataCollection("Nested collection 2");

                chartDataCollection.Add(chartPointData);
                chartDataCollection.Add(nestedChartDataCollection1);
                nestedChartDataCollection1.Add(chartLineData);
                nestedChartDataCollection1.Add(nestedChartDataCollection2);
                nestedChartDataCollection2.Add(chartAreaData);

                chartControl.Data = chartDataCollection;

                List <Series> seriesBeforeUpdate = linearPlotView.Model.Series.ToList();

                // Precondition
                Assert.AreEqual(3, seriesBeforeUpdate.Count);

                // When
                nestedChartDataCollection1.Insert(0, new ChartAreaData("Additional areas"));
                nestedChartDataCollection1.NotifyObservers();

                // Then
                ElementCollection <Series> series = linearPlotView.Model.Series;
                Assert.AreEqual(4, series.Count);
                Assert.AreEqual("Points", series[0].Title);
                Assert.AreEqual("Additional areas", series[1].Title);
                Assert.AreEqual("Lines", series[2].Title);
                Assert.AreEqual("Areas", series[3].Title);
                Assert.AreEqual(0, seriesBeforeUpdate.Except(series).Count());
            }
        }
Exemplo n.º 12
0
        public void GivenChartControlWithData_WhenChartDataMoved_ThenCorrespondingSeriesMovedAndAllSeriesReused()
        {
            // Given
            using (var chartControl = new ChartControl())
            {
                LinearPlotView linearPlotView      = GetLinearPlotView(chartControl);
                var            chartPointData      = new ChartPointData("Points");
                var            chartLineData       = new ChartLineData("Lines");
                var            chartAreaData       = new ChartAreaData("Areas");
                var            chartDataCollection = new ChartDataCollection("Root collection");

                chartDataCollection.Add(chartPointData);
                chartDataCollection.Add(chartLineData);
                chartDataCollection.Add(chartAreaData);

                chartControl.Data = chartDataCollection;

                List <Series> seriesBeforeUpdate = linearPlotView.Model.Series.ToList();

                // Precondition
                Assert.AreEqual(3, seriesBeforeUpdate.Count);
                Assert.AreEqual("Points", seriesBeforeUpdate[0].Title);
                Assert.AreEqual("Lines", seriesBeforeUpdate[1].Title);
                Assert.AreEqual("Areas", seriesBeforeUpdate[2].Title);

                // When
                chartDataCollection.Remove(chartPointData);
                chartDataCollection.Add(chartPointData);
                chartDataCollection.NotifyObservers();

                // Then
                ElementCollection <Series> series = linearPlotView.Model.Series;
                Assert.AreEqual(3, series.Count);
                Assert.AreEqual("Lines", series[0].Title);
                Assert.AreEqual("Areas", series[1].Title);
                Assert.AreEqual("Points", series[2].Title);
                Assert.AreEqual(0, seriesBeforeUpdate.Except(series).Count());
            }
        }
Exemplo n.º 13
0
        public void Add_Null_ThrowsArgumentNullException()
        {
            // Setup
            var chartDataCollection = new ChartDataCollection("test");

            // Call
            TestDelegate call = () => chartDataCollection.Add(null);

            // Assert
            const string expectedMessage = "An item cannot be null when adding it to the collection.";

            TestHelper.AssertThrowsArgumentExceptionAndTestMessage <ArgumentNullException>(call, expectedMessage);
        }
Exemplo n.º 14
0
        private static void SetWaternetZonesChartData(MacroStabilityInwardsWaternet waternet, ChartDataCollection chartData,
                                                      IDictionary <MacroStabilityInwardsPhreaticLine, ChartLineData> phreaticLineLookup,
                                                      IDictionary <MacroStabilityInwardsWaternetLine, ChartMultipleAreaData> waternetLineLookup)
        {
            chartData.Clear();
            phreaticLineLookup.Clear();
            waternetLineLookup.Clear();

            foreach (MacroStabilityInwardsPhreaticLine phreaticLine in waternet.PhreaticLines)
            {
                ChartLineData phreaticLineChartData = MacroStabilityInwardsChartDataFactory.CreatePhreaticLineChartData(phreaticLine.Name, false);
                chartData.Add(phreaticLineChartData);
                phreaticLineLookup.Add(phreaticLine, phreaticLineChartData);
            }

            foreach (MacroStabilityInwardsWaternetLine waternetLine in waternet.WaternetLines)
            {
                ChartMultipleAreaData waternetLineChartData = MacroStabilityInwardsChartDataFactory.CreateWaternetZoneChartData(waternetLine.Name, false);
                chartData.Add(waternetLineChartData);
                waternetLineLookup.Add(waternetLine, waternetLineChartData);
            }
        }
        public void OnDrop_ChartDataMovedToPositionOutsideRange_ThrowsException(int position)
        {
            // Setup
            var observer = mocks.StrictMock <IObserver>();

            mocks.ReplayAll();

            var chartData1          = new ChartLineData("line");
            var chartData2          = new ChartAreaData("area");
            var chartData3          = new ChartPointData("point");
            var chartData4          = new ChartMultipleAreaData("multiple area");
            var chartData5          = new ChartMultipleLineData("multiple line");
            var chartDataCollection = new ChartDataCollection("test");

            chartDataCollection.Add(chartData1);
            chartDataCollection.Add(chartData2);
            chartDataCollection.Add(chartData3);
            chartDataCollection.Add(chartData4);
            chartDataCollection.Add(chartData5);

            chartDataCollection.Attach(observer);
            chartLegendView.Data = chartDataCollection;

            ChartDataContext context           = GetContext(chartData1);
            ChartDataContext collectionContext = GetContext(chartDataCollection);

            chartDataCollection.Attach(observer);

            using (var treeViewControl = new TreeViewControl())
            {
                // Call
                void Call() => info.OnDrop(context, collectionContext, collectionContext, position, treeViewControl);

                // Assert
                Assert.Throws <ArgumentOutOfRangeException>(Call);
            }
        }
        public void ContextMenuStrip_VisibleChartDataWithoutFeaturesInChartDataCollection_ZoomToAllDisabled()
        {
            // Setup
            var builder = new CustomItemsOnlyContextMenuBuilder();

            contextMenuBuilderProvider.Expect(p => p.Get(null, null)).IgnoreArguments().Return(builder);
            mocks.ReplayAll();

            var lineData = new ChartLineData("test line")
            {
                IsVisible = false,
                Points    = new[]
                {
                    new Point2D(1, 5)
                }
            };
            var pointData = new ChartPointData("test data")
            {
                IsVisible = true
            };
            var chartDataCollection = new ChartDataCollection("test data");

            chartDataCollection.Add(pointData);
            chartDataCollection.Add(lineData);

            // Call
            using (ContextMenuStrip contextMenu = info.ContextMenuStrip(chartDataCollection, null, null))
            {
                // Assert
                TestHelper.AssertContextMenuStripContainsItem(contextMenu, contextMenuZoomToAllIndex,
                                                              "&Zoom naar alles",
                                                              "Om het zoomniveau aan te passen moet minstens één van de zichtbare gegevensreeksen in deze map met gegevensreeksen elementen bevatten.",
                                                              Resources.ZoomToAllIcon,
                                                              false);
            }
        }
Exemplo n.º 17
0
        public void Add_NotNull_AddsItemToCollection()
        {
            // Setup
            var item = new ChartLineData("test");
            var chartDataCollection = new ChartDataCollection("test");

            // Call
            chartDataCollection.Add(item);

            // Assert
            List <ChartData> chartData = chartDataCollection.Collection.ToList();

            Assert.AreEqual(1, chartData.Count);
            Assert.AreSame(item, chartData.First());
        }
Exemplo n.º 18
0
        public void Insert_InvalidIndex_ThrowsArgumentOutOfRangeException(int invalidIndex)
        {
            // Setup
            var itemToInsert        = new ChartLineData("test");
            var existingItem        = new TestChartData("test");
            var chartDataCollection = new ChartDataCollection("test");

            chartDataCollection.Add(existingItem);

            // Call
            TestDelegate call = () => chartDataCollection.Insert(invalidIndex, itemToInsert);

            // Assert
            Assert.Throws <ArgumentOutOfRangeException>(call, "index");
        }
Exemplo n.º 19
0
        public void Constructor_ExpectedValues()
        {
            // Setup
            ChartData data       = new TestChartData();
            var       collection = new ChartDataCollection("test");

            collection.Add(data);

            // Call
            var context = new ChartDataContext(data, collection);

            // Assert
            Assert.IsInstanceOf <ObservableWrappedObjectContextBase <ChartData> >(context);
            Assert.AreSame(data, context.WrappedData);
            Assert.AreSame(collection, context.ParentChartData);
        }
Exemplo n.º 20
0
        public void Remove_ExistingItem_RemovesItem()
        {
            // Setup
            var item = new ChartLineData("test");
            var chartDataCollection = new ChartDataCollection("test");

            chartDataCollection.Add(item);

            // Precondition
            Assert.AreEqual(1, chartDataCollection.Collection.Count());
            Assert.IsInstanceOf <ChartLineData>(chartDataCollection.Collection.First());

            // Call
            chartDataCollection.Remove(item);

            // Assert
            CollectionAssert.IsEmpty(chartDataCollection.Collection);
        }
Exemplo n.º 21
0
        public void ZoomToVisibleSeries_ChartInFormForChildChartData_ViewInvalidatedSeriesSame()
        {
            // Setup
            using (var form = new Form())
            {
                var            chartControl   = new ChartControl();
                LinearPlotView linearPlotView = GetLinearPlotView(chartControl);
                form.Controls.Add(chartControl);
                form.Show();

                var chartDataCollection = new ChartDataCollection("Collection");
                var chartData           = new ChartLineData("test data")
                {
                    IsVisible = true,
                    Points    = new[]
                    {
                        new Point2D(0.0, 0.0),
                        new Point2D(1.0, 1.0)
                    }
                };
                chartDataCollection.Add(chartData);
                var invalidated = 0;

                chartControl.Data = chartDataCollection;
                chartControl.Update();

                linearPlotView.Invalidated += (sender, args) => invalidated++;

                // Call
                chartControl.ZoomToVisibleSeries(chartData);

                // Assert
                Assert.AreEqual(1, invalidated);

                var expectedExtent = new Extent(
                    -0.01,
                    1.01,
                    -0.01,
                    1.01);

                AssertExpectedExtent(linearPlotView.Model.Axes, expectedExtent);
            }
        }
Exemplo n.º 22
0
        public void Remove_Null_DoesNotRemove()
        {
            // Setup
            var item = new ChartLineData("test");
            var chartDataCollection = new ChartDataCollection("test");

            chartDataCollection.Add(item);

            // Precondition
            Assert.AreEqual(1, chartDataCollection.Collection.Count());
            Assert.IsInstanceOf <ChartLineData>(chartDataCollection.Collection.First());
            List <ChartData> listBeforeRemove = chartDataCollection.Collection.ToList();

            // Call
            chartDataCollection.Remove(null);

            // Assert
            CollectionAssert.AreEqual(listBeforeRemove, chartDataCollection.Collection);
        }
Exemplo n.º 23
0
        public void Insert_ItemNotNullAndValidIndex_InsertsItemToCollectionAtGivenIndex()
        {
            // Setup
            var itemToInsert        = new ChartLineData("test");
            var existingItem        = new TestChartData("test");
            var chartDataCollection = new ChartDataCollection("test");

            chartDataCollection.Add(existingItem);

            // Precondition
            Assert.AreEqual(1, chartDataCollection.Collection.Count());
            Assert.AreSame(existingItem, chartDataCollection.Collection.ElementAt(0));

            // Call
            chartDataCollection.Insert(0, itemToInsert);

            // Assert
            Assert.AreEqual(2, chartDataCollection.Collection.Count());
            Assert.AreSame(itemToInsert, chartDataCollection.Collection.ElementAt(0));
            Assert.AreSame(existingItem, chartDataCollection.Collection.ElementAt(1));
        }
        public void DisplayData(Model.StatisticsData statisticData)
        {
            ElectolarWindow.instance.Width  = desiredWindowWidth;
            ElectolarWindow.instance.Height = desiredWindowHeight;

            if (!needRecalculate)
            {
                return;
            }

            //BarChart.ItemsSource = null;
            ChartDataCollection.Clear();
            BarChart.Legends.Clear();
            foreach (var candidateVotes in statisticData.candidateVotes)
            {
                ChartDataCollection.Add(new ChartData()
                {
                    X = 1, Value = candidateVotes.Value, EntryName = candidateVotes.Key.name
                });
            }


            foreach (var partyVotes in statisticData.partyVotes)
            {
                ChartDataCollection.Add(new ChartData()
                {
                    X = 2, Value = partyVotes.Value, EntryName = partyVotes.Key
                });
            }

            ChartDataCollection.Add(new ChartData()
            {
                X = 3, Value = statisticData.invalidVotesNumber, EntryName = "Invalid votes"
            });

            BarChart.ItemsSource = ChartDataCollection;

            needRecalculate = false;
        }
        public void ContextMenuStrip_DisabledZoomToAllContextMenuItemClicked_DoesNotThrow()
        {
            // Setup
            var builder = new CustomItemsOnlyContextMenuBuilder();

            contextMenuBuilderProvider.Expect(p => p.Get(null, null)).IgnoreArguments().Return(builder);
            mocks.ReplayAll();

            var lineData            = new ChartLineData("test line");
            var chartDataCollection = new ChartDataCollection("test data");

            chartDataCollection.Add(lineData);

            using (ContextMenuStrip contextMenu = info.ContextMenuStrip(chartDataCollection, null, null))
            {
                // Call
                void Call() => contextMenu.Items[contextMenuZoomToAllIndex].PerformClick();

                // Assert
                Assert.DoesNotThrow(Call);
            }
        }
Exemplo n.º 26
0
        public void ZoomToVisibleSeries_ForInvisibleChildChartData_DoNotChangeViewExtentsOfChartView()
        {
            // Setup
            using (var form = new Form())
            {
                var            chartControl   = new ChartControl();
                LinearPlotView linearPlotView = GetLinearPlotView(chartControl);
                form.Controls.Add(chartControl);
                form.Show();

                var chartDataCollection = new ChartDataCollection("Collection");
                var chartData           = new ChartLineData("test data")
                {
                    IsVisible = false,
                    Points    = new[]
                    {
                        new Point2D(3.2, 4.1),
                        new Point2D(11.2, 5.8)
                    }
                };

                chartDataCollection.Add(chartData);
                chartControl.Data = chartDataCollection;
                chartControl.Update();

                var expectedExtent = new Extent(
                    linearPlotView.Model.Axes[0].ActualMinimum,
                    linearPlotView.Model.Axes[0].ActualMaximum,
                    linearPlotView.Model.Axes[1].ActualMinimum,
                    linearPlotView.Model.Axes[1].ActualMaximum);

                // Call
                chartControl.ZoomToVisibleSeries(chartData);

                // Assert
                AssertExpectedExtent(linearPlotView.Model.Axes, expectedExtent);
            }
        }
        public void ContextMenuStrip_EnabledZoomToAllContextMenuItemClicked_DoZoomToVisibleData()
        {
            // Setup
            var lineData = new ChartLineData("test line")
            {
                IsVisible = true,
                Points    = new[]
                {
                    new Point2D(1, 5)
                }
            };
            var chartDataCollection = new ChartDataCollection("test data");

            chartDataCollection.Add(lineData);

            var builder = new CustomItemsOnlyContextMenuBuilder();

            contextMenuBuilderProvider.Expect(p => p.Get(null, null)).IgnoreArguments().Return(builder);
            var chartControl = mocks.StrictMock <IChartControl>();

            chartControl.Expect(c => c.Data).Return(new ChartDataCollection("name"));
            chartControl.Expect(c => c.ZoomToVisibleSeries(chartDataCollection));

            mocks.ReplayAll();

            chartLegendView.ChartControl = chartControl;

            using (ContextMenuStrip contextMenu = info.ContextMenuStrip(chartDataCollection, null, null))
            {
                // Call
                contextMenu.Items[contextMenuZoomToAllIndex].PerformClick();

                // Assert
                // Assert expectancies are called in TearDown()
            }
        }
Exemplo n.º 28
0
        /// <summary>
        /// Creates a new instance of <see cref="MacroStabilityInwardsInputView"/>.
        /// </summary>
        /// <param name="data">The calculation to show the input for.</param>
        /// <param name="generalInput">General calculation parameters that are the same across all calculations.</param>
        /// <param name="assessmentSection">The assessment section the calculation belongs to.</param>
        /// <param name="getHydraulicBoundaryLocationCalculationFunc">The <see cref="Func{TResult}"/> for
        /// obtaining the hydraulic boundary location calculation.</param>
        /// <exception cref="ArgumentNullException">Thrown when any input parameter is <c>null</c>.</exception>
        public MacroStabilityInwardsInputView(MacroStabilityInwardsCalculationScenario data,
                                              GeneralMacroStabilityInwardsInput generalInput,
                                              IAssessmentSection assessmentSection,
                                              Func <HydraulicBoundaryLocationCalculation> getHydraulicBoundaryLocationCalculationFunc)
        {
            if (data == null)
            {
                throw new ArgumentNullException(nameof(data));
            }

            if (generalInput == null)
            {
                throw new ArgumentNullException(nameof(generalInput));
            }

            if (assessmentSection == null)
            {
                throw new ArgumentNullException(nameof(assessmentSection));
            }

            if (getHydraulicBoundaryLocationCalculationFunc == null)
            {
                throw new ArgumentNullException(nameof(getHydraulicBoundaryLocationCalculationFunc));
            }

            this.data         = data;
            this.generalInput = generalInput;
            this.getHydraulicBoundaryLocationCalculationFunc = getHydraulicBoundaryLocationCalculationFunc;

            InitializeComponent();

            calculationObserver = new Observer(UpdateChartTitle)
            {
                Observable = data
            };

            calculationInputObserver = new Observer(UpdateViewData)
            {
                Observable = data.InputParameters
            };

            hydraulicLocationCalculationObserver = new Observer(UpdateViewData)
            {
                Observable = getHydraulicBoundaryLocationCalculationFunc()
            };

            failureMechanismContributionObserver = new Observer(UpdateViewData)
            {
                Observable = assessmentSection.FailureMechanismContribution
            };

            chartDataCollection            = new ChartDataCollection(RiskeerCommonFormsResources.Calculation_Input);
            soilProfileChartData           = RiskeerChartDataFactory.CreateSoilProfileChartData();
            surfaceLineChartData           = RiskeerChartDataFactory.CreateSurfaceLineChartData();
            surfaceLevelInsideChartData    = MacroStabilityInwardsChartDataFactory.CreateSurfaceLevelInsideChartData();
            ditchPolderSideChartData       = RiskeerChartDataFactory.CreateDitchPolderSideChartData();
            bottomDitchPolderSideChartData = RiskeerChartDataFactory.CreateBottomDitchPolderSideChartData();
            bottomDitchDikeSideChartData   = RiskeerChartDataFactory.CreateBottomDitchDikeSideChartData();
            ditchDikeSideChartData         = RiskeerChartDataFactory.CreateDitchDikeSideChartData();
            dikeToeAtPolderChartData       = RiskeerChartDataFactory.CreateDikeToeAtPolderChartData();
            shoulderTopInsideChartData     = MacroStabilityInwardsChartDataFactory.CreateShoulderTopInsideChartData();
            shoulderBaseInsideChartData    = MacroStabilityInwardsChartDataFactory.CreateShoulderBaseInsideChartData();
            dikeTopAtPolderChartData       = MacroStabilityInwardsChartDataFactory.CreateDikeTopAtPolderChartData();
            dikeToeAtRiverChartData        = RiskeerChartDataFactory.CreateDikeToeAtRiverChartData();
            dikeTopAtRiverChartData        = MacroStabilityInwardsChartDataFactory.CreateDikeTopAtRiverChartData();
            surfaceLevelOutsideChartData   = MacroStabilityInwardsChartDataFactory.CreateSurfaceLevelOutsideChartData();
            tangentLinesData              = MacroStabilityInwardsChartDataFactory.CreateTangentLinesChartData();
            leftGridChartData             = MacroStabilityInwardsChartDataFactory.CreateLeftGridChartData();
            rightGridChartData            = MacroStabilityInwardsChartDataFactory.CreateRightGridChartData();
            waternetZonesExtremeChartData = MacroStabilityInwardsChartDataFactory.CreateWaternetZonesExtremeChartDataCollection();
            waternetZonesDailyChartData   = MacroStabilityInwardsChartDataFactory.CreateWaternetZonesDailyChartDataCollection();

            chartDataCollection.Add(soilProfileChartData);
            chartDataCollection.Add(surfaceLineChartData);
            chartDataCollection.Add(surfaceLevelInsideChartData);
            chartDataCollection.Add(ditchPolderSideChartData);
            chartDataCollection.Add(bottomDitchPolderSideChartData);
            chartDataCollection.Add(bottomDitchDikeSideChartData);
            chartDataCollection.Add(ditchDikeSideChartData);
            chartDataCollection.Add(dikeToeAtPolderChartData);
            chartDataCollection.Add(shoulderTopInsideChartData);
            chartDataCollection.Add(shoulderBaseInsideChartData);
            chartDataCollection.Add(dikeTopAtPolderChartData);
            chartDataCollection.Add(dikeToeAtRiverChartData);
            chartDataCollection.Add(dikeTopAtRiverChartData);
            chartDataCollection.Add(surfaceLevelOutsideChartData);
            chartDataCollection.Add(tangentLinesData);
            chartDataCollection.Add(leftGridChartData);
            chartDataCollection.Add(rightGridChartData);
            chartDataCollection.Add(waternetZonesExtremeChartData);
            chartDataCollection.Add(waternetZonesDailyChartData);

            soilLayerChartDataLookup = new List <ChartMultipleAreaData>();

            SetChartData();

            chartControl.Data = chartDataCollection;

            UpdateChartTitle();
            UpdateTableData();
        }
Exemplo n.º 29
0
        /// <summary>
        /// Creates a new instance of <see cref="MacroStabilityInwardsOutputChartControl"/>.
        /// </summary>
        /// <param name="data">The calculation to show the output for.</param>
        /// <param name="generalInput">General calculation parameters that are the same across all calculations.</param>
        /// <param name="getNormativeAssessmentLevelFunc"><see cref="Func{TResult}"/> for obtaining the normative assessment level.</param>
        /// <exception cref="ArgumentNullException">Thrown when any input parameter is <c>null</c>.</exception>
        public MacroStabilityInwardsOutputChartControl(MacroStabilityInwardsCalculationScenario data,
                                                       GeneralMacroStabilityInwardsInput generalInput,
                                                       Func <RoundedDouble> getNormativeAssessmentLevelFunc)
        {
            if (data == null)
            {
                throw new ArgumentNullException(nameof(data));
            }

            if (generalInput == null)
            {
                throw new ArgumentNullException(nameof(generalInput));
            }

            if (getNormativeAssessmentLevelFunc == null)
            {
                throw new ArgumentNullException(nameof(getNormativeAssessmentLevelFunc));
            }

            this.data         = data;
            this.generalInput = generalInput;
            this.getNormativeAssessmentLevelFunc = getNormativeAssessmentLevelFunc;

            InitializeComponent();

            chartDataCollection            = new ChartDataCollection(RiskeerCommonFormsResources.CalculationOutput_DisplayName);
            soilProfileChartData           = RiskeerChartDataFactory.CreateSoilProfileChartData();
            surfaceLineChartData           = RiskeerChartDataFactory.CreateSurfaceLineChartData();
            surfaceLevelInsideChartData    = MacroStabilityInwardsChartDataFactory.CreateSurfaceLevelInsideChartData();
            ditchPolderSideChartData       = RiskeerChartDataFactory.CreateDitchPolderSideChartData();
            bottomDitchPolderSideChartData = RiskeerChartDataFactory.CreateBottomDitchPolderSideChartData();
            bottomDitchDikeSideChartData   = RiskeerChartDataFactory.CreateBottomDitchDikeSideChartData();
            ditchDikeSideChartData         = RiskeerChartDataFactory.CreateDitchDikeSideChartData();
            dikeToeAtPolderChartData       = RiskeerChartDataFactory.CreateDikeToeAtPolderChartData();
            shoulderTopInsideChartData     = MacroStabilityInwardsChartDataFactory.CreateShoulderTopInsideChartData();
            shoulderBaseInsideChartData    = MacroStabilityInwardsChartDataFactory.CreateShoulderBaseInsideChartData();
            dikeTopAtPolderChartData       = MacroStabilityInwardsChartDataFactory.CreateDikeTopAtPolderChartData();
            dikeToeAtRiverChartData        = RiskeerChartDataFactory.CreateDikeToeAtRiverChartData();
            dikeTopAtRiverChartData        = MacroStabilityInwardsChartDataFactory.CreateDikeTopAtRiverChartData();
            surfaceLevelOutsideChartData   = MacroStabilityInwardsChartDataFactory.CreateSurfaceLevelOutsideChartData();
            waternetZonesExtremeChartData  = MacroStabilityInwardsChartDataFactory.CreateWaternetZonesExtremeChartDataCollection();
            waternetZonesDailyChartData    = MacroStabilityInwardsChartDataFactory.CreateWaternetZonesDailyChartDataCollection();
            tangentLinesChartData          = MacroStabilityInwardsChartDataFactory.CreateTangentLinesChartData();
            leftGridChartData          = MacroStabilityInwardsChartDataFactory.CreateLeftGridChartData();
            rightGridChartData         = MacroStabilityInwardsChartDataFactory.CreateRightGridChartData();
            slipPlaneChartData         = MacroStabilityInwardsChartDataFactory.CreateSlipPlaneChartData();
            leftCircleRadiusChartData  = MacroStabilityInwardsChartDataFactory.CreateActiveCircleRadiusChartData();
            rightCircleRadiusChartData = MacroStabilityInwardsChartDataFactory.CreatePassiveCircleRadiusChartData();
            slicesChartData            = MacroStabilityInwardsSliceChartDataFactory.CreateSlicesChartData();

            sliceParametersChartDataCollection = MacroStabilityInwardsSliceChartDataFactory.CreateSliceParametersChartDataCollection();
            sliceCohesionChartData             = MacroStabilityInwardsSliceChartDataFactory.CreateCohesionChartData();
            sliceEffectiveStressChartData      = MacroStabilityInwardsSliceChartDataFactory.CreateEffectiveStressChartData();
            sliceTotalPorePressureChartData    = MacroStabilityInwardsSliceChartDataFactory.CreateTotalPorePressureChartData();
            sliceWeightChartData = MacroStabilityInwardsSliceChartDataFactory.CreateWeightChartData();
            slicePiezometricPorePressureChartData = MacroStabilityInwardsSliceChartDataFactory.CreatePiezometricPorePressureChartData();
            slicePorePressureChartData            = MacroStabilityInwardsSliceChartDataFactory.CreatePorePressureChartData();
            sliceVerticalPorePressureChartData    = MacroStabilityInwardsSliceChartDataFactory.CreateVerticalPorePressureChartData();
            sliceHorizontalPorePressureChartData  = MacroStabilityInwardsSliceChartDataFactory.CreateHorizontalPorePressureChartData();
            sliceOverConsolidationRatioChartData  = MacroStabilityInwardsSliceChartDataFactory.CreateOverConsolidationRatioChartData();
            slicePopChartData          = MacroStabilityInwardsSliceChartDataFactory.CreatePopChartData();
            sliceNormalStressChartData = MacroStabilityInwardsSliceChartDataFactory.CreateNormalStressChartData();
            sliceShearStressChartData  = MacroStabilityInwardsSliceChartDataFactory.CreateShearStressChartData();
            sliceLoadStressChartData   = MacroStabilityInwardsSliceChartDataFactory.CreateLoadStressChartData();

            chartDataCollection.Add(soilProfileChartData);
            chartDataCollection.Add(surfaceLineChartData);
            chartDataCollection.Add(surfaceLevelInsideChartData);
            chartDataCollection.Add(ditchPolderSideChartData);
            chartDataCollection.Add(bottomDitchPolderSideChartData);
            chartDataCollection.Add(bottomDitchDikeSideChartData);
            chartDataCollection.Add(ditchDikeSideChartData);
            chartDataCollection.Add(dikeToeAtPolderChartData);
            chartDataCollection.Add(shoulderTopInsideChartData);
            chartDataCollection.Add(shoulderBaseInsideChartData);
            chartDataCollection.Add(dikeTopAtPolderChartData);
            chartDataCollection.Add(dikeToeAtRiverChartData);
            chartDataCollection.Add(dikeTopAtRiverChartData);
            chartDataCollection.Add(surfaceLevelOutsideChartData);
            chartDataCollection.Add(waternetZonesExtremeChartData);
            chartDataCollection.Add(waternetZonesDailyChartData);
            chartDataCollection.Add(tangentLinesChartData);
            chartDataCollection.Add(leftGridChartData);
            chartDataCollection.Add(rightGridChartData);
            chartDataCollection.Add(slicesChartData);
            chartDataCollection.Add(slipPlaneChartData);
            chartDataCollection.Add(leftCircleRadiusChartData);
            chartDataCollection.Add(rightCircleRadiusChartData);

            chartDataCollection.Add(sliceParametersChartDataCollection);
            sliceParametersChartDataCollection.Add(sliceLoadStressChartData);
            sliceParametersChartDataCollection.Add(sliceShearStressChartData);
            sliceParametersChartDataCollection.Add(sliceNormalStressChartData);
            sliceParametersChartDataCollection.Add(slicePopChartData);
            sliceParametersChartDataCollection.Add(sliceOverConsolidationRatioChartData);
            sliceParametersChartDataCollection.Add(sliceHorizontalPorePressureChartData);
            sliceParametersChartDataCollection.Add(sliceVerticalPorePressureChartData);
            sliceParametersChartDataCollection.Add(slicePorePressureChartData);
            sliceParametersChartDataCollection.Add(slicePiezometricPorePressureChartData);
            sliceParametersChartDataCollection.Add(sliceWeightChartData);
            sliceParametersChartDataCollection.Add(sliceTotalPorePressureChartData);
            sliceParametersChartDataCollection.Add(sliceEffectiveStressChartData);
            sliceParametersChartDataCollection.Add(sliceCohesionChartData);

            soilLayerChartDataLookup = new List <ChartMultipleAreaData>();

            phreaticLineExtremeLookup = new Dictionary <MacroStabilityInwardsPhreaticLine, ChartLineData>();
            phreaticLineDailyLookup   = new Dictionary <MacroStabilityInwardsPhreaticLine, ChartLineData>();
            waternetLineExtremeLookup = new Dictionary <MacroStabilityInwardsWaternetLine, ChartMultipleAreaData>();
            waternetLineDailyLookup   = new Dictionary <MacroStabilityInwardsWaternetLine, ChartMultipleAreaData>();

            UpdateChartData();

            chartControl.Data = chartDataCollection;
        }
Exemplo n.º 30
0
        public void UpdateObserver_DataUpdated_ChartSeriesSameOrder()
        {
            // Setup
            const int updatedSoilProfileIndex           = soilProfileIndex;
            const int updatedSurfaceLineIndex           = surfaceLineIndex + 8;
            const int updatedDitchPolderSideIndex       = ditchPolderSideIndex - 1;
            const int updatedBottomDitchPolderSideIndex = bottomDitchPolderSideIndex - 1;
            const int updatedBottomDitchDikeSideIndex   = bottomDitchDikeSideIndex - 1;
            const int updatedDitchDikeSideIndex         = ditchDikeSideIndex - 1;
            const int updatedDikeToeAtPolderIndex       = dikeToeAtPolderIndex - 1;
            const int updatedDikeToeAtRiverIndex        = dikeToeAtRiverIndex - 1;
            const int updatedExitPointIndex             = exitPointIndex - 1;
            const int updatedEntryPointIndex            = entryPointIndex - 1;

            var calculation = new TestPipingCalculationScenario(new TestPipingInput());

            using (var view = new PipingInputView
            {
                Data = calculation
            })
            {
                ChartDataCollection chartData = view.Chart.Data;

                ChartData dataToMove = chartData.Collection.ElementAt(surfaceLineIndex);
                chartData.Remove(dataToMove);
                chartData.Add(dataToMove);

                List <ChartData> chartDataList = chartData.Collection.ToList();

                var soilProfileData           = (ChartDataCollection)chartDataList[updatedSoilProfileIndex];
                var surfaceLineData           = (ChartLineData)chartDataList[updatedSurfaceLineIndex];
                var entryPointData            = (ChartPointData)chartDataList[updatedEntryPointIndex];
                var exitPointData             = (ChartPointData)chartDataList[updatedExitPointIndex];
                var ditchDikeSideData         = (ChartPointData)chartDataList[updatedDitchDikeSideIndex];
                var bottomDitchDikeSideData   = (ChartPointData)chartDataList[updatedBottomDitchDikeSideIndex];
                var ditchPolderSideData       = (ChartPointData)chartDataList[updatedDitchPolderSideIndex];
                var bottomDitchPolderSideData = (ChartPointData)chartDataList[updatedBottomDitchPolderSideIndex];
                var dikeToeAtPolderData       = (ChartPointData)chartDataList[updatedDikeToeAtPolderIndex];
                var dikeToeAtRiverData        = (ChartPointData)chartDataList[updatedDikeToeAtRiverIndex];

                Assert.AreEqual("Ondergrondschematisatie", soilProfileData.Name);
                Assert.AreEqual("Profielschematisatie", surfaceLineData.Name);
                Assert.AreEqual("Intredepunt", entryPointData.Name);
                Assert.AreEqual("Uittredepunt", exitPointData.Name);
                Assert.AreEqual("Insteek sloot dijkzijde", ditchDikeSideData.Name);
                Assert.AreEqual("Slootbodem dijkzijde", bottomDitchDikeSideData.Name);
                Assert.AreEqual("Insteek sloot polderzijde", ditchPolderSideData.Name);
                Assert.AreEqual("Slootbodem polderzijde", bottomDitchPolderSideData.Name);
                Assert.AreEqual("Teen dijk binnenwaarts", dikeToeAtPolderData.Name);
                Assert.AreEqual("Teen dijk buitenwaarts", dikeToeAtRiverData.Name);

                PipingSurfaceLine surfaceLine = GetSurfaceLineWithGeometry();
                calculation.InputParameters.SurfaceLine = surfaceLine;

                // Call
                calculation.InputParameters.NotifyObservers();

                // Assert
                chartDataList = chartData.Collection.ToList();

                var actualSoilProfileData           = (ChartDataCollection)chartDataList[updatedSoilProfileIndex];
                var actualSurfaceLineData           = (ChartLineData)chartDataList[updatedSurfaceLineIndex];
                var actualEntryPointData            = (ChartPointData)chartDataList[updatedEntryPointIndex];
                var actualExitPointData             = (ChartPointData)chartDataList[updatedExitPointIndex];
                var actualDitchDikeSideData         = (ChartPointData)chartDataList[updatedDitchDikeSideIndex];
                var actualBottomDitchDikeSideData   = (ChartPointData)chartDataList[updatedBottomDitchDikeSideIndex];
                var actualDitchPolderSideData       = (ChartPointData)chartDataList[updatedDitchPolderSideIndex];
                var actualBottomDitchPolderSideData = (ChartPointData)chartDataList[updatedBottomDitchPolderSideIndex];
                var actualDikeToeAtPolderData       = (ChartPointData)chartDataList[updatedDikeToeAtPolderIndex];
                var actualDikeToeAtRiverData        = (ChartPointData)chartDataList[updatedDikeToeAtRiverIndex];

                Assert.AreEqual("Ondergrondschematisatie", actualSoilProfileData.Name);
                Assert.AreEqual(surfaceLine.Name, actualSurfaceLineData.Name);
                Assert.AreEqual("Intredepunt", actualEntryPointData.Name);
                Assert.AreEqual("Uittredepunt", actualExitPointData.Name);
                Assert.AreEqual("Insteek sloot dijkzijde", actualDitchDikeSideData.Name);
                Assert.AreEqual("Slootbodem dijkzijde", actualBottomDitchDikeSideData.Name);
                Assert.AreEqual("Insteek sloot polderzijde", actualDitchPolderSideData.Name);
                Assert.AreEqual("Slootbodem polderzijde", actualBottomDitchPolderSideData.Name);
                Assert.AreEqual("Teen dijk binnenwaarts", actualDikeToeAtPolderData.Name);
                Assert.AreEqual("Teen dijk buitenwaarts", actualDikeToeAtRiverData.Name);
            }
        }