Skip to content

Commit db6ece2

Browse files
authored
Fixes #2767 Make preview option sticky in projects (#2768)
* Fixes #2767 Make preview option sticky in projects * pr feedback
1 parent cf6e02f commit db6ece2

File tree

8 files changed

+36
-4
lines changed

8 files changed

+36
-4
lines changed

src/OSPSuite.Core/Chart/Mappers/CurveChartToCurveChartTemplateMapper.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ public CurveChartTemplate MapFrom(CurveChart curveChart)
2525
return template;
2626

2727
template.IncludeOriginData = curveChart.IncludeOriginData;
28+
template.PreviewSettings = curveChart.PreviewSettings;
2829
template.ChartSettings.UpdatePropertiesFrom(curveChart.ChartSettings, _cloneManager);
2930
template.FontAndSize.UpdatePropertiesFrom(curveChart.FontAndSize, _cloneManager);
3031
curveChart.Curves.Each(curve => template.Curves.Add(curveFrom(curve)));

src/OSPSuite.Core/Serialization/Chart/CurveChartTemplateXmlSerializer.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ public override void PerformMapping()
1111
Map(x => x.IncludeOriginData);
1212
Map(x => x.FontAndSize);
1313
Map(x => x.Name);
14+
Map(x => x.PreviewSettings);
1415
MapEnumerable(x => x.Axes, x => x.AddAxis);
1516
MapEnumerable(x => x.Curves, x => x.Curves.Add);
1617
Map(x => x.IsDefault);

src/OSPSuite.Core/Serialization/Chart/CurveChartXmlSerializer.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ public override void PerformMapping()
1717
Map(x => x.Name);
1818
Map(x => x.Title);
1919
Map(x => x.Description);
20+
Map(x => x.PreviewSettings);
2021
MapEnumerable(x => x.Axes, x => x.AddAxis);
2122
MapEnumerable(x => x.Curves, x => x.AddCurveIfConsistent);
2223
}

src/OSPSuite.Presentation/Presenters/Charts/ChartDisplayPresenter.cs

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,11 @@ public interface IChartDisplayPresenter :
191191
void AddDeviationLines();
192192

193193
Func<IEnumerable<DataColumn>, IEnumerable<DataColumn>> PreExportHook { get; set; }
194+
195+
/// <summary>
196+
/// Applies the watermark to the chart if the chart is in preview mode and auto update is enabled, otherwise does nothing
197+
/// </summary>
198+
void UpdateWatermark();
194199
}
195200

196201
public class ChartDisplayPresenter : AbstractPresenter<IChartDisplayView, IChartDisplayPresenter>, IChartDisplayPresenter
@@ -222,6 +227,12 @@ public Action<int> HotTracked
222227
//by default, don't modify anything
223228
public Func<IEnumerable<DataColumn>, IEnumerable<DataColumn>> PreExportHook { get; set; } = x => x;
224229

