Index: trunk/sources/HeuristicLab.Optimization.Views/3.3/RunCollectionBubbleChartView.Designer.cs
===================================================================
--- trunk/sources/HeuristicLab.Optimization.Views/3.3/RunCollectionBubbleChartView.Designer.cs	(revision 5302)
+++ trunk/sources/HeuristicLab.Optimization.Views/3.3/RunCollectionBubbleChartView.Designer.cs	(revision 5330)
@@ -68,10 +68,12 @@
       this.tooltip = new System.Windows.Forms.ToolTip(this.components);
       this.colorXAxisButton = new System.Windows.Forms.Button();
+      this.colorYAxisButton = new System.Windows.Forms.Button();
       this.noRunsLabel = new System.Windows.Forms.Label();
-      this.colorYAxisButton = new System.Windows.Forms.Button();
+      this.sizeTrackBar = new System.Windows.Forms.TrackBar();
       ((System.ComponentModel.ISupportInitialize)(this.xTrackBar)).BeginInit();
       ((System.ComponentModel.ISupportInitialize)(this.yTrackBar)).BeginInit();
       ((System.ComponentModel.ISupportInitialize)(this.chart)).BeginInit();
       this.radioButtonGroup.SuspendLayout();
+      ((System.ComponentModel.ISupportInitialize)(this.sizeTrackBar)).BeginInit();
       this.SuspendLayout();
       // 
@@ -79,5 +81,5 @@
       // 
       this.yJitterLabel.AutoSize = true;
-      this.yJitterLabel.Location = new System.Drawing.Point(350, 6);
+      this.yJitterLabel.Location = new System.Drawing.Point(278, 6);
       this.yJitterLabel.Name = "yJitterLabel";
       this.yJitterLabel.Size = new System.Drawing.Size(32, 13);
@@ -89,5 +91,5 @@
       this.xJitterlabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
       this.xJitterlabel.AutoSize = true;
-      this.xJitterlabel.Location = new System.Drawing.Point(635, 316);
+      this.xJitterlabel.Location = new System.Drawing.Point(749, 472);
       this.xJitterlabel.Name = "xJitterlabel";
       this.xJitterlabel.Size = new System.Drawing.Size(32, 13);
@@ -99,5 +101,5 @@
       this.xTrackBar.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
       this.xTrackBar.Enabled = false;
-      this.xTrackBar.Location = new System.Drawing.Point(673, 313);
+      this.xTrackBar.Location = new System.Drawing.Point(787, 469);
       this.xTrackBar.Maximum = 100;
       this.xTrackBar.Name = "xTrackBar";
@@ -111,5 +113,5 @@
       this.xAxisLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
       this.xAxisLabel.AutoSize = true;
-      this.xAxisLabel.Location = new System.Drawing.Point(357, 316);
+      this.xAxisLabel.Location = new System.Drawing.Point(471, 472);
       this.xAxisLabel.Name = "xAxisLabel";
       this.xAxisLabel.Size = new System.Drawing.Size(15, 13);
@@ -123,9 +125,9 @@
       this.xAxisComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
       this.xAxisComboBox.FormattingEnabled = true;
-      this.xAxisComboBox.Location = new System.Drawing.Point(378, 313);
+      this.xAxisComboBox.Location = new System.Drawing.Point(492, 469);
       this.xAxisComboBox.Name = "xAxisComboBox";
       this.xAxisComboBox.Size = new System.Drawing.Size(221, 21);
       this.xAxisComboBox.TabIndex = 7;
-      this.xAxisComboBox.SelectedIndexChanged += new System.EventHandler(this.AxisComboBox_SelectedIndexChanged);
+      this.xAxisComboBox.SelectedValueChanged += new System.EventHandler(this.AxisComboBox_SelectedValueChanged);
       // 
       // yAxisLabel
@@ -147,10 +149,10 @@
       this.yAxisComboBox.Size = new System.Drawing.Size(221, 21);
       this.yAxisComboBox.TabIndex = 5;
-      this.yAxisComboBox.SelectedIndexChanged += new System.EventHandler(this.AxisComboBox_SelectedIndexChanged);
+      this.yAxisComboBox.SelectedValueChanged += new System.EventHandler(this.AxisComboBox_SelectedValueChanged);
       // 
       // yTrackBar
       // 
       this.yTrackBar.Enabled = false;
-      this.yTrackBar.Location = new System.Drawing.Point(388, 3);
+      this.yTrackBar.Location = new System.Drawing.Point(312, 3);
       this.yTrackBar.Maximum = 100;
       this.yTrackBar.Name = "yTrackBar";
@@ -166,9 +168,9 @@
       this.sizeComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
       this.sizeComboBox.FormattingEnabled = true;
-      this.sizeComboBox.Location = new System.Drawing.Point(514, 3);
+      this.sizeComboBox.Location = new System.Drawing.Point(560, 4);
       this.sizeComboBox.Name = "sizeComboBox";
       this.sizeComboBox.Size = new System.Drawing.Size(221, 21);
       this.sizeComboBox.TabIndex = 14;
