Index: branches/BubbleChart/HeuristicLab.Optimization.BubbleChart/3.3/BubbleChartView.Designer.cs
===================================================================
--- branches/BubbleChart/HeuristicLab.Optimization.BubbleChart/3.3/BubbleChartView.Designer.cs	(revision 12495)
+++ branches/BubbleChart/HeuristicLab.Optimization.BubbleChart/3.3/BubbleChartView.Designer.cs	(revision 12498)
@@ -46,6 +46,6 @@
     private void InitializeComponent() {
       this.components = new System.ComponentModel.Container();
-      System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea2 = new System.Windows.Forms.DataVisualization.Charting.ChartArea();
-      System.Windows.Forms.DataVisualization.Charting.Series series2 = new System.Windows.Forms.DataVisualization.Charting.Series();
+      System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea1 = new System.Windows.Forms.DataVisualization.Charting.ChartArea();
+      System.Windows.Forms.DataVisualization.Charting.Series series1 = new System.Windows.Forms.DataVisualization.Charting.Series();
       this.yLabel = new System.Windows.Forms.Label();
       this.xLabel = new System.Windows.Forms.Label();
@@ -94,15 +94,15 @@
             | System.Windows.Forms.AnchorStyles.Left) 
             | System.Windows.Forms.AnchorStyles.Right)));
-      chartArea2.Name = "ChartArea1";
-      this.chart.ChartAreas.Add(chartArea2);
+      chartArea1.Name = "ChartArea1";
+      this.chart.ChartAreas.Add(chartArea1);
       this.chart.Location = new System.Drawing.Point(3, 3);
       this.chart.Name = "chart";
-      series2.ChartArea = "ChartArea1";
-      series2.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Point;
-      series2.IsVisibleInLegend = false;
-      series2.MarkerStyle = System.Windows.Forms.DataVisualization.Charting.MarkerStyle.Circle;
-      series2.Name = "Bubbles";
-      series2.YValuesPerPoint = 2;
-      this.chart.Series.Add(series2);
+      series1.ChartArea = "ChartArea1";
+      series1.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Point;
+      series1.IsVisibleInLegend = false;
+      series1.MarkerStyle = System.Windows.Forms.DataVisualization.Charting.MarkerStyle.Circle;
+      series1.Name = "Bubbles";
+      series1.YValuesPerPoint = 2;
+      this.chart.Series.Add(series1);
       this.chart.Size = new System.Drawing.Size(880, 668);
       this.chart.TabIndex = 7;
@@ -216,4 +216,6 @@
       // 
       this.includeChildrenCheckBox.AutoSize = true;
+      this.includeChildrenCheckBox.Checked = true;
+      this.includeChildrenCheckBox.CheckState = System.Windows.Forms.CheckState.Checked;
       this.includeChildrenCheckBox.Location = new System.Drawing.Point(94, 4);
       this.includeChildrenCheckBox.Name = "includeChildrenCheckBox";
Index: branches/BubbleChart/HeuristicLab.Optimization.BubbleChart/3.3/BubbleChartView.cs
===================================================================
--- branches/BubbleChart/HeuristicLab.Optimization.BubbleChart/3.3/BubbleChartView.cs	(revision 12495)
+++ branches/BubbleChart/HeuristicLab.Optimization.BubbleChart/3.3/BubbleChartView.cs	(revision 12498)
@@ -37,14 +37,13 @@
   [Content(typeof(RecursiveDataItem), false)]
   public partial class BubbleChartView : ItemView {
-
     private enum SizeDimension { Constant = 0 }
     private enum AxisDimension { Index = 0 }
 
-    private string xAxisValue;
-    private string yAxisValue;
-    private string sizeAxisValue;
-
     private readonly Dictionary<RecursiveDataItem, int> itemToIndexMapping = new Dictionary<RecursiveDataItem, int>();
     private readonly Dictionary<string, Dictionary<object, double>> categoricalMapping = new Dictionary<string, Dictionary<object, double>>();
+
+    private string XAxisValue { get { return (string)xAxisComboBox.SelectedItem; } }
+    private string YAxisValue { get { return (string)yAxisComboBox.SelectedItem; } }
+    private string SizeAxisValue { get { return (string)sizeComboBox.SelectedItem; } }
 
     public new RecursiveDataItem Content {
@@ -74,5 +73,4 @@
 
     #region Tree Queries
-
     private IEnumerable<RecursiveDataItem> GetAvailableItems() {
       return IterateCheckedNodes()
@@ -117,8 +115,9 @@
       int level = (int)levelNumericUpDown.Value;
       bool includeChildren = includeChildrenCheckBox.Checked;
-      //treeView.BeginUpdate();
-      foreach (var node in IterateAllNodes())
-        node.Checked = includeChildren ? node.Level >= level : node.Level == level;
-      //treeView.EndUpdate();
+      foreach (var node in IterateAllNodes()) {
+        bool @checked = includeChildren ? node.Level >= level : node.Level == level;
+        if (node.Checked != @checked)
+          node.Checked = @checked;
+      }
     }
 
@@ -142,5 +141,4 @@
         sizeComboBox.Items.AddRange(additionalSizeDimension);
         sizeComboBox.Items.AddRange(axisNames);
-        sizeComboBox.SelectedItem = SizeDimension.Constant.ToString();
 
         bool changed = false;
@@ -156,8 +154,8 @@
           sizeComboBox.SelectedItem = selectedSizeAxis;
           changed = true;
-        }
+        } else sizeComboBox.SelectedItem = SizeDimension.Constant.ToString();
         if (changed) {
           UpdateDataPoints();
-          //UpdateAxisLabels();
+          UpdateAxisLabels();
         }
       }
