Index: /trunk/sources/HeuristicLab.4.1.resharper.user
===================================================================
--- /trunk/sources/HeuristicLab.4.1.resharper.user	(revision 1818)
+++ /trunk/sources/HeuristicLab.4.1.resharper.user	(revision 1818)
@@ -0,0 +1,397 @@
+<Configuration>
+  <SettingsComponent>
+    <string />
+    <integer>
+      <setting name="UsedSolutionBuilderID">0</setting>
+    </integer>
+    <boolean>
+      <setting name="livetemplates.csharp.usevar">False</setting>
+      <setting name="SolutionAnalysisEnabled">False</setting>
+    </boolean>
+  </SettingsComponent>
+  <NAntValidationSettings>
+    <NAntPath value="" />
+  </NAntValidationSettings>
+  <RecentFiles>
+    <RecentFiles>
+      <File id="F473D9AF-3F09-4296-9F28-3C65118DAFFA/f:DoubleArrayData.cs" caret="2031" scrollPosition="0|18" />
+      <File id="F43B59AB-2B8C-4570-BC1E-15592086517C/f:PersistenceManager.cs" caret="4606" scrollPosition="0|59" />
+      <File id="23117533-8A91-474E-BBF6-C39485D0810A/f:HeuristicLabVisualizationTestApplication.cs" caret="0" scrollPosition="0|0" />
+      <File id="23117533-8A91-474E-BBF6-C39485D0810A/f:LegendForm.cs" caret="678" scrollPosition="0|0" />
+      <File id="23117533-8A91-474E-BBF6-C39485D0810A/f:LegendForm.Designer.cs" caret="0" scrollPosition="0|0" />
+      <File id="E392A1E2-DC95-4E33-B82E-8ED690EDA1AB/f:TextShape.cs" caret="0" scrollPosition="0|0" />
+      <File id="623FB817-8371-4A9A-A491-4DECC87B2BBB/f:Program.cs" caret="1145" scrollPosition="0|13" />
+      <File id="4D5A2A16-66C2-431D-9AA3-BD3041E64B84/f:IJobAdapter.cs" caret="1099" scrollPosition="0|0" />
+      <File id="E392A1E2-DC95-4E33-B82E-8ED690EDA1AB/f:ChartDataRowsModelDataCollector.cs" caret="3746" scrollPosition="0|38" />
+      <File id="F43B59AB-2B8C-4570-BC1E-15592086517C/f:Scope.cs" caret="6557" scrollPosition="0|147" />
+      <File id="F43B59AB-2B8C-4570-BC1E-15592086517C/f:OperatorBase.cs" caret="20232" scrollPosition="0|127" />
+      <File id="B4BE8E53-BA06-4237-9A01-24255F880201/f:SequentialEngine.cs" caret="3896" scrollPosition="0|56" />
+      <File id="F43B59AB-2B8C-4570-BC1E-15592086517C/f:EngineBase.cs" caret="6979" scrollPosition="0|194" />
+      <File id="23117533-8A91-474E-BBF6-C39485D0810A/f:LineChartTestForm.cs" caret="461" scrollPosition="0|0" />
+      <File id="623FB817-8371-4A9A-A491-4DECC87B2BBB/f:CopyAssemblies.cmd" caret="6738" scrollPosition="0|0" />
+      <File id="623FB817-8371-4A9A-A491-4DECC87B2BBB/f:UpdateLocalInstallation.cmd" caret="0" scrollPosition="0|0" />
+      <File id="E392A1E2-DC95-4E33-B82E-8ED690EDA1AB/f:YAxisDescriptor.cs" caret="2959" scrollPosition="0|0" />
+      <File id="E392A1E2-DC95-4E33-B82E-8ED690EDA1AB/f:ChartDataRowsModel.cs" caret="4155" scrollPosition="0|0" />
+      <File id="E392A1E2-DC95-4E33-B82E-8ED690EDA1AB/d:Options/f:ViewSettings.cs" caret="419" scrollPosition="0|2" />
+      <File id="E392A1E2-DC95-4E33-B82E-8ED690EDA1AB/d:Legend/f:LegendShape.cs" caret="136" scrollPosition="0|0" />
+      <File id="E392A1E2-DC95-4E33-B82E-8ED690EDA1AB/f:DataRow.cs" caret="4004" scrollPosition="0|0" />
+      <File id="E392A1E2-DC95-4E33-B82E-8ED690EDA1AB/f:MaxAggregator.cs" caret="3250" scrollPosition="0|0" />
+      <File id="E392A1E2-DC95-4E33-B82E-8ED690EDA1AB/f:IDataRow.cs" caret="0" scrollPosition="0|12" />
+      <File id="E392A1E2-DC95-4E33-B82E-8ED690EDA1AB/f:MinAggregator.cs" caret="0" scrollPosition="0|0" />
+      <File id="E392A1E2-DC95-4E33-B82E-8ED690EDA1AB/f:LineChart.cs" caret="1897" scrollPosition="0|0" />
+      <File id="E392A1E2-DC95-4E33-B82E-8ED690EDA1AB/f:AvgAggregator.cs" caret="0" scrollPosition="0|0" />
+      <File id="E392A1E2-DC95-4E33-B82E-8ED690EDA1AB/f:DataRowBase.cs" caret="2933" scrollPosition="0|0" />
+      <File id="E392A1E2-DC95-4E33-B82E-8ED690EDA1AB/f:AvgLineAggregator.cs" caret="1881" scrollPosition="0|58" />
+      <File id="E392A1E2-DC95-4E33-B82E-8ED690EDA1AB/f:FloatingAvgAggregator.cs" caret="2378" scrollPosition="0|59" />
+      <File id="23117533-8A91-474E-BBF6-C39485D0810A/f:LineChartTests.cs" caret="14597" scrollPosition="0|222" />
+    </RecentFiles>
+    <RecentEdits>
+      <File id="E392A1E2-DC95-4E33-B82E-8ED690EDA1AB/f:AvgLineAggregator.cs" caret="3225" scrollPosition="0|100" />
+      <File id="E392A1E2-DC95-4E33-B82E-8ED690EDA1AB/f:AvgLineAggregator.cs" caret="2341" scrollPosition="0|67" />
+      <File id="E392A1E2-DC95-4E33-B82E-8ED690EDA1AB/f:AvgLineAggregator.cs" caret="1682" scrollPosition="0|45" />
+      <File id="E392A1E2-DC95-4E33-B82E-8ED690EDA1AB/f:AvgAggregator.cs" caret="745" scrollPosition="0|12" />
+      <File id="E392A1E2-DC95-4E33-B82E-8ED690EDA1AB/f:DataRow.cs" caret="4508" scrollPosition="0|133" />
+      <File id="E392A1E2-DC95-4E33-B82E-8ED690EDA1AB/f:DataRowBase.cs" caret="2520" scrollPosition="0|93" />
+      <File id="E392A1E2-DC95-4E33-B82E-8ED690EDA1AB/f:MaxAggregator.cs" caret="3250" scrollPosition="0|0" />
+      <File id="E392A1E2-DC95-4E33-B82E-8ED690EDA1AB/f:AvgAggregator.cs" caret="3572" scrollPosition="0|116" />
+      <File id="E392A1E2-DC95-4E33-B82E-8ED690EDA1AB/f:AvgLineAggregator.cs" caret="1921" scrollPosition="0|159" />
+      <File id="23117533-8A91-474E-BBF6-C39485D0810A/f:LineChartTests.cs" caret="3328" scrollPosition="0|117" />
+      <File id="E392A1E2-DC95-4E33-B82E-8ED690EDA1AB/f:AvgLineAggregator.cs" caret="4158" scrollPosition="0|136" />
+      <File id="E392A1E2-DC95-4E33-B82E-8ED690EDA1AB/f:FloatingAvgAggregator.cs" caret="4097" scrollPosition="0|146" />
+      <File id="E392A1E2-DC95-4E33-B82E-8ED690EDA1AB/f:FloatingAvgAggregator.cs" caret="128" scrollPosition="0|0" />
+      <File id="E392A1E2-DC95-4E33-B82E-8ED690EDA1AB/f:FloatingAvgAggregator.cs" caret="50" scrollPosition="0|0" />
+      <File id="E392A1E2-DC95-4E33-B82E-8ED690EDA1AB/f:FloatingAvgAggregator.cs" caret="1076" scrollPosition="0|21" />
+      <File id="E392A1E2-DC95-4E33-B82E-8ED690EDA1AB/f:AvgLineAggregator.cs" caret="1462" scrollPosition="0|34" />
+      <File id="E392A1E2-DC95-4E33-B82E-8ED690EDA1AB/f:FloatingAvgAggregator.cs" caret="2580" scrollPosition="0|87" />
+      <File id="E392A1E2-DC95-4E33-B82E-8ED690EDA1AB/f:FloatingAvgAggregator.cs" caret="2724" scrollPosition="0|100" />
+      <File id="E392A1E2-DC95-4E33-B82E-8ED690EDA1AB/f:FloatingAvgAggregator.cs" caret="2239" scrollPosition="0|58" />
+      <File id="E392A1E2-DC95-4E33-B82E-8ED690EDA1AB/f:FloatingAvgAggregator.cs" caret="1581" scrollPosition="0|52" />
+      <File id="E392A1E2-DC95-4E33-B82E-8ED690EDA1AB/f:FloatingAvgAggregator.cs" caret="1464" scrollPosition="0|33" />
+      <File id="E392A1E2-DC95-4E33-B82E-8ED690EDA1AB/f:FloatingAvgAggregator.cs" caret="2580" scrollPosition="0|71" />
+      <File id="23117533-8A91-474E-BBF6-C39485D0810A/f:LineChartTests.cs" caret="12286" scrollPosition="0|166" />
+      <File id="23117533-8A91-474E-BBF6-C39485D0810A/f:LineChartTests.cs" caret="11413" scrollPosition="0|166" />
+      <File id="23117533-8A91-474E-BBF6-C39485D0810A/f:LineChartTests.cs" caret="12395" scrollPosition="0|166" />
+      <File id="E392A1E2-DC95-4E33-B82E-8ED690EDA1AB/f:FloatingAvgAggregator.cs" caret="1966" scrollPosition="0|47" />
+      <File id="E392A1E2-DC95-4E33-B82E-8ED690EDA1AB/f:FloatingAvgAggregator.cs" caret="1775" scrollPosition="0|45" />
+      <File id="E392A1E2-DC95-4E33-B82E-8ED690EDA1AB/f:FloatingAvgAggregator.cs" caret="2378" scrollPosition="0|59" />
+      <File id="23117533-8A91-474E-BBF6-C39485D0810A/f:LineChartTests.cs" caret="12097" scrollPosition="0|156" />
+      <File id="23117533-8A91-474E-BBF6-C39485D0810A/f:LineChartTests.cs" caret="12566" scrollPosition="0|188" />
+    </RecentEdits>
+  </RecentFiles>
+  <UnitTestRunner>
+    <CustomStartDirectory>
+    </CustomStartDirectory>
+    <UseShadowCopy>True</UseShadowCopy>
+    <UseCustomFolder>False</UseCustomFolder>
+    <EnableUnitTesting>True</EnableUnitTesting>
+    <Providers />
+  </UnitTestRunner>
+  <CompletionStatisticsManager>
+    <ItemStatistics item="Default">
+      <Item value="public" priority="4" />
+      <Item value="int" priority="16" />
+      <Item value="double" priority="23" />
+      <Item value="void" priority="5" />
+      <Item value="dataRows" priority="1" />
+      <Item value="List" priority="2" />
+      <Item value="new" priority="26" />
+      <Item value="List&lt;List&lt;double&gt;&gt;" priority="0" />
+      <Item value="private" priority="5" />
+      <Item value="using" priority="4" />
+      <Item value="System" priority="3" />
+      <Item value="Collections" priority="1" />
+      <Item value="Specialized" priority="0" />
+      <Item value="ListDictionary" priority="3" />
+      <Item value="this" priority="11" />
+      <Item value="dataRowsList" priority="1" />
+      <Item value="id" priority="2" />
+      <Item value="dataRowId" priority="5" />
+      <Item value="value" priority="6" />
+      <Item value="return" priority="1" />
+      <Item value="Serializable" priority="0" />
+      <Item value="Formatters" priority="0" />
+      <Item value="ChartDataRowsModel" priority="0" />
+      <Item value="String" priority="0" />
+      <Item value="string" priority="1" />
+      <Item value="TextWriter" priority="1" />
+      <Item value="serializer" priority="0" />
+      <Item value="null" priority="1" />
+      <Item value="Console" priority="2" />
+      <Item value="IntData" priority="1" />
+      <Item value="test" priority="0" />
+      <Item value="column" priority="3" />
+      <Item value="columns" priority="4" />
+      <Item value="ChartDataRowsModelColumn" priority="1" />
+      <Item value="AddDataRow" priority="4" />
+      <Item value="Length" priority="6" />
+      <Item value="node" priority="1" />
+      <Item value="XmlNode" priority="1" />
+      <Item value="child" priority="0" />
+      <Item value="base" priority="0" />
+      <Item value="LineChart" priority="0" />
+      <Item value="First" priority="0" />
+      <Item value="for" priority="8" />
+      <Item value="i" priority="28" />
+      <Item value="vals" priority="4" />
+      <Item value="ChangeType" priority="1" />
+      <Item value="rowId" priority="0" />
+      <Item value="else" priority="4" />
+      <Item value="Generic" priority="0" />
+      <Item value="labes" priority="3" />
+      <Item value="index" priority="10" />
+      <Item value="label" priority="1" />
+      <Item value="foreach" priority="9" />
+      <Item value="AddLabel" priority="1" />
+      <Item value="s" priority="2" />
+      <Item value="labels" priority="0" />
+      <Item value="ModifyLabel" priority="0" />
+      <Item value="count" priority="12" />
+      <Item value="RemoveLabel" priority="0" />
+      <Item value="DataRow" priority="11" />
+      <Item value="row1" priority="10" />
+      <Item value="row2" priority="5" />
+      <Item value="rand" priority="0" />
+      <Item value="row" priority="7" />
+      <Item value="Data" priority="0" />
+      <Item value="row3" priority="0" />
+      <Item value="Color" priority="3" />
+      <Item value="rowLabel" priority="0" />
+      <Item value="throw" priority="1" />
+      <Item value="NotImplementedException" priority="0" />
+      <Item value="NUnit.Framework" priority="0" />
+      <Item value="Test" priority="0" />
+      <Item value="builder" priority="4" />
+      <Item value="StringBuilder" priority="0" />
+      <Item value="columnElement" priority="0" />
+      <Item value="DataRowStyle" priority="0" />
+      <Item value="DataRowType" priority="4" />
+      <Item value="lineType" priority="0" />
+      <Item value="OnDataRowChanged" priority="2" />
+      <Item value="IAggregator" priority="1" />
+      <Item value="MinAggregator" priority="1" />
+      <Item value="aggregator" priority="10" />
+      <Item value="model" priority="11" />
+      <Item value="DrawingStyle" priority="3" />
+      <Item value="OnValueChanged" priority="1" />
+      <Item value="Action" priority="4" />
+      <Item value="IDataRow" priority="1" />
+      <Item value="lineTest" priority="4" />
+      <Item value="dataRowWatches" priority="15" />
+      <Item value="dataRow" priority="18" />
+      <Item value="dataRow_ValueChanged" priority="2" />
+      <Item value="rows" priority="5" />
+      <Item value="if" priority="10" />
+      <Item value="curMinValue" priority="2" />
+      <Item value="List&lt;IDataRow&gt;" priority="0" />
+      <Item value="values" priority="1" />
+      <Item value="dataRow_DataRowChanged" priority="0" />
+      <Item value="dataRow_ValuesChanged" priority="0" />
+      <Item value="f" priority="0" />
+      <Item value="while" priority="0" />
+      <Item value="thread" priority="0" />
+      <Item value="static" priority="0" />
+      <Item value="newThread" priority="0" />
+      <Item value="Worker" priority="0" />
+      <Item value="Random" priority="3" />
+      <Item value="tmpSum" priority="4" />
+      <Item value="curAvgValue" priority="3" />
+      <Item value="newY" priority="0" />
+      <Item value="Math" priority="1" />
+      <Item value="multiLineAvgAggregator" priority="0" />
+      <Item value="firstRow" priority="0" />
+      <Item value="count1" priority="0" />
+      <Item value="UpdateMinMaxValue" priority="0" />
+      <Item value="AvgLineAggregator" priority="0" />
+      <Item value="switch" priority="2" />
+      <Item value="curAvg" priority="2" />
+      <Item value="InvalidOperationException" priority="0" />
+      <Item value="newVal" priority="1" />
+      <Item value="bool" priority="0" />
+      <Item value="false" priority="13" />
+      <Item value="first" priority="0" />
+      <Item value="ShowMarkers" priority="8" />
+      <Item value="watch" priority="4" />
+      <Item value="LineType" priority="0" />
+      <Item value="hack" priority="0" />
+      <Item value="rnd" priority="0" />
+      <Item value="Legend" priority="0" />
+      <Item value="LegendPosition" priority="0" />
+      <Item value="watchedRow" priority="1" />
+      <Item value="ValuesChanged" priority="0" />
+      <Item value="area" priority="1" />
+      <Item value="avgVal" priority="2" />
+      <Item value="FloatingAvgAggregator" priority="1" />
+      <Item value="avgAggregator" priority="5" />
+      <Item value="Style" priority="0" />
+      <Item value="OnValuesChanged" priority="1" />
+    </ItemStatistics>
+    <ItemStatistics item="Qualified:System.Collections.Generic.List`1">
+      <Item value="Add" priority="5" />
+      <Item value="[]" priority="0" />
+      <Item value="RemoveAt" priority="0" />
+      <Item value="Remove" priority="0" />
+      <Item value="Count" priority="11" />
+      <Item value="Clear" priority="0" />
+      <Item value="ToArray" priority="0" />
+    </ItemStatistics>
+    <ItemStatistics item="Qualified:HeuristicLab.Visualization.ChartDataRowsModel">
+      <Item value="dataRowsList" priority="0" />
+      <Item value="AddDataRow" priority="4" />
+      <Item value="Columns" priority="0" />
+      <Item value="Rows" priority="0" />
+      <Item value="Title" priority="1" />
+      <Item value="ViewSettings" priority="1" />
+    </ItemStatistics>
+    <ItemStatistics item="Qualified:System.Collections.Specialized.ListDictionary">
+      <Item value="Add" priority="0" />
+      <Item value="[]" priority="0" />
+    </ItemStatistics>
+    <ItemStatistics item="Qualified:System.Xml.Serialization.XmlSerializer">
+      <Item value="Serialize" priority="0" />
+    </ItemStatistics>
+    <ItemStatistics item="Qualified:@System.Console">
+      <Item value="WriteLine" priority="1" />
+    </ItemStatistics>
+    <ItemStatistics item="Qualified:HeuristicLab.Data.IntData">
+      <Item value="Data" priority="1" />
+    </ItemStatistics>
+    <ItemStatistics item="Qualified:HeuristicLab.Visualization.ChartDataRowsModelColumn">
+      <Item value="Values" priority="10" />
+      <Item value="ColumnId" priority="0" />
+    </ItemStatistics>
+    <ItemStatistics item="Qualified:System.Xml.XmlNode">
+      <Item value="AppendChild" priority="0" />
+      <Item value="InnerText" priority="1" />
+      <Item value="ChildNodes" priority="0" />
+    </ItemStatistics>
+    <ItemStatistics item="Qualified:System.Int32">
+      <Item value="ToString" priority="0" />
+    </ItemStatistics>
+    <ItemStatistics item="Qualified:System.Double">
+      <Item value="ToString" priority="1" />
+    </ItemStatistics>
+    <ItemStatistics item="Qualified:HeuristicLab.Visualization.ChartDataRowsModelDummy">
+      <Item value="PushData" priority="0" />
+      <Item value="AddDataRow" priority="0" />
+    </ItemStatistics>
+    <ItemStatistics item="Qualified:@HeuristicLab.Visualization.ChangeType">
+      <Item value="Add" priority="0" />
+    </ItemStatistics>
+    <ItemStatistics item="Qualified:System.Xml.XmlAttribute">
+      <Item value="Value" priority="0" />
+    </ItemStatistics>
+    <ItemStatistics item="Qualified:@System.Int32">
+      <Item value="Parse" priority="0" />
+    </ItemStatistics>
+    <ItemStatistics item="Qualified:HeuristicLab.Visualization.DataRow">
+      <Item value="AddValue" priority="0" />
+      <Item value="AddValues" priority="1" />
+      <Item value="ModifyValue" priority="0" />
+      <Item value="Label" priority="1" />
+      <Item value="Color" priority="1" />
+      <Item value="Style" priority="0" />
+      <Item value="lineType" priority="0" />
+    </ItemStatistics>
+    <ItemStatistics item="Qualified:System.Random">
+      <Item value="NextDouble" priority="1" />
+    </ItemStatistics>
+    <ItemStatistics item="Qualified:HeuristicLab.Visualization.IDataRow">
+      <Item value="Label" priority="1" />
+      <Item value="Color" priority="1" />
+      <Item value="Count" priority="12" />
+      <Item value="[]" priority="3" />
+      <Item value="Thickness" priority="0" />
+      <Item value="Style" priority="0" />
+      <Item value="AddValues" priority="0" />
+      <Item value="LineType" priority="0" />
+      <Item value="ValuesChanged" priority="1" />
+      <Item value="DataRowChanged" priority="1" />
+      <Item value="ValueChanged" priority="0" />
+      <Item value="AddValue" priority="0" />
+      <Item value="ShowMarkers" priority="2" />
+    </ItemStatistics>
+    <ItemStatistics item="Qualified:@System.Drawing.Color">
+      <Item value="Red" priority="0" />
+      <Item value="BlueViolet" priority="0" />
+      <Item value="FloralWhite" priority="0" />
+      <Item value="DeepPink" priority="0" />
+      <Item value="Pink" priority="0" />
+      <Item value="DarkSalmon" priority="0" />
+      <Item value="DeepSkyBlue" priority="0" />
+      <Item value="Violet" priority="0" />
+      <Item value="DarkOliveGreen" priority="0" />
+      <Item value="DarkKhaki" priority="0" />
+      <Item value="DarkRed" priority="0" />
+      <Item value="Peru" priority="0" />
+      <Item value="Aqua" priority="0" />
+    </ItemStatistics>
+    <ItemStatistics item="Qualified:System.Text.StringBuilder">
+      <Item value="Append" priority="1" />
+      <Item value="ToString" priority="0" />
+    </ItemStatistics>
+    <ItemStatistics item="Qualified:@HeuristicLab.Visualization.DataRowType">
+      <Item value="Normal" priority="2" />
+      <Item value="SingleValue" priority="2" />
+    </ItemStatistics>
+    <ItemStatistics item="Qualified:HeuristicLab.Visualization.IAggregator">
+      <Item value="AddWatch" priority="3" />
+      <Item value="AddValue" priority="0" />
+    </ItemStatistics>
+    <ItemStatistics item="Qualified:HeuristicLab.Visualization.MinAggregator">
+      <Item value="Label" priority="0" />
+      <Item value="Color" priority="0" />
+      <Item value="Thickness" priority="0" />
+      <Item value="Style" priority="1" />
+      <Item value="AddValue" priority="0" />
+      <Item value="LineType" priority="0" />
+      <Item value="AddWatch" priority="0" />
+    </ItemStatistics>
+    <ItemStatistics item="Qualified:@HeuristicLab.Visualization.DrawingStyle">
+      <Item value="Solid" priority="1" />
+      <Item value="Dashed" priority="0" />
+    </ItemStatistics>
+    <ItemStatistics item="Qualified:@HeuristicLab.Visualization.Action">
+      <Item value="Added" priority="1" />
+      <Item value="Modified" priority="2" />
+    </ItemStatistics>
+    <ItemStatistics item="Qualified:@System.Double">
+      <Item value="MaxValue" priority="1" />
+      <Item value="MinValue" priority="1" />
+    </ItemStatistics>
+    <ItemStatistics item="Qualified:HeuristicLab.Visualization.Test.LineChartTestForm">
+      <Item value="Show" priority="0" />
+    </ItemStatistics>
+    <ItemStatistics item="Qualified:System.Threading.Thread">
+      <Item value="Start" priority="1" />
+    </ItemStatistics>
+    <ItemStatistics item="Qualified:HeuristicLab.Visualization.Test.LineChartTests+Worker">
+      <Item value="model" priority="0" />
+    </ItemStatistics>
+    <ItemStatistics item="Qualified:@System.Math">
+      <Item value="Sin" priority="0" />
+      <Item value="Max" priority="0" />
+      <Item value="Min" priority="0" />
+    </ItemStatistics>
+    <ItemStatistics item="Qualified:HeuristicLab.Visualization.AvgLineAggregator">
+      <Item value="dataRow" priority="0" />
+    </ItemStatistics>
+    <ItemStatistics item="Qualified:HeuristicLab.Visualization.AvgAggregator">
+      <Item value="curAvgValue" priority="0" />
+    </ItemStatistics>
+    <ItemStatistics item="Qualified:HeuristicLab.Visualization.IChartDataRowsModel">
+      <Item value="Title" priority="0" />
+    </ItemStatistics>
+    <ItemStatistics item="Qualified:HeuristicLab.Visualization.Options.ViewSettings">
+      <Item value="LegendPosition" priority="0" />
+    </ItemStatistics>
+    <ItemStatistics item="Qualified:@HeuristicLab.Visualization.Legend.LegendPosition">
+      <Item value="Top" priority="0" />
+    </ItemStatistics>
+    <ItemStatistics item="Qualified:HeuristicLab.Visualization.FloatingAvgAggregator">
+      <Item value="AddWatch" priority="0" />
+      <Item value="Label" priority="0" />
+      <Item value="Thickness" priority="0" />
+      <Item value="Color" priority="0" />
+    </ItemStatistics>
+  </CompletionStatisticsManager>
+</Configuration>
Index: /trunk/sources/HeuristicLab.Visualization.Test/3.2/LineChartTests.cs
===================================================================
--- /trunk/sources/HeuristicLab.Visualization.Test/3.2/LineChartTests.cs	(revision 1817)
+++ /trunk/sources/HeuristicLab.Visualization.Test/3.2/LineChartTests.cs	(revision 1818)
@@ -371,12 +371,31 @@
         model.AddDataRow(row2);
 