-      this.sizeComboBox.SelectedIndexChanged += new System.EventHandler(this.AxisComboBox_SelectedIndexChanged);
+      this.sizeComboBox.SelectedValueChanged += new System.EventHandler(this.AxisComboBox_SelectedValueChanged);
       // 
       // sizeLabel
@@ -176,5 +178,5 @@
       this.sizeLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
       this.sizeLabel.AutoSize = true;
-      this.sizeLabel.Location = new System.Drawing.Point(444, 6);
+      this.sizeLabel.Location = new System.Drawing.Point(489, 7);
       this.sizeLabel.Name = "sizeLabel";
       this.sizeLabel.Size = new System.Drawing.Size(66, 13);
@@ -192,6 +194,5 @@
       this.chart.Name = "chart";
       series2.ChartArea = "ChartArea1";
-      series2.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Bubble;
-      series2.CustomProperties = "BubbleMinSize=2, BubbleMaxSize=7";
+      series2.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Point;
       series2.IsVisibleInLegend = false;
       series2.MarkerStyle = System.Windows.Forms.DataVisualization.Charting.MarkerStyle.Circle;
@@ -199,5 +200,5 @@
       series2.YValuesPerPoint = 2;
       this.chart.Series.Add(series2);
-      this.chart.Size = new System.Drawing.Size(729, 269);
+      this.chart.Size = new System.Drawing.Size(843, 425);
       this.chart.TabIndex = 16;
       this.chart.Text = "chart";
@@ -244,5 +245,5 @@
       this.radioButtonGroup.Controls.Add(this.zoomButton);
       this.radioButtonGroup.Controls.Add(this.selectButton);
-      this.radioButtonGroup.Location = new System.Drawing.Point(3, 305);
+      this.radioButtonGroup.Location = new System.Drawing.Point(3, 461);
       this.radioButtonGroup.Name = "radioButtonGroup";
       this.radioButtonGroup.Size = new System.Drawing.Size(135, 32);
@@ -255,5 +256,5 @@
       this.colorButton.Enabled = false;
       this.colorButton.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
-      this.colorButton.Location = new System.Drawing.Point(144, 313);
+      this.colorButton.Location = new System.Drawing.Point(144, 469);
       this.colorButton.Name = "colorButton";
       this.colorButton.Size = new System.Drawing.Size(64, 21);
@@ -273,6 +274,6 @@
       this.colorXAxisButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
       this.colorXAxisButton.Enabled = false;
-      this.colorXAxisButton.Image = HeuristicLab.Common.Resources.VSImageLibrary.DisplayInColor;
-      this.colorXAxisButton.Location = new System.Drawing.Point(605, 313);
+      this.colorXAxisButton.Image = ((System.Drawing.Image)(resources.GetObject("colorXAxisButton.Image")));
+      this.colorXAxisButton.Location = new System.Drawing.Point(719, 469);
       this.colorXAxisButton.Name = "colorXAxisButton";
       this.colorXAxisButton.Size = new System.Drawing.Size(21, 21);
@@ -282,18 +283,8 @@
       this.colorXAxisButton.Click += new System.EventHandler(this.colorXAxisButton_Click);
       // 
-      // noRunsLabel
-      // 
-      this.noRunsLabel.Anchor = System.Windows.Forms.AnchorStyles.None;
-      this.noRunsLabel.AutoSize = true;
-      this.noRunsLabel.Location = new System.Drawing.Point(309, 150);
-      this.noRunsLabel.Name = "noRunsLabel";
-      this.noRunsLabel.Size = new System.Drawing.Size(138, 13);
-      this.noRunsLabel.TabIndex = 21;
-      this.noRunsLabel.Text = "No runs could be displayed.";
-      // 
       // colorYAxisButton
       // 
       this.colorYAxisButton.Enabled = false;
-      this.colorYAxisButton.Image = HeuristicLab.Common.Resources.VSImageLibrary.DisplayInColor;
+      this.colorYAxisButton.Image = ((System.Drawing.Image)(resources.GetObject("colorYAxisButton.Image")));
       this.colorYAxisButton.Location = new System.Drawing.Point(251, 3);
       this.colorYAxisButton.Name = "colorYAxisButton";
@@ -304,4 +295,27 @@
       this.colorYAxisButton.Click += new System.EventHandler(this.colorYAxisButton_Click);
       // 
