Index: Core/Common/src/Core.Common.Gui/Forms/MainWindow/MainWindow.xaml
===================================================================
diff -u -rc6770db6573c4c1456d3faaba3ec1d65a9c3005e -r18a617da943368e8294aa31528d2e2379d7318cc
--- Core/Common/src/Core.Common.Gui/Forms/MainWindow/MainWindow.xaml (.../MainWindow.xaml) (revision c6770db6573c4c1456d3faaba3ec1d65a9c3005e)
+++ Core/Common/src/Core.Common.Gui/Forms/MainWindow/MainWindow.xaml (.../MainWindow.xaml) (revision 18a617da943368e8294aa31528d2e2379d7318cc)
@@ -43,7 +43,7 @@
-
+
Index: Core/Components/src/Core.Components.Charting/IChart.cs
===================================================================
diff -u -rfc0a61c81da4dcf9f436c8b8bd9c51c6b4d65ef8 -r18a617da943368e8294aa31528d2e2379d7318cc
--- Core/Components/src/Core.Components.Charting/IChart.cs (.../IChart.cs) (revision fc0a61c81da4dcf9f436c8b8bd9c51c6b4d65ef8)
+++ Core/Components/src/Core.Components.Charting/IChart.cs (.../IChart.cs) (revision 18a617da943368e8294aa31528d2e2379d7318cc)
@@ -3,7 +3,7 @@
namespace Core.Components.Charting
{
- public interface IChart : IObservable {
+ public interface IChart {
///
/// Gets a value representing whether the chart can be panned with the left mouse button.
///
Index: Core/Components/src/Core.Components.OxyPlot.Forms/BaseChart.cs
===================================================================
diff -u -r74cd1965818ae9b23da6cad8776b7da2868be4a7 -r18a617da943368e8294aa31528d2e2379d7318cc
--- Core/Components/src/Core.Components.OxyPlot.Forms/BaseChart.cs (.../BaseChart.cs) (revision 74cd1965818ae9b23da6cad8776b7da2868be4a7)
+++ Core/Components/src/Core.Components.OxyPlot.Forms/BaseChart.cs (.../BaseChart.cs) (revision 18a617da943368e8294aa31528d2e2379d7318cc)
@@ -2,7 +2,6 @@
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Drawing;
-using System.Linq;
using System.Windows.Forms;
using Core.Common.Base;
using Core.Components.Charting;
@@ -138,35 +137,5 @@
}
#endregion
-
- #region IObservable
-
- public void Attach(IObserver observer)
- {
- observers.Add(observer);
- }
-
- public void Detach(IObserver observer)
- {
- observers.Remove(observer);
- }
-
- public void NotifyObservers()
- {
- // Iterate through a copy of the list of observers; an update of one observer might result in detaching
- // another observer (which will result in a "list modified" exception over here otherwise)
- foreach (var observer in observers.ToArray())
- {
- // Ensure the observer is still part of the original list of observers
- if (!observers.Contains(observer))
- {
- continue;
- }
-
- observer.UpdateObserver();
- }
- }
-
- #endregion
}
}
\ No newline at end of file
Index: Core/Components/test/Core.Components.OxyPlot.Forms.Test/BaseChartTest.cs
===================================================================
diff -u -r74cd1965818ae9b23da6cad8776b7da2868be4a7 -r18a617da943368e8294aa31528d2e2379d7318cc
--- Core/Components/test/Core.Components.OxyPlot.Forms.Test/BaseChartTest.cs (.../BaseChartTest.cs) (revision 74cd1965818ae9b23da6cad8776b7da2868be4a7)
+++ Core/Components/test/Core.Components.OxyPlot.Forms.Test/BaseChartTest.cs (.../BaseChartTest.cs) (revision 18a617da943368e8294aa31528d2e2379d7318cc)
@@ -213,80 +213,5 @@
Assert.AreEqual(1, view.Model.Series.Count);
Assert.AreNotSame(series[0], view.Model.Series[0]);
}
-
- [Test]
- public void NotifyObservers_WithObserverAttached_ObserverIsNotified()
- {
- // Setup
- var mocks = new MockRepository();
- var observer = mocks.StrictMock();
- observer.Expect(o => o.UpdateObserver());
- mocks.ReplayAll();
-
- var observable = new BaseChart();
- observable.Attach(observer);
-
- // Call
- observable.NotifyObservers();
-
- // Assert
- mocks.VerifyAll();
- }
-
- [Test]
- public void NotifyObserver_AttachedObserverDetachedAgain_ObserverNoLongerNotified()
- {
- // Setup
- var mocks = new MockRepository();
- var observer = mocks.StrictMock();
- mocks.ReplayAll();
-
- var observable = new BaseChart();
- observable.Attach(observer);
- observable.Detach(observer);
-
- // Call
- observable.NotifyObservers();
-
- // Assert
- mocks.VerifyAll(); // Expect no calls on 'observer'
- }
-
- [Test]
- public void NotifyObservers_MultipleObserversDetachingOrAttachingOthers_NoUpdatesForAttachedAndDetachedObservers()
- {
- // Setup
- var mocks = new MockRepository();
- var testObservable = new BaseChart();
-
- var observer1 = mocks.Stub();
- var observer2 = mocks.Stub();
- var observer3 = mocks.Stub();
- var observer4 = mocks.Stub();
- var observer5 = mocks.Stub();
- var observer6 = mocks.Stub();
-
- testObservable.Attach(observer1);
- testObservable.Attach(observer2);
- testObservable.Attach(observer3);
- testObservable.Attach(observer4);
- testObservable.Attach(observer6);
-
- observer1.Expect(o => o.UpdateObserver());
- observer2.Expect(o => o.UpdateObserver()).Do((Action)(() => testObservable.Detach(observer3)));
- observer3.Expect(o => o.UpdateObserver()).Repeat.Never(); // A detached observer should no longer be updated
- observer4.Expect(o => o.UpdateObserver()).Do((Action)(() => testObservable.Attach(observer5)));
- observer5.Expect(o => o.UpdateObserver()).Repeat.Never(); // An attached observer should not be updated either
- observer6.Expect(o => o.UpdateObserver());
-
- mocks.ReplayAll();
-
- // Call
- testObservable.NotifyObservers();
-
- // Assert
- mocks.VerifyAll();
- }
-
}
}
\ No newline at end of file
Index: Core/Plugins/src/Core.Plugins.OxyPlot/ChartingRibbon.xaml.cs
===================================================================
diff -u -reb44708823d5479991162f63376ae85dd944e513 -r18a617da943368e8294aa31528d2e2379d7318cc
--- Core/Plugins/src/Core.Plugins.OxyPlot/ChartingRibbon.xaml.cs (.../ChartingRibbon.xaml.cs) (revision eb44708823d5479991162f63376ae85dd944e513)
+++ Core/Plugins/src/Core.Plugins.OxyPlot/ChartingRibbon.xaml.cs (.../ChartingRibbon.xaml.cs) (revision 18a617da943368e8294aa31528d2e2379d7318cc)
@@ -1,6 +1,5 @@
using System.Collections.Generic;
using System.Windows;
-using Core.Common.Base;
using Core.Common.Controls.Commands;
using Core.Common.Gui.Forms;
using Core.Components.Charting;
@@ -11,7 +10,7 @@
///
/// This class represents the ribbon interaction which has to do with charting.
///
- public partial class ChartingRibbon : IRibbonCommandHandler, IObserver
+ public partial class ChartingRibbon : IRibbonCommandHandler
{
private IChart chart;
@@ -31,7 +30,7 @@
}
set
{
- SetChart(value);
+ chart = value;
if (chart != null)
{
@@ -44,19 +43,6 @@
}
}
- private void SetChart(IChart value)
- {
- if (chart != null)
- {
- chart.Detach(this);
- }
- chart = value;
- if (chart != null)
- {
- chart.Attach(this);
- }
- }
-
///
/// Sets the command used when the open chart button is clicked.
///
@@ -133,23 +119,18 @@
private void ButtonTogglePanning_Click(object sender, RoutedEventArgs e)
{
Chart.TogglePanning();
- Chart.NotifyObservers();
+ ValidateItems();
}
private void ButtonToggleRectangleZooming_Click(object sender, RoutedEventArgs e)
{
Chart.ToggleRectangleZooming();
- Chart.NotifyObservers();
+ ValidateItems();
}
private void ButtonZoomToAll_Click(object sender, RoutedEventArgs e)
{
Chart.ZoomToAll();
}
-
- public void UpdateObserver()
- {
- ValidateItems();
- }
}
}
\ No newline at end of file
Index: Core/Plugins/src/Core.Plugins.OxyPlot/Legend/ChartNodePresenter.cs
===================================================================
diff -u -r74cd1965818ae9b23da6cad8776b7da2868be4a7 -r18a617da943368e8294aa31528d2e2379d7318cc
--- Core/Plugins/src/Core.Plugins.OxyPlot/Legend/ChartNodePresenter.cs (.../ChartNodePresenter.cs) (revision 74cd1965818ae9b23da6cad8776b7da2868be4a7)
+++ Core/Plugins/src/Core.Plugins.OxyPlot/Legend/ChartNodePresenter.cs (.../ChartNodePresenter.cs) (revision 18a617da943368e8294aa31528d2e2379d7318cc)
@@ -28,7 +28,7 @@
public override void OnDragDrop(object item, object itemParent, ChartDataCollection target, DragOperations operation, int position)
{
- var draggedData = item as ChartData;
+ var draggedData = (ChartData)item;
target.List.Remove(draggedData);
target.List.Insert(target.List.Count - position, draggedData);
target.NotifyObservers();
Index: Core/Plugins/test/Core.Plugins.OxyPlot.Test/ChartingRibbonTest.cs
===================================================================
diff -u -reb44708823d5479991162f63376ae85dd944e513 -r18a617da943368e8294aa31528d2e2379d7318cc
--- Core/Plugins/test/Core.Plugins.OxyPlot.Test/ChartingRibbonTest.cs (.../ChartingRibbonTest.cs) (revision eb44708823d5479991162f63376ae85dd944e513)
+++ Core/Plugins/test/Core.Plugins.OxyPlot.Test/ChartingRibbonTest.cs (.../ChartingRibbonTest.cs) (revision 18a617da943368e8294aa31528d2e2379d7318cc)
@@ -134,7 +134,6 @@
var mocks = new MockRepository();
var chart = mocks.StrictMock();
- chart.Expect(c => c.Attach(ribbon));
chart.Expect(c => c.IsPanningEnabled).Return(true);
chart.Expect(c => c.IsRectangleZoomingEnabled).Return(true);
chart.Expect(c => c.ZoomToAll());
@@ -168,7 +167,6 @@
chart.Expect(c => c.IsPanningEnabled).Return(buttonChecked);
chart.Expect(c => c.IsRectangleZoomingEnabled).Return(buttonChecked);
- chart.Expect(c => c.Attach(ribbon));
mocks.ReplayAll();
@@ -260,7 +258,6 @@
chart.Expect(c => c.IsPanningEnabled).Return(buttonChecked).Repeat.Twice();
chart.Expect(c => c.IsRectangleZoomingEnabled).Return(buttonChecked).Repeat.Twice(); ;
- chart.Expect(c => c.Attach(ribbon));
mocks.ReplayAll();