Index: /trunk/sources/HeuristicLab.Optimization.Views/3.3/RunCollectionBubbleChartView.Designer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Optimization.Views/3.3/RunCollectionBubbleChartView.Designer.cs	(revision 3542)
+++ /trunk/sources/HeuristicLab.Optimization.Views/3.3/RunCollectionBubbleChartView.Designer.cs	(revision 3543)
@@ -44,4 +44,5 @@
       this.colorDialog = new System.Windows.Forms.ColorDialog();
       this.tooltip = new System.Windows.Forms.ToolTip(this.components);
+      this.noRunsLabel = new System.Windows.Forms.Label();
       ((System.ComponentModel.ISupportInitialize)(this.xTrackBar)).BeginInit();
       ((System.ComponentModel.ISupportInitialize)(this.yTrackBar)).BeginInit();
@@ -63,5 +64,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(569, 308);
+      this.xJitterlabel.Location = new System.Drawing.Point(539, 295);
       this.xJitterlabel.Name = "xJitterlabel";
       this.xJitterlabel.Size = new System.Drawing.Size(32, 13);
@@ -72,5 +73,5 @@
       // 
       this.xTrackBar.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
-      this.xTrackBar.Location = new System.Drawing.Point(607, 305);
+      this.xTrackBar.Location = new System.Drawing.Point(577, 292);
       this.xTrackBar.Maximum = 100;
       this.xTrackBar.Name = "xTrackBar";
@@ -84,5 +85,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(320, 307);
+      this.xAxisLabel.Location = new System.Drawing.Point(290, 294);
       this.xAxisLabel.Name = "xAxisLabel";
       this.xAxisLabel.Size = new System.Drawing.Size(15, 13);
@@ -96,5 +97,5 @@
       this.xAxisComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
       this.xAxisComboBox.FormattingEnabled = true;
-      this.xAxisComboBox.Location = new System.Drawing.Point(341, 305);
+      this.xAxisComboBox.Location = new System.Drawing.Point(311, 292);
       this.xAxisComboBox.Name = "xAxisComboBox";
       this.xAxisComboBox.Size = new System.Drawing.Size(221, 21);
@@ -138,5 +139,5 @@
       this.sizeComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
       this.sizeComboBox.FormattingEnabled = true;
-      this.sizeComboBox.Location = new System.Drawing.Point(448, 3);
+      this.sizeComboBox.Location = new System.Drawing.Point(418, 3);
       this.sizeComboBox.Name = "sizeComboBox";
       this.sizeComboBox.Size = new System.Drawing.Size(221, 21);
@@ -148,10 +149,9 @@
       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(378, 6);
+      this.sizeLabel.Location = new System.Drawing.Point(348, 6);
       this.sizeLabel.Name = "sizeLabel";
       this.sizeLabel.Size = new System.Drawing.Size(66, 13);
       this.sizeLabel.TabIndex = 15;
       this.sizeLabel.Text = "Bubble Size:";
-      this.sizeLabel.Click += new System.EventHandler(this.sizeLabel_Click);
       // 
       // chart
@@ -172,5 +172,5 @@
       series1.YValuesPerPoint = 2;
       this.chart.Series.Add(series1);
-      this.chart.Size = new System.Drawing.Size(663, 261);
+      this.chart.Size = new System.Drawing.Size(633, 248);
       this.chart.TabIndex = 16;
       this.chart.Text = "chart";
@@ -209,5 +209,5 @@
       this.radioButtonGroup.Controls.Add(this.zoomButton);
       this.radioButtonGroup.Controls.Add(this.selectButton);
-      this.radioButtonGroup.Location = new System.Drawing.Point(3, 297);
+      this.radioButtonGroup.Location = new System.Drawing.Point(3, 284);
       this.radioButtonGroup.Name = "radioButtonGroup";
       this.radioButtonGroup.Size = new System.Drawing.Size(135, 32);
@@ -220,5 +220,5 @@
       this.colorButton.Enabled = false;
       this.colorButton.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
-      this.colorButton.Location = new System.Drawing.Point(144, 305);
+      this.colorButton.Location = new System.Drawing.Point(144, 292);
       this.colorButton.Name = "colorButton";
       this.colorButton.Size = new System.Drawing.Size(64, 21);
@@ -233,4 +233,14 @@
       this.colorDialog.FullOpen = true;
       // 
+      // noRunsLabel
+      // 
+      this.noRunsLabel.Anchor = System.Windows.Forms.AnchorStyles.None;
+      this.noRunsLabel.AutoSize = true;
+      this.noRunsLabel.Location = new System.Drawing.Point(261, 139);
+      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.";
+      // 
       // RunCollectionBubbleChartView
       // 
@@ -239,4 +249,5 @@
       this.BackColor = System.Drawing.SystemColors.Window;
       this.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+      this.Controls.Add(this.noRunsLabel);
       this.Controls.Add(this.colorButton);
       this.Controls.Add(this.radioButtonGroup);
