diff --git a/e2e/Sandbox/DashboardCreators/Visualizations/ScatterVisualizationDashboard.cs b/e2e/Sandbox/DashboardCreators/Visualizations/ScatterVisualizationDashboard.cs index fbdfee89..f670ebb9 100644 --- a/e2e/Sandbox/DashboardCreators/Visualizations/ScatterVisualizationDashboard.cs +++ b/e2e/Sandbox/DashboardCreators/Visualizations/ScatterVisualizationDashboard.cs @@ -50,6 +50,7 @@ public RdashDocument CreateDashboard() settings.YAxisIsLogarithmic = true; settings.YAxisMaxValue = 750000; settings.YAxisMinValue = 100; + settings.AxisDisplayMode = AxisDisplayMode.None; }); // Data Specs diff --git a/src/Reveal.Sdk.Dom/Visualizations/Settings/ScatterVisualizationSettings.cs b/src/Reveal.Sdk.Dom/Visualizations/Settings/ScatterVisualizationSettings.cs index 4695854c..85c95c7a 100644 --- a/src/Reveal.Sdk.Dom/Visualizations/Settings/ScatterVisualizationSettings.cs +++ b/src/Reveal.Sdk.Dom/Visualizations/Settings/ScatterVisualizationSettings.cs @@ -1,4 +1,5 @@ using Newtonsoft.Json; +using System; namespace Reveal.Sdk.Dom.Visualizations.Settings { @@ -26,5 +27,59 @@ public ScatterVisualizationSettings() /// [JsonProperty("RightAxisMaxValue")] public double? XAxisMaxValue { get; set; } + + /// + /// Gets or sets if the visualization will display the X axis. + /// This property is being wrapped by the to simplify the API. + /// + [JsonProperty] + internal bool ShowAxisX { get; set; } = true; + + /// + /// Gets or sets if the visualization will display the Y axis. + /// This property is being wrapped by the to simplify the API. + /// + [JsonProperty] + internal bool ShowAxisY { get; set; } = true; + + /// + /// Gets or sets the display mode for the axis. + /// + [JsonIgnore] + public AxisDisplayMode AxisDisplayMode + { + get + { + if (ShowAxisX && ShowAxisY) return AxisDisplayMode.Both; + if (!ShowAxisX && !ShowAxisY) return AxisDisplayMode.None; + if (ShowAxisX) return AxisDisplayMode.XAxis; + if (ShowAxisY) return AxisDisplayMode.YAxis; + throw new InvalidOperationException("Invalid axis visibility state."); + } + set + { + switch (value) + { + case AxisDisplayMode.Both: + ShowAxisX = true; + ShowAxisY = true; + break; + case AxisDisplayMode.None: + ShowAxisX = false; + ShowAxisY = false; + break; + case AxisDisplayMode.XAxis: + ShowAxisX = true; + ShowAxisY = false; + break; + case AxisDisplayMode.YAxis: + ShowAxisX = false; + ShowAxisY = true; + break; + default: + throw new ArgumentOutOfRangeException(); + } + } + } } }