Index: Core/Gui/test/Core.Gui.Test/Plugin/ViewInfoTest.cs =================================================================== diff -u -rce7a3865e550c0ddf8680aaab9ff591763be5025 -r15d39e3773620fe0e9c23de9831e16e6cc105d01 --- Core/Gui/test/Core.Gui.Test/Plugin/ViewInfoTest.cs (.../ViewInfoTest.cs) (revision ce7a3865e550c0ddf8680aaab9ff591763be5025) +++ Core/Gui/test/Core.Gui.Test/Plugin/ViewInfoTest.cs (.../ViewInfoTest.cs) (revision 15d39e3773620fe0e9c23de9831e16e6cc105d01) @@ -69,52 +69,49 @@ Type newViewDataType = typeof(string); Type viewType = typeof(StringView); const string newDescription = ""; - Func getViewNameDelegate = (view, o) => ""; + string GetViewName(IView view, object o) => ""; Image image = Resources.abacus; const string symbol = ""; var fontFamily = new FontFamily(); - Func additionalDataDelegate = o => true; - Func getViewDataDelegate = o => 45; - Action afterCreateDelegate = (view, o) => - { - // Do something useful - }; - Func closeViewForDataDelegate = (view, o) => true; - Func createInstanceDelegate = o => viewInstance; + bool AdditionalDataCheck(object o) => true; + object GetViewData(object o) => 45; + void AfterCreate(IView view, object o) {} + bool CloseForData(IView view, object o) => true; + IView CreateInstance(object o) => viewInstance; // Call viewInfo.DataType = newDataType; viewInfo.ViewDataType = newViewDataType; viewInfo.ViewType = viewType; viewInfo.Description = newDescription; - viewInfo.GetViewName = getViewNameDelegate; + viewInfo.GetViewName = GetViewName; viewInfo.Image = image; viewInfo.Symbol = symbol; viewInfo.FontFamily = fontFamily; - viewInfo.AdditionalDataCheck = additionalDataDelegate; - viewInfo.GetViewData = getViewDataDelegate; - viewInfo.AfterCreate = afterCreateDelegate; - viewInfo.CloseForData = closeViewForDataDelegate; - viewInfo.CreateInstance = createInstanceDelegate; + viewInfo.AdditionalDataCheck = AdditionalDataCheck; + viewInfo.GetViewData = GetViewData; + viewInfo.AfterCreate = AfterCreate; + viewInfo.CloseForData = CloseForData; + viewInfo.CreateInstance = CreateInstance; // Assert Assert.AreEqual(newDataType, viewInfo.DataType); Assert.AreEqual(newViewDataType, viewInfo.ViewDataType); Assert.AreEqual(viewType, viewInfo.ViewType); Assert.AreEqual(newDescription, viewInfo.Description); - Assert.AreEqual(getViewNameDelegate, viewInfo.GetViewName); + Assert.AreEqual((Func) GetViewName, viewInfo.GetViewName); Assert.AreEqual(image, viewInfo.Image); Assert.AreEqual(symbol, viewInfo.Symbol); Assert.AreSame(fontFamily, viewInfo.FontFamily); - Assert.AreEqual(additionalDataDelegate, viewInfo.AdditionalDataCheck); - Assert.AreEqual(getViewDataDelegate, viewInfo.GetViewData); - Assert.AreEqual(afterCreateDelegate, viewInfo.AfterCreate); - Assert.AreEqual(closeViewForDataDelegate, viewInfo.CloseForData); - Assert.AreEqual(createInstanceDelegate, viewInfo.CreateInstance); + Assert.AreEqual((Func) AdditionalDataCheck, viewInfo.AdditionalDataCheck); + Assert.AreEqual((Func) GetViewData, viewInfo.GetViewData); + Assert.AreEqual((Action) AfterCreate, viewInfo.AfterCreate); + Assert.AreEqual((Func) CloseForData, viewInfo.CloseForData); + Assert.AreEqual((Func) CreateInstance, viewInfo.CreateInstance); } [Test] - public void CreateInstance_ViewtypeWithDefaultConstructor_ReturnView() + public void CreateInstance_ViewTypeWithDefaultConstructor_ReturnView() { // Setup var viewInfo = new ViewInfo @@ -146,10 +143,10 @@ }; // Call - string text = viewInfo.ToString(); + var text = viewInfo.ToString(); // Assert - string expectedText = $"{viewInfo.DataType} : {viewInfo.ViewDataType} : {viewInfo.ViewType}"; + var expectedText = $"{viewInfo.DataType} : {viewInfo.ViewDataType} : {viewInfo.ViewType}"; Assert.AreEqual(expectedText, text); } @@ -182,41 +179,38 @@ var viewInfo = new ViewInfo(); const string newDescription = ""; - Func getViewNameDelegate = (view, o) => ""; + string GetViewName(IView view, int o) => ""; Image image = Resources.abacus; const string symbol = ""; var fontFamily = new FontFamily(); - Func additionalDataDelegate = o => true; - Func getViewDataDelegate = o => o.ToString(); - Action afterCreateDelegate = (view, o) => - { - // Do something useful - }; - Func closeViewForDataDelegate = (view, o) => true; - Func createInstanceDelegate = o => new StringView(); + bool AdditionalDataCheck(int o) => true; + string GetViewData(int o) => o.ToString(); + void AfterCreate(IView view, int o) {} + bool CloseForData(IView view, object o) => true; + StringView CreateInstance(int o) => new StringView(); // Call viewInfo.Description = newDescription; - viewInfo.GetViewName = getViewNameDelegate; + viewInfo.GetViewName = (Func) GetViewName; viewInfo.Image = image; viewInfo.Symbol = symbol; viewInfo.FontFamily = fontFamily; - viewInfo.AdditionalDataCheck = additionalDataDelegate; - viewInfo.GetViewData = getViewDataDelegate; - viewInfo.AfterCreate = afterCreateDelegate; - viewInfo.CloseForData = closeViewForDataDelegate; - viewInfo.CreateInstance = createInstanceDelegate; + viewInfo.AdditionalDataCheck = AdditionalDataCheck; + viewInfo.GetViewData = GetViewData; + viewInfo.AfterCreate = (Action) AfterCreate; + viewInfo.CloseForData = (Func) CloseForData; + viewInfo.CreateInstance = CreateInstance; // Assert Assert.AreEqual(newDescription, viewInfo.Description); - Assert.AreEqual(getViewNameDelegate, viewInfo.GetViewName); + Assert.AreEqual((Func) GetViewName, viewInfo.GetViewName); Assert.AreEqual(image, viewInfo.Image); Assert.AreEqual(symbol, viewInfo.Symbol); Assert.AreSame(fontFamily, viewInfo.FontFamily); - Assert.AreEqual(additionalDataDelegate, viewInfo.AdditionalDataCheck); - Assert.AreEqual(getViewDataDelegate, viewInfo.GetViewData); - Assert.AreEqual(afterCreateDelegate, viewInfo.AfterCreate); - Assert.AreEqual(closeViewForDataDelegate, viewInfo.CloseForData); + Assert.AreEqual((Func) AdditionalDataCheck, viewInfo.AdditionalDataCheck); + Assert.AreEqual((Func) GetViewData, viewInfo.GetViewData); + Assert.AreEqual((Action) AfterCreate, viewInfo.AfterCreate); + Assert.AreEqual((Func) CloseForData, viewInfo.CloseForData); } [Test] @@ -226,10 +220,10 @@ var viewInfo = new ViewInfo(); // Call - string text = viewInfo.ToString(); + var text = viewInfo.ToString(); // Assert - string expectedText = $"{viewInfo.DataType} : {viewInfo.ViewDataType} : {viewInfo.ViewType}"; + var expectedText = $"{viewInfo.DataType} : {viewInfo.ViewDataType} : {viewInfo.ViewType}"; Assert.AreEqual(expectedText, text); } @@ -259,48 +253,55 @@ const string newDescription = ""; const string newViewName = ""; - Func getViewNameDelegate = (view, o) => + + string GetViewName(IView view, int o) { Assert.AreSame(stringView, view); Assert.AreEqual(dataObject, o); return newViewName; - }; + } + Image image = Resources.abacus; const string symbol = ""; var fontFamily = new FontFamily(); - Func additionalDataDelegate = o => + + bool AdditionalDataCheck(int o) { Assert.AreEqual(dataObject, o); return true; - }; - Func getViewDataDelegate = o => + } + + string GetViewData(int o) { Assert.AreEqual(dataObject, o); return o.ToString(); - }; - var afterCreateDelegateCalled = false; - Action afterCreateDelegate = (view, o) => + } + + var afterCreateCalled = false; + + void AfterCreate(IView view, int o) { Assert.AreSame(stringView, view); Assert.AreEqual(dataObject, o); - afterCreateDelegateCalled = true; - }; - Func closeViewForDataDelegate = (view, o) => + afterCreateCalled = true; + } + + bool CloseForData(IView view, object o) { Assert.AreSame(stringView, view); Assert.AreEqual(dataObject, o); return true; - }; + } viewInfo.Description = newDescription; - viewInfo.GetViewName = getViewNameDelegate; + viewInfo.GetViewName = (Func) GetViewName; viewInfo.Image = image; viewInfo.Symbol = symbol; viewInfo.FontFamily = fontFamily; - viewInfo.AdditionalDataCheck = additionalDataDelegate; - viewInfo.GetViewData = getViewDataDelegate; - viewInfo.AfterCreate = afterCreateDelegate; - viewInfo.CloseForData = closeViewForDataDelegate; + viewInfo.AdditionalDataCheck = AdditionalDataCheck; + viewInfo.GetViewData = GetViewData; + viewInfo.AfterCreate = (Action) AfterCreate; + viewInfo.CloseForData = (Func) CloseForData; viewInfo.CreateInstance = o => new StringView { Text = "A" @@ -327,7 +328,7 @@ Assert.AreEqual("A", viewInfo.CreateInstance(dataObject).Text); viewInfo.AfterCreate(stringView, dataObject); - Assert.IsTrue(afterCreateDelegateCalled); + Assert.IsTrue(afterCreateCalled); } private class StringView : IView Index: Riskeer/Common/src/Riskeer.Common.Plugin/Riskeer.Common.Plugin.csproj =================================================================== diff -u -r4f72d4267fd1efaea51ba50c83f31d086e10020a -r15d39e3773620fe0e9c23de9831e16e6cc105d01 --- Riskeer/Common/src/Riskeer.Common.Plugin/Riskeer.Common.Plugin.csproj (.../Riskeer.Common.Plugin.csproj) (revision 4f72d4267fd1efaea51ba50c83f31d086e10020a) +++ Riskeer/Common/src/Riskeer.Common.Plugin/Riskeer.Common.Plugin.csproj (.../Riskeer.Common.Plugin.csproj) (revision 15d39e3773620fe0e9c23de9831e16e6cc105d01) @@ -1,6 +1,7 @@  + Index: Riskeer/Common/src/Riskeer.Common.Plugin/RiskeerViewInfo.cs =================================================================== diff -u --- Riskeer/Common/src/Riskeer.Common.Plugin/RiskeerViewInfo.cs (revision 0) +++ Riskeer/Common/src/Riskeer.Common.Plugin/RiskeerViewInfo.cs (revision 15d39e3773620fe0e9c23de9831e16e6cc105d01) @@ -0,0 +1,62 @@ +// Copyright (C) Stichting Deltares 2021. All rights reserved. +// +// This file is part of Riskeer. +// +// Riskeer is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using Core.Common.Controls.Views; +using Core.Gui; +using Core.Gui.Plugin; + +namespace Riskeer.Common.Plugin +{ + /// + public class RiskeerViewInfo : ViewInfo + where TView : IView + { + /// + /// Initializes a new instance of the class. + /// + /// The to use during the initialization. + /// Thrown when equals null. + public RiskeerViewInfo(IGui gui) + { + if (gui == null) + { + throw new ArgumentNullException(nameof(gui)); + } + + Symbol = gui.ActiveStateInfo?.Symbol; + FontFamily = gui.ActiveStateInfo?.FontFamily; + } + } + + /// + public class RiskeerViewInfo + : RiskeerViewInfo + where TView : IView + { + /// + /// Initializes a new instance of the class. + /// + /// The to use during the initialization. + /// Thrown when equals null. + public RiskeerViewInfo(IGui gui) : base(gui) {} + } +} \ No newline at end of file