@@ -253,5 +264,5 @@
       this.Controls.Add(this.yTrackBar);
       this.Name = "RunCollectionBubbleChartView";
-      this.Size = new System.Drawing.Size(674, 332);
+      this.Size = new System.Drawing.Size(644, 319);
       ((System.ComponentModel.ISupportInitialize)(this.xTrackBar)).EndInit();
       ((System.ComponentModel.ISupportInitialize)(this.yTrackBar)).EndInit();
@@ -283,4 +294,5 @@
     private System.Windows.Forms.ColorDialog colorDialog;
     private System.Windows.Forms.ToolTip tooltip;
+    private System.Windows.Forms.Label noRunsLabel;
   }
 }
Index: /trunk/sources/HeuristicLab.Optimization.Views/3.3/RunCollectionBubbleChartView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Optimization.Views/3.3/RunCollectionBubbleChartView.cs	(revision 3542)
+++ /trunk/sources/HeuristicLab.Optimization.Views/3.3/RunCollectionBubbleChartView.cs	(revision 3543)
@@ -63,11 +63,13 @@
       this.isSelecting = false;
 
+      
       this.chart.ChartAreas[0].CursorX.IsUserSelectionEnabled = true;
       this.chart.ChartAreas[0].CursorY.IsUserSelectionEnabled = true;
-      this.chart.ChartAreas[0].AxisX.ScaleView.Zoomable = !this.isSelecting;
-      this.chart.ChartAreas[0].AxisY.ScaleView.Zoomable = !this.isSelecting;
       this.chart.ChartAreas[0].CursorX.Interval = 0;
       this.chart.ChartAreas[0].CursorY.Interval = 0;
-
+      this.chart.ChartAreas[0].AxisX.ScaleView.Zoomable = !this.isSelecting;
+      this.chart.ChartAreas[0].AxisX.IntervalAutoMode = IntervalAutoMode.VariableCount;
+      this.chart.ChartAreas[0].AxisY.ScaleView.Zoomable = !this.isSelecting;
+      this.chart.ChartAreas[0].AxisY.IntervalAutoMode = IntervalAutoMode.VariableCount;
     }
 
@@ -179,5 +181,15 @@
         foreach (IRun run in this.Content)
           this.AddDataPoint(run);
-        //Thread.Sleep(100);
+
+        //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)
+          noRunsLabel.Visible = true;
+        else
+          noRunsLabel.Visible = false;
       }
     }
@@ -190,8 +202,8 @@
       xValue = GetValue(run, (string)xAxisComboBox.SelectedItem);
       yValue = GetValue(run, (string)yAxisComboBox.SelectedItem);
-      if (xValue.HasValue && yValue.HasValue) {
-       sizeValue = GetValue(run, (string)sizeComboBox.SelectedItem);
-        xValue = xValue.Value + xValue.Value * GetXJitter(Content.ElementAt(row)) * xJitterFactor;
-        yValue = yValue.Value + yValue.Value * GetYJitter(Content.ElementAt(row)) * yJitterFactor;
+      sizeValue = GetValue(run, (string)sizeComboBox.SelectedItem);
+      if (xValue.HasValue && yValue.HasValue && sizeValue.HasValue) {
+        xValue = xValue.Value + xValue.Value * GetXJitter(run) * xJitterFactor;
+        yValue = yValue.Value + yValue.Value * GetYJitter(run) * yJitterFactor;
         if (run.Visible) {
           DataPoint point = new DataPoint(xValue.Value, new double[] { yValue.Value, sizeValue.Value });
@@ -220,8 +232,9 @@
         DoubleValue doubleValue = value as DoubleValue;
         IntValue intValue = value as IntValue;
-        double ret;
-        if (doubleValue != null)
-          ret = doubleValue.Value;
-        else if (intValue != null)
+        double? ret = null;
+        if (doubleValue != null) {
+          if (!double.IsNaN(doubleValue.Value) && !double.IsInfinity(doubleValue.Value))
+            ret = doubleValue.Value;
+        } else if (intValue != null)
           ret = intValue.Value;
         else
@@ -409,6 +422,6 @@
         foreach (var pair in categoricalMapping[dimension]) {
           string labelText = pair.Key.ToString();
-          if(labelText.Length > 25)
-            labelText = labelText.Substring(0,25) + " ... ";
+          if (labelText.Length > 25)
+            labelText = labelText.Substring(0, 25) + " ... ";
           label = axis.CustomLabels.Add(pair.Value - 0.5, pair.Value + 0.5, labelText);
           label.GridTicks = GridTickTypes.TickMark;
@@ -442,8 +455,4 @@
     }
     #endregion
-
-    private void sizeLabel_Click(object sender, EventArgs e) {
-
-    }
   }
 }