230+
public void UpdateWatermark()
231+
{
232+
if (Chart.AutoUpdateEnabled)
233+
_view.ShowWatermark(normalWatermark);
234+
}
235+
225236
public ChartDisplayPresenter(IChartDisplayView chartDisplayView,
226237
ICurveBinderFactory curveBinderFactory,
227238
IViewItemContextMenuFactory contextMenuFactory,
@@ -394,7 +405,7 @@ private void updateChart(IReadOnlyCollection<Curve> curvesToUpdate, bool refresh
394405
{
395406
// Make sure binders for curves that were removed are pruned so that their axes are not considered when calculating diagram size
396407
pruneCurves();
397-
408+
398409
var diagramSize = View.GetDiagramSize();
399410
using (new BatchUpdate(View))
400411
{

src/OSPSuite.Presentation/Services/ChartFromTemplateService.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ private void updateChartFromTemplateWithMatchingCurves(CurveChart chart, CurveCh
7777
chart.FontAndSize.UpdatePropertiesFrom(template.FontAndSize, _cloneManager);
7878
template.Axes.Each(axis => chart.AddAxis(axis.Clone()));
7979
bestTemplateForCurves.KeyValues.Each(kv => addCurvesToChart(kv.Key, kv.Value, chart));
80+
chart.PreviewSettings = template.PreviewSettings;
8081
}
8182
}
8283

src/OSPSuite.UI/Views/Charts/ChartDisplayView.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,8 @@ private Point chartControlPointFromDragDropEventArgs(DragEventArgs dragOverEvent
191191
private void onSizeChanged()
192192
{
193193
_presenter?.RefreshAxisBinders();
194+
if (_presenter?.Chart != null)
195+
_presenter?.UpdateWatermark();
194196
}
195197

196198
private void chartDoubleClick(MouseEventArgs mouseEventArgs)
@@ -568,7 +570,7 @@ private string generateToolTipForSeriesDataPoint(Series series, ChartHitInfo hit
568570
: null, editable: _curveEditEnabled, description: curveDescription);
569571
}
570572

571-
private SeriesPoint findPointInSeries(ChartHitInfo hitInfo, Series series) =>
573+
private SeriesPoint findPointInSeries(ChartHitInfo hitInfo, Series series) =>
572574
hitInfo.SeriesPoint ?? findNextClosestSeriesPoint(hitInfo, series);
573575

574576
private SeriesPoint findNextClosestSeriesPoint(ChartHitInfo hitInfo, Series series)
@@ -586,10 +588,10 @@ private SeriesPoint findNextClosestSeriesPoint(ChartHitInfo hitInfo, Series seri
586588
return nextPoint;
587589
}
588590

589-
private void onObjectSelected(HotTrackEventArgs e) =>
591+
private void onObjectSelected(HotTrackEventArgs e) =>
590592
e.Cancel = true;
591593

592-
public void SetFontAndSizeSettings(ChartFontAndSizeSettings fontAndSizeSettings) =>
594+
public void SetFontAndSizeSettings(ChartFontAndSizeSettings fontAndSizeSettings) =>
593595
_chartControl.SetFontAndSizeSettings(fontAndSizeSettings, _chartControl.Size);
594596

595597
public void CopyToClipboard(string watermark) => _chartControl.CopyToClipboard(_presenter.Chart, watermark);

tests/OSPSuite.Core.Tests/Mappers/CurveChartToCurveChartTemplateMapperSpecs.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ protected override void Context()
4545
_curveChart.AddAxis(new Axis(AxisTypes.X));
4646
_curveChart.AddAxis(new Axis(AxisTypes.Y));
4747
_curveChart.AddAxis(new Axis(AxisTypes.Y2));
48+
_curveChart.PreviewSettings = true;
4849
var curve = new Curve();
4950
curve.SetxData(_xData, _dimensionFactory);
5051
curve.SetyData(_yData, _dimensionFactory);
@@ -83,6 +84,12 @@ public void should_have_updated_the_font_and_size()
8384
{
8485
_curveChartTemplate.FontAndSize.ChartHeight.ShouldBeEqualTo(500);
8586
}
87+
88+
[Observation]
89+
public void should_have_the_preview_settings_set()
90+
{
91+
_curveChart.PreviewSettings.ShouldBeEqualTo(_curveChartTemplate.PreviewSettings);
92+
}
8693
}
8794

8895
public class When_mapping_an_undefined_chart : concern_for_CurveChartToCurveChartTemplateMapper

tests/OSPSuite.Presentation.Tests/Presentation/ChartFromTemplateServiceSpecs.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,9 @@ protected override void Context()
103103
xData = {QuantityType = QuantityType.BaseGrid},
104104
yData = {QuantityType = _drugColumn.QuantityInfo.Type, Path = _drugTemplatePathArray.ToPathString()}
105105
});
106+
107+
_template.PreviewSettings = true;
108+
106109
_propagateChartChangedEvent = false;
107110
}
108111

@@ -111,6 +114,11 @@ protected override void Because()
111114
sut.InitializeChartFromTemplate(_chart, _dataColumns, _template, propogateChartChangeEvent:_propagateChartChangedEvent);
112115
}
113116

117+
[Observation]
118+
public void should_update_the_export_preview_settings_from_the_template()
119+
{
120+
_chart.PreviewSettings.ShouldBeEqualTo(_template.PreviewSettings);
121+
}
114122

115123
[Observation]
116124
public void should_return_a_chart_with_the_curves_for_the_exact_data()

0 commit comments

Comments
 (0)