Index: trunk/sources/HeuristicLab.Clients.OKB.Views/3.3/RunCreation/Views/OKBProblemView.Designer.cs
===================================================================
--- trunk/sources/HeuristicLab.Clients.OKB.Views/3.3/RunCreation/Views/OKBProblemView.Designer.cs	(revision 13540)
+++ trunk/sources/HeuristicLab.Clients.OKB.Views/3.3/RunCreation/Views/OKBProblemView.Designer.cs	(revision 13550)
@@ -216,4 +216,5 @@
       this.calculatorListView.UseCompatibleStateImageBehavior = false;
       this.calculatorListView.View = System.Windows.Forms.View.Details;
+      this.calculatorListView.ItemChecked += new System.Windows.Forms.ItemCheckedEventHandler(this.calculatorListView_ItemChecked);
       // 
       // characteristicColumnHeader
Index: trunk/sources/HeuristicLab.Clients.OKB.Views/3.3/RunCreation/Views/OKBProblemView.cs
===================================================================
--- trunk/sources/HeuristicLab.Clients.OKB.Views/3.3/RunCreation/Views/OKBProblemView.cs	(revision 13540)
+++ trunk/sources/HeuristicLab.Clients.OKB.Views/3.3/RunCreation/Views/OKBProblemView.cs	(revision 13550)
@@ -22,5 +22,4 @@
 using System;
 using System.Collections.Generic;
-using System.Globalization;
 using System.Linq;
 using System.Windows.Forms;
@@ -92,4 +91,5 @@
       uploadCharacteristicsButton.Enabled = Content != null && Content.ProblemId != -1 && !Locked && !ReadOnly
         && characteristicsMatrixView.Content != null && characteristicsMatrixView.Content.Rows > 0;
+      calculateButton.Enabled = Content != null && Content.ProblemId != -1 && !Locked && !ReadOnly && calculatorListView.CheckedItems.Count > 0;
     }
 
@@ -114,4 +114,5 @@
             var item = calculatorListView.Items.Add(c, c);
             item.Group = group;
+            item.Checked = true;
           }
         }
@@ -186,22 +187,22 @@
       try {
         RunCreationClient.SetCharacteristicValues(Content.ProblemId, values);
-      } catch (Exception ex) { PluginInfrastructure.ErrorHandling.ShowErrorDialog(ex); }
+      } catch (Exception ex) { ErrorHandling.ShowErrorDialog(ex); }
     }
     private void calculateButton_Click(object sender, EventArgs e) {
+      var characteristics = calculatorListView.CheckedItems.OfType<ListViewItem>().GroupBy(x => x.Group).ToList();
+      if (characteristics.Count == 0) return;
       var problem = Content.CloneProblem();
-      var characteristics = calculatorListView.CheckedItems.OfType<ListViewItem>().GroupBy(x => x.Group);
-      var results = new Dictionary<string, double>();
+      var results = new Dictionary<string, Value>();
       foreach (var c in characteristics) {
         var calc = (ICharacteristicCalculator)c.Key.Tag;
         foreach (var result in calc.Calculate(problem, c.Select(x => x.Text).ToArray()))
-          results[result.Key] = result.Value;
-      }
-      var matrix = characteristicsMatrixView.Content as StringMatrix;
-      if (matrix == null) matrix = new StringMatrix(results.Count, 3);
+          results[result.Key] = RunCreationClient.Instance.ConvertToValue(result.Value, result.Key);
+      }
+      var matrix = (characteristicsMatrixView.Content as StringMatrix) ?? (new StringMatrix(results.Count, 3));
       for (var i = 0; i < matrix.Rows; i++) {
-        double r;
+        Value r;
         if (results.TryGetValue(matrix[i, 0], out r)) {
-          matrix[i, 1] = r.ToString(CultureInfo.CurrentCulture.NumberFormat);
-          matrix[i, 2] = "DoubleValue";
+          matrix[i, 1] = r.GetValue();
+          matrix[i, 2] = r.GetType().Name;
           results.Remove(matrix[i, 0]);
         }
@@ -213,6 +214,6 @@
         if (string.IsNullOrEmpty(matrix[i, 0])) {
           matrix[i, 0] = resultsList[counter].Key;
-          matrix[i, 1] = resultsList[counter].Value.ToString(CultureInfo.CurrentCulture.NumberFormat);
-          matrix[i, 2] = "DoubleValue";
+          matrix[i, 1] = resultsList[counter].Value.GetValue();
+          matrix[i, 2] = resultsList[counter].Value.GetType().Name;
           resultsList.RemoveAt(counter);
           counter--;
@@ -224,9 +225,14 @@
         for (var i = matrix.Rows - 1; counter >= 0; i--) {
           matrix[i, 0] = resultsList[0].Key;
-          matrix[i, 1] = resultsList[0].Value.ToString(CultureInfo.CurrentCulture.NumberFormat);
-          matrix[i, 2] = "DoubleValue";
+          matrix[i, 1] = resultsList[0].Value.GetValue();
+          matrix[i, 2] = resultsList[0].Value.GetType().Name;
+          resultsList.RemoveAt(0);
           counter--;
         }
       }
+      SetEnabledStateOfControls();
+    }
+    private void calculatorListView_ItemChecked(object sender, ItemCheckedEventArgs e) {
+      SetEnabledStateOfControls();
     }
     #endregion
@@ -239,4 +245,5 @@
     }
     #endregion
+
   }
 }