-        // insert 2 floating avg line aggregators (for each hacked line)
-
-        // test floating avg aggregator without visible watcher line
-
+        FloatingAvgAggregator avgAggregator = new FloatingAvgAggregator {
+                                                                          Thickness = 2,
+                                                                          Label = "floatingAvg",
+                                                                          Color = Color.Peru,
+                                                                          ShowMarkers = false,
+                                                                          Style = DrawingStyle.Solid
+                                                                        };
+
+        avgAggregator.AddWatch(row1);
+        model.AddDataRow(avgAggregator);
+
+        FloatingAvgAggregator avgAggregator2 = new FloatingAvgAggregator {
+          Thickness = 2,
+          Label = "floatingAvg",
+          Color = Color.Aqua,
+          ShowMarkers = false,
+          Style = DrawingStyle.Solid
+        };
+
+        avgAggregator2.AddWatch(row2);
+        model.AddDataRow(avgAggregator2);
+
+       
         double i = 0;
         Random rnd = new Random();
 
-        while (!_shouldStop && i <= 240) {
+        while (!_shouldStop && i <= 100) {
           i += 0.2;
           double newY = Math.Sin(i);
Index: /trunk/sources/HeuristicLab.Visualization/3.2/AvgLineAggregator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Visualization/3.2/AvgLineAggregator.cs	(revision 1817)
+++ /trunk/sources/HeuristicLab.Visualization/3.2/AvgLineAggregator.cs	(revision 1818)
@@ -43,7 +43,8 @@
 
     void dataRow_ValuesChanged(IDataRow row, double[] values, int index, Action action) {
-      for (int i = 0; i < values.Length; i++) {
-        refreshValue();
-      }
+//      for (int i = 0; i < values.Length; i++) {
+//        refreshValue();
+//      }
+      refreshValue();
     }
 
Index: /trunk/sources/HeuristicLab.Visualization/3.2/FloatingAvgAggregator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Visualization/3.2/FloatingAvgAggregator.cs	(revision 1818)
+++ /trunk/sources/HeuristicLab.Visualization/3.2/FloatingAvgAggregator.cs	(revision 1818)
@@ -0,0 +1,147 @@
+﻿using System;
+using System.Collections.Generic;
+
+namespace HeuristicLab.Visualization {
+  public class FloatingAvgAggregator : DataRowBase {
+
+    private readonly List<double> dataRow = new List<double>();
+    readonly List<IDataRow> dataRowWatches = new List<IDataRow>();
+
+    #region IAggregator Members
+
+    public void AddWatch(IDataRow watchDataRow) {
+      dataRowWatches.Add(watchDataRow);
+      watchDataRow.ValueChanged += dataRow_ValueChanged;
+      watchDataRow.ValuesChanged += dataRow_ValuesChanged;
+      watchDataRow.DataRowChanged += dataRow_DataRowChanged;
+    }
+
+    public void RemoveWatch(IDataRow watchDataRow) {
+      dataRowWatches.Remove(watchDataRow);
+      watchDataRow.DataRowChanged -= dataRow_DataRowChanged;
+      watchDataRow.ValuesChanged -= dataRow_ValuesChanged;
+      watchDataRow.ValueChanged -= dataRow_ValueChanged;
+    }
+
+    #endregion
+
+    void dataRow_ValueChanged(IDataRow row, double value, int index, Action action) {
+      switch (action) {
+        case Action.Added:
+          refreshLastValues(row);
+          break;
+        case Action.Modified:
+          refreshValue();
+          break;
+        case Action.Deleted:
+          refreshLastValues(row);
+          break;
+        default:
+          throw new ArgumentOutOfRangeException("action");
+      }
+    }
+
+    void dataRow_ValuesChanged(IDataRow row, double[] values, int index, Action action) {
+      refreshValue();
+    }
+
+    void dataRow_DataRowChanged(IDataRow row) {
+      refreshValue();
+    }
+
+    private int area = 5;
+    private void refreshValue() {
+
+      if (dataRowWatches.Count >= 1) {
+        IDataRow watchedRow = dataRowWatches[0];
+        
+        dataRow.Clear();
+        OnDataRowChanged(this);
+
+        for (int i = 0; i < watchedRow.Count; i++) {
+
+          double avgVal = 0;
+          int count = 0;
+          for (int j = Math.Max(0, i-area); j < Math.Min(watchedRow.Count, i+area); j++) {
+            avgVal += watchedRow[j];
+            count++;
+          }
+
+          if (count >= 1)
+            avgVal /= count;
+
+          dataRow.Add(avgVal);
+
+          OnValueChanged(avgVal, dataRow.Count - 1, Action.Added);
+        }
+      }
+      //OnValueChanged(avgVal, dataRow.Count - 1, Action.Added);
+      OnValuesChanged(dataRow.ToArray(), 0, Action.Modified);
+      //OnDataRowChanged(this);                                     
+    }
+
+#pragma warning disable 168
+    private void refreshLastValues(IDataRow row) {
+#pragma warning restore 168
+      refreshValue();
+    }
+
+    #region IDataRow Members
+
+    public override void AddValue(double value) {
+      throw new NotSupportedException();
+//      dataRow.Add(value);
+//      OnValueChanged(value, dataRow.Count - 1, Action.Added);
+    }
+
+    public override void AddValue(double value, int index) {
+      throw new NotSupportedException();
+    }
+
+    public override void AddValues(double[] values) {
+      throw new NotSupportedException();
+    }
+
+    public override void AddValues(double[] values, int index) {
+      throw new NotSupportedException();
+    }
+
+    public override void ModifyValue(double value, int index) {
+      throw new NotSupportedException();
+    }
+
+    public override void ModifyValues(double[] values, int index) {
+      throw new NotSupportedException();
+    }
+
+    public override void RemoveValue(int index) {
+      throw new NotSupportedException();
+    }
+
+    public override void RemoveValues(int index, int countVals) {
+      throw new NotSupportedException();
+    }
+
+    public override int Count {
+      get { return dataRow.Count; } //return dataRowWatches.Count; }
+    }
+
+    public override double this[int index] {
+      get { return dataRow[index]; }
+      set {
+        dataRow[index] = value;
+        OnValueChanged(value, index, Action.Modified);
+      }
+    }
+
+    public override double MinValue {
+      get { return 0; }
+    }
+
+    public override double MaxValue {
+      get { return 0; }
+    }
+
+    #endregion
+  }
+}
Index: /trunk/sources/HeuristicLab.Visualization/3.2/HeuristicLab.Visualization-3.2.csproj
===================================================================
--- /trunk/sources/HeuristicLab.Visualization/3.2/HeuristicLab.Visualization-3.2.csproj	(revision 1817)
+++ /trunk/sources/HeuristicLab.Visualization/3.2/HeuristicLab.Visualization-3.2.csproj	(revision 1818)
@@ -112,4 +112,5 @@
     <Compile Include="DataExport\IExporter.cs" />
     <Compile Include="DataRowBase.cs" />
+    <Compile Include="FloatingAvgAggregator.cs" />
     <Compile Include="LabelProvider\ContinuousLabelProvider.cs" />
     <Compile Include="LabelProvider\DiscreteLabelProvider.cs" />
Index: /trunk/sources/HeuristicLab.vsmdi
===================================================================
--- /trunk/sources/HeuristicLab.vsmdi	(revision 1817)
+++ /trunk/sources/HeuristicLab.vsmdi	(revision 1818)
@@ -2,5 +2,5 @@
 <TestLists xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2006">
   <TestList name="Lists of Tests" id="8c43106b-9dc1-4907-a29f-aa66a61bf5b6">
-    <RunConfiguration id="88c9ce07-728c-47fb-abc1-2b402c2075ca" name="Local Test Run" storage="localtestrun.testrunconfig" type="Microsoft.VisualStudio.TestTools.Common.TestRunConfiguration, Microsoft.VisualStudio.QualityTools.Common,   PublicKeyToken=b03f5f7f11d50a3a" />
+    <RunConfiguration id="f9392825-866f-4434-be36-358db28f0c59" name="Local Test Run" storage="localtestrun.testrunconfig" type="Microsoft.VisualStudio.TestTools.Common.TestRunConfiguration, Microsoft.VisualStudio.QualityTools.Common,   PublicKeyToken=b03f5f7f11d50a3a" />
   </TestList>
 </TestLists>
Index: /trunk/sources/LocalTestRun.testrunconfig
===================================================================
--- /trunk/sources/LocalTestRun.testrunconfig	(revision 1817)
+++ /trunk/sources/LocalTestRun.testrunconfig	(revision 1818)
@@ -1,6 +1,5 @@
 ﻿<?xml version="1.0" encoding="UTF-8"?>
-<TestRunConfiguration name="Local Test Run" id="88c9ce07-728c-47fb-abc1-2b402c2075ca" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2006">
+<TestRunConfiguration name="Local Test Run" id="f9392825-866f-4434-be36-358db28f0c59" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2006">
   <Description>This is a default test run configuration for a local test run.</Description>
-  <Deployment enabled="false" />
   <TestTypeSpecific />
 </TestRunConfiguration>