@@ -171,13 +169,13 @@
       RebuildInverseIndex();
 
-      chart.ChartAreas[0].AxisX.IsMarginVisible = xAxisValue != AxisDimension.Index.ToString();
-      chart.ChartAreas[0].AxisY.IsMarginVisible = yAxisValue != AxisDimension.Index.ToString();
+      chart.ChartAreas[0].AxisX.IsMarginVisible = XAxisValue != AxisDimension.Index.ToString();
+      chart.ChartAreas[0].AxisY.IsMarginVisible = YAxisValue != AxisDimension.Index.ToString();
 
       if (Content != null) {
         var items = GetAvailableItems();
         foreach (var item in items) {
-          var x = GetValue(item, xAxisValue);
-          var y = GetValue(item, yAxisValue);
-          var s = GetValue(item, sizeAxisValue);
+          var x = GetValue(item, XAxisValue);
+          var y = GetValue(item, YAxisValue);
+          var s = GetValue(item, SizeAxisValue);
           if (x.HasValue && y.HasValue && s.HasValue) {
             var dataPoint = new DataPoint(x.Value, new[] { y.Value, s.Value });
@@ -267,16 +265,15 @@
 
     private void UpdateAxisLabels() {
-      return;
       Axis xAxis = chart.ChartAreas[0].AxisX;
       Axis yAxis = chart.ChartAreas[0].AxisY;
       //mkommend: combobox.SelectedIndex could not be used as this changes during hovering over possible values
-      var xSAxisSelected = xAxisValue == null ? null : (string)xAxisComboBox.SelectedItem;
-      var ySAxisSelected = yAxisValue == null ? null : (string)yAxisComboBox.SelectedItem;
+      var xSAxisSelected = XAxisValue == null ? null : (string)xAxisComboBox.SelectedItem;
+      var ySAxisSelected = YAxisValue == null ? null : (string)yAxisComboBox.SelectedItem;
       SetCustomAxisLabels(xAxis, xSAxisSelected);
       SetCustomAxisLabels(yAxis, ySAxisSelected);
-      if (xAxisValue != null)
-        xAxis.Title = xAxisValue;
-      if (yAxisValue != null)
-        yAxis.Title = yAxisValue;
+      if (XAxisValue != null)
+        xAxis.Title = XAxisValue;
+      if (YAxisValue != null)
+        yAxis.Title = YAxisValue;
     }
     private void chart_AxisViewChanged(object sender, System.Windows.Forms.DataVisualization.Charting.ViewEventArgs e) {
@@ -285,5 +282,5 @@
     private void SetCustomAxisLabels(Axis axis, string key) {
       axis.CustomLabels.Clear();
-      if (categoricalMapping.ContainsKey(key)) {
+      if (key != null && categoricalMapping.ContainsKey(key)) {
         foreach (var pair in categoricalMapping[key]) {
           string labelText = pair.Key.ToString();
@@ -298,5 +295,5 @@
           axis.CustomLabels.Add(label);
         }
-      } else if (key != null && Content.Data[key] is TimeSpanValue) {
+      } else if (false && key != null && Content.Data[key] is TimeSpanValue) { // TODO
         chart.ChartAreas[0].RecalculateAxesScale();
         for (double i = axis.Minimum; i <= axis.Maximum; i += axis.LabelStyle.Interval) {
@@ -328,5 +325,5 @@
     private void treeView_AfterCheck(object sender, TreeViewEventArgs e) {
       UpdateComboBoxes();
-      //UpdateDataPoints();
+      UpdateDataPoints();
     }
     private void treeView_AfterSelect(object sender, TreeViewEventArgs e) {
@@ -337,10 +334,4 @@
 
     private void axisComboBox_SelectedValueChanged(object sender, EventArgs e) {
-      bool axisSelected = xAxisComboBox.SelectedIndex != -1 && yAxisComboBox.SelectedIndex != -1;
-
-      xAxisValue = (string)xAxisComboBox.SelectedItem;
-      yAxisValue = (string)yAxisComboBox.SelectedItem;
-      sizeAxisValue = (string)sizeComboBox.SelectedItem;
-
       UpdateDataPoints();
       UpdateAxisLabels();
@@ -359,5 +350,4 @@
 
     #region Helpers
-
     private IEnumerable<TreeNode> IterateAllNodes() {
       return Collect(treeView.Nodes);
@@ -373,4 +363,15 @@
       }
     }
+
+    private void BeginUpdateComboBoxes() {
+      xAxisComboBox.BeginUpdate();
+      yAxisComboBox.BeginUpdate();
+      sizeComboBox.BeginUpdate();
+    }
+    private void EndUpdateComboBoxes() {
+      xAxisComboBox.EndUpdate();
+      yAxisComboBox.EndUpdate();
+      sizeComboBox.EndUpdate();
+    }
     #endregion
   }
Index: branches/BubbleChart/HeuristicLab.Optimization.BubbleChart/3.3/RecursiveDataItem.cs
===================================================================
--- branches/BubbleChart/HeuristicLab.Optimization.BubbleChart/3.3/RecursiveDataItem.cs	(revision 12495)
+++ branches/BubbleChart/HeuristicLab.Optimization.BubbleChart/3.3/RecursiveDataItem.cs	(revision 12498)
@@ -71,5 +71,5 @@
     }
     IEnumerator IEnumerable.GetEnumerator() {
-      throw new NotImplementedException();
+      return data.GetEnumerator();
     }
 