+      // noRunsLabel
+      // 
+      this.noRunsLabel.Anchor = System.Windows.Forms.AnchorStyles.None;
+      this.noRunsLabel.AutoSize = true;
+      this.noRunsLabel.Location = new System.Drawing.Point(366, 228);
+      this.noRunsLabel.Name = "noRunsLabel";
+      this.noRunsLabel.Size = new System.Drawing.Size(138, 13);
+      this.noRunsLabel.TabIndex = 21;
+      this.noRunsLabel.Text = "No runs could be displayed.";
+      // 
+      // sizeTrackBar
+      // 
+      this.sizeTrackBar.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+      this.sizeTrackBar.Location = new System.Drawing.Point(787, 3);
+      this.sizeTrackBar.Maximum = 50;
+      this.sizeTrackBar.Minimum = 5;
+      this.sizeTrackBar.Name = "sizeTrackBar";
+      this.sizeTrackBar.Size = new System.Drawing.Size(64, 45);
+      this.sizeTrackBar.TabIndex = 24;
+      this.sizeTrackBar.TickStyle = System.Windows.Forms.TickStyle.None;
+      this.sizeTrackBar.Value = 50;
+      this.sizeTrackBar.ValueChanged += new System.EventHandler(this.sizeTrackBar_ValueChanged);
+      // 
       // RunCollectionBubbleChartView
       // 
@@ -310,4 +324,5 @@
       this.BackColor = System.Drawing.SystemColors.Window;
       this.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+      this.Controls.Add(this.sizeTrackBar);
       this.Controls.Add(this.colorYAxisButton);
       this.Controls.Add(this.colorXAxisButton);
@@ -327,5 +342,5 @@
       this.Controls.Add(this.yTrackBar);
       this.Name = "RunCollectionBubbleChartView";
-      this.Size = new System.Drawing.Size(740, 340);
+      this.Size = new System.Drawing.Size(854, 496);
       ((System.ComponentModel.ISupportInitialize)(this.xTrackBar)).EndInit();
       ((System.ComponentModel.ISupportInitialize)(this.yTrackBar)).EndInit();
@@ -333,4 +348,5 @@
       this.radioButtonGroup.ResumeLayout(false);
       this.radioButtonGroup.PerformLayout();
+      ((System.ComponentModel.ISupportInitialize)(this.sizeTrackBar)).EndInit();
       this.ResumeLayout(false);
       this.PerformLayout();
@@ -360,4 +376,5 @@
     private System.Windows.Forms.Button colorXAxisButton;
     private System.Windows.Forms.Button colorYAxisButton;
+    private System.Windows.Forms.TrackBar sizeTrackBar;
   }
 }
Index: trunk/sources/HeuristicLab.Optimization.Views/3.3/RunCollectionBubbleChartView.cs
===================================================================
--- trunk/sources/HeuristicLab.Optimization.Views/3.3/RunCollectionBubbleChartView.cs	(revision 5302)
+++ trunk/sources/HeuristicLab.Optimization.Views/3.3/RunCollectionBubbleChartView.cs	(revision 5330)
@@ -231,9 +231,9 @@
           this.AddDataPoint(run);
 
-        //check to correct max bubble size
-        if (this.chart.Series[0].Points.Select(p => p.YValues[1]).Distinct().Count() == 1)
-          this.chart.Series[0]["BubbleMaxSize"] = "2";
-        else
-          this.chart.Series[0]["BubbleMaxSize"] = "7";
+        ////check to correct max bubble size
+        //if (this.chart.Series[0].Points.Select(p => p.YValues[1]).Distinct().Count() == 1)
+        //  this.chart.Series[0]["BubbleMaxSize"] = "2";
+        //else
+        //  this.chart.Series[0]["BubbleMaxSize"] = "7";
 
         if (this.chart.Series[0].Points.Count == 0)
@@ -241,8 +241,25 @@
         else {
           noRunsLabel.Visible = false;
+          UpdateMarkerSizes();
           UpdateCursorInterval();
         }
       }
     }
+
+    private void UpdateMarkerSizes() {
+      double[] sizeValues = this.chart.Series[0].Points.Select(p => p.YValues[1]).ToArray();
+      double minSizeValue = sizeValues.Min();
+      double maxSizeValue = sizeValues.Max();
+
+      if (maxSizeValue - minSizeValue < double.Epsilon) return;
+
+      for (int i = 0; i < sizeValues.Length; i++) {
+        DataPoint point = this.chart.Series[0].Points[i];
+        double relativeSize = (point.YValues[1] - minSizeValue) / (maxSizeValue - minSizeValue);
+        point.MarkerSize = (int)Math.Round((sizeTrackBar.Value - sizeTrackBar.Minimum) * relativeSize + sizeTrackBar.Minimum);
+      }
+
+    }
+
     private void AddDataPoint(IRun run) {
       double? xValue;
@@ -517,6 +534,9 @@
       this.UpdateDataPoints();
     }
-
-    private void AxisComboBox_SelectedIndexChanged(object sender, EventArgs e) {
+    private void sizeTrackBar_ValueChanged(object sender, EventArgs e) {
+      UpdateMarkerSizes();
+    }
+
+    private void AxisComboBox_SelectedValueChanged(object sender, EventArgs e) {
       bool axisSelected = xAxisComboBox.SelectedIndex != -1 && yAxisComboBox.SelectedIndex != -1;
       xTrackBar.Enabled = yTrackBar.Enabled = axisSelected;
