Index: /trunk/sources/HeuristicLab.Problems.VehicleRouting.Views/3.3/VRPSolutionView.Designer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.VehicleRouting.Views/3.3/VRPSolutionView.Designer.cs	(revision 4014)
+++ /trunk/sources/HeuristicLab.Problems.VehicleRouting.Views/3.3/VRPSolutionView.Designer.cs	(revision 4015)
@@ -52,17 +52,17 @@
       this.tourViewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
       this.splitContainer = new System.Windows.Forms.SplitContainer();
-      this.tabControl1 = new System.Windows.Forms.TabControl();
-      this.tabPage1 = new System.Windows.Forms.TabPage();
+      this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
+      this.travelTimeViewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
+      this.label6 = new System.Windows.Forms.Label();
+      this.tardinessViewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
+      this.label5 = new System.Windows.Forms.Label();
+      this.overloadViewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
+      this.label4 = new System.Windows.Forms.Label();
+      this.vehicleUtilizationViewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
+      this.label3 = new System.Windows.Forms.Label();
+      this.label2 = new System.Windows.Forms.Label();
       this.qualityViewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
-      this.tabPage6 = new System.Windows.Forms.TabPage();
+      this.label1 = new System.Windows.Forms.Label();
       this.distanceViewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
-      this.tabPage2 = new System.Windows.Forms.TabPage();
-      this.overloadViewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
-      this.tabPage3 = new System.Windows.Forms.TabPage();
-      this.tardinessViewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
-      this.tabPage4 = new System.Windows.Forms.TabPage();
-      this.travelTimeViewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
-      this.tabPage5 = new System.Windows.Forms.TabPage();
-      this.vehicleUtilizationViewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
       ((System.ComponentModel.ISupportInitialize)(this.pictureBox)).BeginInit();
       this.tabControl.SuspendLayout();
@@ -73,11 +73,5 @@
       this.splitContainer.Panel2.SuspendLayout();
       this.splitContainer.SuspendLayout();
-      this.tabControl1.SuspendLayout();
-      this.tabPage1.SuspendLayout();
-      this.tabPage6.SuspendLayout();
-      this.tabPage2.SuspendLayout();
-      this.tabPage3.SuspendLayout();
-      this.tabPage4.SuspendLayout();
-      this.tabPage5.SuspendLayout();
+      this.tableLayoutPanel1.SuspendLayout();
       this.SuspendLayout();
       // 
@@ -91,5 +85,5 @@
       this.pictureBox.Location = new System.Drawing.Point(6, 6);
       this.pictureBox.Name = "pictureBox";
-      this.pictureBox.Size = new System.Drawing.Size(403, 288);
+      this.pictureBox.Size = new System.Drawing.Size(403, 386);
       this.pictureBox.TabIndex = 0;
       this.pictureBox.TabStop = false;
@@ -98,13 +92,11 @@
       // tabControl
       // 
-      this.tabControl.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
-                  | System.Windows.Forms.AnchorStyles.Left)
-                  | System.Windows.Forms.AnchorStyles.Right)));
       this.tabControl.Controls.Add(this.visualizationTabPage);
       this.tabControl.Controls.Add(this.valueTabPage);
-      this.tabControl.Location = new System.Drawing.Point(0, 3);
+      this.tabControl.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.tabControl.Location = new System.Drawing.Point(0, 0);
       this.tabControl.Name = "tabControl";
       this.tabControl.SelectedIndex = 0;
-      this.tabControl.Size = new System.Drawing.Size(423, 326);
+      this.tabControl.Size = new System.Drawing.Size(423, 424);
       this.tabControl.TabIndex = 0;
       // 
@@ -115,5 +107,5 @@
       this.visualizationTabPage.Name = "visualizationTabPage";
       this.visualizationTabPage.Padding = new System.Windows.Forms.Padding(3);
-      this.visualizationTabPage.Size = new System.Drawing.Size(415, 300);
+      this.visualizationTabPage.Size = new System.Drawing.Size(415, 398);
       this.visualizationTabPage.TabIndex = 0;
       this.visualizationTabPage.Text = "Visualization";
@@ -126,5 +118,5 @@
       this.valueTabPage.Name = "valueTabPage";
       this.valueTabPage.Padding = new System.Windows.Forms.Padding(3);
-      this.valueTabPage.Size = new System.Drawing.Size(415, 300);
+      this.valueTabPage.Size = new System.Drawing.Size(415, 398);
       this.valueTabPage.TabIndex = 1;
       this.valueTabPage.Text = "Value";
@@ -133,11 +125,9 @@
       // tourGroupBox
       // 
-      this.tourGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
-                  | System.Windows.Forms.AnchorStyles.Left)
-                  | System.Windows.Forms.AnchorStyles.Right)));
       this.tourGroupBox.Controls.Add(this.tourViewHost);
-      this.tourGroupBox.Location = new System.Drawing.Point(6, 6);
+      this.tourGroupBox.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.tourGroupBox.Location = new System.Drawing.Point(3, 3);
       this.tourGroupBox.Name = "tourGroupBox";
-      this.tourGroupBox.Size = new System.Drawing.Size(403, 288);
+      this.tourGroupBox.Size = new System.Drawing.Size(409, 392);
       this.tourGroupBox.TabIndex = 0;
       this.tourGroupBox.TabStop = false;
@@ -154,5 +144,5 @@
       this.tourViewHost.Name = "tourViewHost";
       this.tourViewHost.ReadOnly = false;
-      this.tourViewHost.Size = new System.Drawing.Size(391, 263);
+      this.tourViewHost.Size = new System.Drawing.Size(397, 367);
       this.tourViewHost.TabIndex = 0;
       this.tourViewHost.ViewType = null;
@@ -161,4 +151,6 @@
       // 
       this.splitContainer.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.splitContainer.FixedPanel = System.Windows.Forms.FixedPanel.Panel1;
+      this.splitContainer.IsSplitterFixed = true;
       this.splitContainer.Location = new System.Drawing.Point(0, 0);
       this.splitContainer.Name = "splitContainer";
@@ -167,177 +159,185 @@
       // splitContainer.Panel1
       // 
-      this.splitContainer.Panel1.Controls.Add(this.tabControl1);
+      this.splitContainer.Panel1.Controls.Add(this.tableLayoutPanel1);
       // 
       // splitContainer.Panel2
       // 
       this.splitContainer.Panel2.Controls.Add(this.tabControl);
-      this.splitContainer.Size = new System.Drawing.Size(423, 402);
-      this.splitContainer.SplitterDistance = 69;
+      this.splitContainer.Size = new System.Drawing.Size(423, 558);
+      this.splitContainer.SplitterDistance = 130;
       this.splitContainer.TabIndex = 0;
       // 
-      // tabControl1
-      // 
-      this.tabControl1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
-                  | System.Windows.Forms.AnchorStyles.Left)
-                  | System.Windows.Forms.AnchorStyles.Right)));
-      this.tabControl1.Controls.Add(this.tabPage1);
-      this.tabControl1.Controls.Add(this.tabPage6);
-      this.tabControl1.Controls.Add(this.tabPage5);
-      this.tabControl1.Controls.Add(this.tabPage2);
-      this.tabControl1.Controls.Add(this.tabPage3);
-      this.tabControl1.Controls.Add(this.tabPage4);
-      this.tabControl1.Location = new System.Drawing.Point(4, 3);
-      this.tabControl1.Name = "tabControl1";
-      this.tabControl1.SelectedIndex = 0;
-      this.tabControl1.Size = new System.Drawing.Size(416, 63);
-      this.tabControl1.TabIndex = 0;
-      // 
-      // tabPage1
-      // 
-      this.tabPage1.Controls.Add(this.qualityViewHost);
-      this.tabPage1.Location = new System.Drawing.Point(4, 22);
-      this.tabPage1.Name = "tabPage1";
-      this.tabPage1.Padding = new System.Windows.Forms.Padding(3);
-      this.tabPage1.Size = new System.Drawing.Size(408, 37);
-      this.tabPage1.TabIndex = 0;
-      this.tabPage1.Text = "Quality";
-      this.tabPage1.UseVisualStyleBackColor = true;
+      // tableLayoutPanel1
+      // 
+      this.tableLayoutPanel1.ColumnCount = 2;
+      this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 23.64066F));
+      this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 76.35934F));
+      this.tableLayoutPanel1.Controls.Add(this.travelTimeViewHost, 1, 5);
+      this.tableLayoutPanel1.Controls.Add(this.label6, 0, 5);
+      this.tableLayoutPanel1.Controls.Add(this.tardinessViewHost, 1, 4);
+      this.tableLayoutPanel1.Controls.Add(this.label5, 0, 4);
+      this.tableLayoutPanel1.Controls.Add(this.overloadViewHost, 1, 3);
+      this.tableLayoutPanel1.Controls.Add(this.label4, 0, 3);
+      this.tableLayoutPanel1.Controls.Add(this.vehicleUtilizationViewHost, 1, 2);
+      this.tableLayoutPanel1.Controls.Add(this.label3, 0, 2);
+      this.tableLayoutPanel1.Controls.Add(this.label2, 0, 1);
+      this.tableLayoutPanel1.Controls.Add(this.qualityViewHost, 1, 0);
+      this.tableLayoutPanel1.Controls.Add(this.label1, 0, 0);
+      this.tableLayoutPanel1.Controls.Add(this.distanceViewHost, 1, 1);
+      this.tableLayoutPanel1.GrowStyle = System.Windows.Forms.TableLayoutPanelGrowStyle.FixedSize;
+      this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0);
+      this.tableLayoutPanel1.Name = "tableLayoutPanel1";
+      this.tableLayoutPanel1.RowCount = 6;
+      this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
+      this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
+      this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
+      this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
+      this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
+      this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
+      this.tableLayoutPanel1.Size = new System.Drawing.Size(423, 121);
+      this.tableLayoutPanel1.TabIndex = 2;
+      // 
+      // travelTimeViewHost
+      // 
+      this.travelTimeViewHost.Caption = "View";
+      this.travelTimeViewHost.Content = null;
+      this.travelTimeViewHost.Dock = System.Windows.Forms.DockStyle.Left;
+      this.travelTimeViewHost.Location = new System.Drawing.Point(102, 103);
+      this.travelTimeViewHost.Name = "travelTimeViewHost";
+      this.travelTimeViewHost.ReadOnly = false;
+      this.travelTimeViewHost.Size = new System.Drawing.Size(281, 15);
+      this.travelTimeViewHost.TabIndex = 17;
+      this.travelTimeViewHost.ViewType = null;
+      // 
+      // label6
+      // 
+      this.label6.AutoSize = true;
+      this.label6.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.label6.Location = new System.Drawing.Point(3, 100);
+      this.label6.Name = "label6";
+      this.label6.Size = new System.Drawing.Size(93, 21);
+      this.label6.TabIndex = 16;
+      this.label6.Text = "Travel Time";
+      this.label6.TextAlign = System.Drawing.ContentAlignment.BottomLeft;
+      // 
+      // tardinessViewHost
+      // 
+      this.tardinessViewHost.Caption = "View";
+      this.tardinessViewHost.Content = null;
+      this.tardinessViewHost.Dock = System.Windows.Forms.DockStyle.Left;
+      this.tardinessViewHost.Location = new System.Drawing.Point(102, 83);
+      this.tardinessViewHost.Name = "tardinessViewHost";
+      this.tardinessViewHost.ReadOnly = false;
+      this.tardinessViewHost.Size = new System.Drawing.Size(281, 14);
+      this.tardinessViewHost.TabIndex = 15;
+      this.tardinessViewHost.ViewType = null;
+      // 
+      // label5
+      // 
+      this.label5.AutoSize = true;
+      this.label5.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.label5.Location = new System.Drawing.Point(3, 80);
+      this.label5.Name = "label5";
+      this.label5.Size = new System.Drawing.Size(93, 20);
+      this.label5.TabIndex = 14;
+      this.label5.Text = "Tardiness";
+      this.label5.TextAlign = System.Drawing.ContentAlignment.BottomLeft;
+      // 
+      // overloadViewHost
+      // 
+      this.overloadViewHost.BackColor = System.Drawing.Color.Transparent;
+      this.overloadViewHost.Caption = "View";
+      this.overloadViewHost.Content = null;
+      this.overloadViewHost.Dock = System.Windows.Forms.DockStyle.Left;
+      this.overloadViewHost.Location = new System.Drawing.Point(102, 63);
+      this.overloadViewHost.Name = "overloadViewHost";
+      this.overloadViewHost.ReadOnly = false;
+      this.overloadViewHost.Size = new System.Drawing.Size(281, 14);
+      this.overloadViewHost.TabIndex = 13;
+      this.overloadViewHost.ViewType = null;
+      // 
+      // label4
+      // 
+      this.label4.AutoSize = true;
+      this.label4.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.label4.Location = new System.Drawing.Point(3, 60);
+      this.label4.Name = "label4";
+      this.label4.Size = new System.Drawing.Size(93, 20);
+      this.label4.TabIndex = 12;
+      this.label4.Text = "Overload";
+      this.label4.TextAlign = System.Drawing.ContentAlignment.BottomLeft;
+      // 
+      // vehicleUtilizationViewHost
+      // 
+      this.vehicleUtilizationViewHost.Caption = "View";
+      this.vehicleUtilizationViewHost.Content = null;
+      this.vehicleUtilizationViewHost.Dock = System.Windows.Forms.DockStyle.Left;
+      this.vehicleUtilizationViewHost.Location = new System.Drawing.Point(102, 43);
+      this.vehicleUtilizationViewHost.Name = "vehicleUtilizationViewHost";
+      this.vehicleUtilizationViewHost.ReadOnly = false;
+      this.vehicleUtilizationViewHost.Size = new System.Drawing.Size(281, 14);
+      this.vehicleUtilizationViewHost.TabIndex = 11;
+      this.vehicleUtilizationViewHost.ViewType = null;
+      // 
+      // label3
+      // 
+      this.label3.AutoSize = true;
+      this.label3.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.label3.Location = new System.Drawing.Point(3, 40);
+      this.label3.Name = "label3";
+      this.label3.Size = new System.Drawing.Size(93, 20);
+      this.label3.TabIndex = 10;
+      this.label3.Text = "Vehicle utilization";
+      this.label3.TextAlign = System.Drawing.ContentAlignment.BottomLeft;
+      // 
+      // label2
+      // 
+      this.label2.AutoSize = true;
+      this.label2.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.label2.Location = new System.Drawing.Point(3, 20);
+      this.label2.Name = "label2";
+      this.label2.Size = new System.Drawing.Size(93, 20);
+      this.label2.TabIndex = 9;
+      this.label2.Text = "Distance";
+      this.label2.TextAlign = System.Drawing.ContentAlignment.BottomLeft;
       // 
       // qualityViewHost
       // 
-      this.qualityViewHost.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
-                  | System.Windows.Forms.AnchorStyles.Left)
-                  | System.Windows.Forms.AnchorStyles.Right)));
       this.qualityViewHost.BackColor = System.Drawing.Color.Transparent;
       this.qualityViewHost.Caption = "View";
       this.qualityViewHost.Content = null;
-      this.qualityViewHost.Location = new System.Drawing.Point(3, 1);
+      this.qualityViewHost.Dock = System.Windows.Forms.DockStyle.Left;
+      this.qualityViewHost.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+      this.qualityViewHost.Location = new System.Drawing.Point(102, 3);
       this.qualityViewHost.Name = "qualityViewHost";
       this.qualityViewHost.ReadOnly = false;
-      this.qualityViewHost.Size = new System.Drawing.Size(402, 35);
-      this.qualityViewHost.TabIndex = 5;
+      this.qualityViewHost.Size = new System.Drawing.Size(281, 14);
+      this.qualityViewHost.TabIndex = 8;
       this.qualityViewHost.ViewType = null;
       // 
-      // tabPage6
-      // 
-      this.tabPage6.Controls.Add(this.distanceViewHost);
-      this.tabPage6.Location = new System.Drawing.Point(4, 22);
-      this.tabPage6.Name = "tabPage6";
-      this.tabPage6.Size = new System.Drawing.Size(408, 37);
-      this.tabPage6.TabIndex = 5;
-      this.tabPage6.Text = "Distance";
-      this.tabPage6.UseVisualStyleBackColor = true;
+      // label1
+      // 
+      this.label1.AutoSize = true;
+      this.label1.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+      this.label1.Location = new System.Drawing.Point(3, 0);
+      this.label1.Name = "label1";
+      this.label1.Size = new System.Drawing.Size(93, 20);
+      this.label1.TabIndex = 0;
+      this.label1.Text = "Quality";
+      this.label1.TextAlign = System.Drawing.ContentAlignment.BottomLeft;
       // 
       // distanceViewHost
       // 
-      this.distanceViewHost.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
-                  | System.Windows.Forms.AnchorStyles.Left)
-                  | System.Windows.Forms.AnchorStyles.Right)));
       this.distanceViewHost.BackColor = System.Drawing.Color.Transparent;
       this.distanceViewHost.Caption = "View";
       this.distanceViewHost.Content = null;
-      this.distanceViewHost.Location = new System.Drawing.Point(3, 1);
+      this.distanceViewHost.Dock = System.Windows.Forms.DockStyle.Left;
+      this.distanceViewHost.Location = new System.Drawing.Point(102, 23);
       this.distanceViewHost.Name = "distanceViewHost";
       this.distanceViewHost.ReadOnly = false;
-      this.distanceViewHost.Size = new System.Drawing.Size(402, 35);
-      this.distanceViewHost.TabIndex = 6;
+      this.distanceViewHost.Size = new System.Drawing.Size(281, 14);
+      this.distanceViewHost.TabIndex = 7;
       this.distanceViewHost.ViewType = null;
-      // 
-      // tabPage2
-      // 
-      this.tabPage2.Controls.Add(this.overloadViewHost);
-      this.tabPage2.Location = new System.Drawing.Point(4, 22);
-      this.tabPage2.Name = "tabPage2";
-      this.tabPage2.Size = new System.Drawing.Size(408, 37);
-      this.tabPage2.TabIndex = 1;
-      this.tabPage2.Text = "Overload";
-      this.tabPage2.UseVisualStyleBackColor = true;
-      // 
-      // overloadViewHost
-      // 
-      this.overloadViewHost.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
-                  | System.Windows.Forms.AnchorStyles.Left)
-                  | System.Windows.Forms.AnchorStyles.Right)));
-      this.overloadViewHost.BackColor = System.Drawing.Color.Transparent;
-      this.overloadViewHost.Caption = "View";
-      this.overloadViewHost.Content = null;
-      this.overloadViewHost.Location = new System.Drawing.Point(3, 2);
-      this.overloadViewHost.Name = "overloadViewHost";
-      this.overloadViewHost.ReadOnly = false;
-      this.overloadViewHost.Size = new System.Drawing.Size(402, 35);
-      this.overloadViewHost.TabIndex = 4;
-      this.overloadViewHost.ViewType = null;
-      // 
-      // tabPage3
-      // 
-      this.tabPage3.Controls.Add(this.tardinessViewHost);
-      this.tabPage3.Location = new System.Drawing.Point(4, 22);
-      this.tabPage3.Name = "tabPage3";
-      this.tabPage3.Size = new System.Drawing.Size(408, 37);
-      this.tabPage3.TabIndex = 2;
-      this.tabPage3.Text = "Tardiness";
-      this.tabPage3.UseVisualStyleBackColor = true;
-      // 
-      // tardinessViewHost
-      // 
-      this.tardinessViewHost.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
-                  | System.Windows.Forms.AnchorStyles.Left)
-                  | System.Windows.Forms.AnchorStyles.Right)));
-      this.tardinessViewHost.Caption = "View";
-      this.tardinessViewHost.Content = null;
-      this.tardinessViewHost.Location = new System.Drawing.Point(2, 1);
-      this.tardinessViewHost.Name = "tardinessViewHost";
-      this.tardinessViewHost.ReadOnly = false;
-      this.tardinessViewHost.Size = new System.Drawing.Size(404, 35);
-      this.tardinessViewHost.TabIndex = 2;
-      this.tardinessViewHost.ViewType = null;
-      // 
-      // tabPage4
-      // 
-      this.tabPage4.Controls.Add(this.travelTimeViewHost);
-      this.tabPage4.Location = new System.Drawing.Point(4, 22);
-      this.tabPage4.Name = "tabPage4";
-      this.tabPage4.Size = new System.Drawing.Size(408, 37);
-      this.tabPage4.TabIndex = 3;
-      this.tabPage4.Text = "TravelTime";
-      this.tabPage4.UseVisualStyleBackColor = true;
-      // 
-      // travelTimeViewHost
-      // 
-      this.travelTimeViewHost.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
-                  | System.Windows.Forms.AnchorStyles.Left)
-                  | System.Windows.Forms.AnchorStyles.Right)));
-      this.travelTimeViewHost.Caption = "View";
-      this.travelTimeViewHost.Content = null;
-      this.travelTimeViewHost.Location = new System.Drawing.Point(2, 1);
-      this.travelTimeViewHost.Name = "travelTimeViewHost";
-      this.travelTimeViewHost.ReadOnly = false;
-      this.travelTimeViewHost.Size = new System.Drawing.Size(404, 35);
-      this.travelTimeViewHost.TabIndex = 2;
-      this.travelTimeViewHost.ViewType = null;
-      // 
-      // tabPage5
-      // 
-      this.tabPage5.Controls.Add(this.vehicleUtilizationViewHost);
-      this.tabPage5.Location = new System.Drawing.Point(4, 22);
-      this.tabPage5.Name = "tabPage5";
-      this.tabPage5.Size = new System.Drawing.Size(408, 37);
-      this.tabPage5.TabIndex = 4;
-      this.tabPage5.Text = "Vehicle utilization";
-      this.tabPage5.UseVisualStyleBackColor = true;
-      // 
-      // vehicleUtilizationViewHost
-      // 
-      this.vehicleUtilizationViewHost.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
-                  | System.Windows.Forms.AnchorStyles.Left)
-                  | System.Windows.Forms.AnchorStyles.Right)));
-      this.vehicleUtilizationViewHost.Caption = "View";
-      this.vehicleUtilizationViewHost.Content = null;
-      this.vehicleUtilizationViewHost.Location = new System.Drawing.Point(2, 1);
-      this.vehicleUtilizationViewHost.Name = "vehicleUtilizationViewHost";
-      this.vehicleUtilizationViewHost.ReadOnly = false;
-      this.vehicleUtilizationViewHost.Size = new System.Drawing.Size(404, 35);
-      this.vehicleUtilizationViewHost.TabIndex = 2;
-      this.vehicleUtilizationViewHost.ViewType = null;
       // 
       // VRPSolutionView
@@ -347,5 +347,5 @@
       this.Controls.Add(this.splitContainer);
       this.Name = "VRPSolutionView";
-      this.Size = new System.Drawing.Size(423, 402);
+      this.Size = new System.Drawing.Size(423, 558);
       ((System.ComponentModel.ISupportInitialize)(this.pictureBox)).EndInit();
       this.tabControl.ResumeLayout(false);
@@ -356,11 +356,6 @@
       this.splitContainer.Panel2.ResumeLayout(false);
       this.splitContainer.ResumeLayout(false);
-      this.tabControl1.ResumeLayout(false);
-      this.tabPage1.ResumeLayout(false);
-      this.tabPage6.ResumeLayout(false);
-      this.tabPage2.ResumeLayout(false);
-      this.tabPage3.ResumeLayout(false);
-      this.tabPage4.ResumeLayout(false);
-      this.tabPage5.ResumeLayout(false);
+      this.tableLayoutPanel1.ResumeLayout(false);
+      this.tableLayoutPanel1.PerformLayout();
       this.ResumeLayout(false);
 
@@ -376,16 +371,16 @@
     private HeuristicLab.MainForm.WindowsForms.ViewHost tourViewHost;
     private System.Windows.Forms.SplitContainer splitContainer;
-    private System.Windows.Forms.TabControl tabControl1;
-    private System.Windows.Forms.TabPage tabPage1;
-    private System.Windows.Forms.TabPage tabPage2;
-    private System.Windows.Forms.TabPage tabPage3;
+    private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
+    private System.Windows.Forms.Label label1;
+    private HeuristicLab.MainForm.WindowsForms.ViewHost travelTimeViewHost;
+    private System.Windows.Forms.Label label6;
     private HeuristicLab.MainForm.WindowsForms.ViewHost tardinessViewHost;
-    private System.Windows.Forms.TabPage tabPage4;
-    private HeuristicLab.MainForm.WindowsForms.ViewHost travelTimeViewHost;
-    private System.Windows.Forms.TabPage tabPage5;
+    private System.Windows.Forms.Label label5;
+    private HeuristicLab.MainForm.WindowsForms.ViewHost overloadViewHost;
+    private System.Windows.Forms.Label label4;
     private HeuristicLab.MainForm.WindowsForms.ViewHost vehicleUtilizationViewHost;
-    private HeuristicLab.MainForm.WindowsForms.ViewHost overloadViewHost;
+    private System.Windows.Forms.Label label3;
+    private System.Windows.Forms.Label label2;
     private HeuristicLab.MainForm.WindowsForms.ViewHost qualityViewHost;
-    private System.Windows.Forms.TabPage tabPage6;
     private HeuristicLab.MainForm.WindowsForms.ViewHost distanceViewHost;
 
Index: /trunk/sources/HeuristicLab.Problems.VehicleRouting.Views/3.3/VRPSolutionView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.VehicleRouting.Views/3.3/VRPSolutionView.cs	(revision 4014)
+++ /trunk/sources/HeuristicLab.Problems.VehicleRouting.Views/3.3/VRPSolutionView.cs	(revision 4015)
@@ -97,5 +97,5 @@
     protected override void SetEnabledStateOfControls() {
       base.SetEnabledStateOfControls();
-      tabControl1.Enabled = Content != null;
+      tableLayoutPanel1.Enabled = Content != null;
       pictureBox.Enabled = Content != null;
       tourGroupBox.Enabled = Content != null;
@@ -108,5 +108,18 @@
         } else {
           DoubleMatrix coordinates = Content.Coordinates;
+          DoubleMatrix distanceMatrix = Content.DistanceMatrix;
+          BoolValue useDistanceMatrix = Content.UseDistanceMatrix;
+          DoubleArray dueTime = Content.DueTime;
+          DoubleArray serviceTime = Content.ServiceTime;
+          DoubleArray readyTime = Content.ReadyTime;
+
           Bitmap bitmap = new Bitmap(pictureBox.Width, pictureBox.Height);
+
+          Pen[] pens = {new Pen(Color.FromArgb(92,20,237)), new Pen(Color.FromArgb(237,183,20)), new Pen(Color.FromArgb(237,20,219)), new Pen(Color.FromArgb(20,237,76)),
+                    new Pen(Color.FromArgb(237,61,20)), new Pen(Color.FromArgb(115,78,26)), new Pen(Color.FromArgb(20,237,229)), new Pen(Color.FromArgb(39,101,19)),
+                    new Pen(Color.FromArgb(230,170,229)), new Pen(Color.FromArgb(142,136,89)), new Pen(Color.FromArgb(157,217,166)), new Pen(Color.FromArgb(31,19,101)),
+                    new Pen(Color.FromArgb(173,237,20)), new Pen(Color.FromArgb(230,231,161)), new Pen(Color.FromArgb(142,89,89)), new Pen(Color.FromArgb(93,89,142)),
+                    new Pen(Color.FromArgb(146,203,217)), new Pen(Color.FromArgb(101,19,75)), new Pen(Color.FromArgb(198,20,237)), new Pen(Color.FromArgb(185,185,185)),
+                    new Pen(Color.FromArgb(179,32,32)), new Pen(Color.FromArgb(18,119,115)), new Pen(Color.FromArgb(104,158,239)), new Pen(Color.Black)};
 
           if ((coordinates != null) && (coordinates.Rows > 0) && (coordinates.Columns == 2)) {
@@ -123,24 +136,49 @@
             double yStep = yMax != yMin ? (pictureBox.Height - 2 * border) / (yMax - yMin) : 1;
 
-            Point[] points = new Point[coordinates.Rows];
-            for (int i = 0; i < coordinates.Rows; i++)
-              points[i] = new Point(border + ((int)((coordinates[i, 0] - xMin) * xStep)),
-                                    bitmap.Height - (border + ((int)((coordinates[i, 1] - yMin) * yStep))));
-
             using (Graphics graphics = Graphics.FromImage(bitmap)) {
               if (Content.Solution != null) {
+                int currentTour = 0;
                 foreach (Tour tour in Content.Solution.Tours) {
+                  double t = 0.0;
                   Point[] tourPoints = new Point[tour.Count];
+                  int lastCustomer = 0;
+
                   for (int i = 0; i < tour.Count; i++) {
-                    tourPoints[i] = points[tour[i].Value];
+                    int customer = tour[i].Value;
+
+                    Point customerPoint = new Point(border + ((int)((coordinates[customer, 0] - xMin) * xStep)),
+                                    bitmap.Height - (border + ((int)((coordinates[customer, 1] - yMin) * yStep))));
+                    tourPoints[i] = customerPoint;
+
+                    if (i > 0) {
+                      Brush customerBrush = Brushes.Black;
+
+                      t += VehicleRoutingProblem.GetDistance(
+                        lastCustomer, customer, coordinates, distanceMatrix, useDistanceMatrix);
+
+                      if (t < readyTime[customer]) {
+                        t = readyTime[customer];
+                        customerBrush = Brushes.Yellow;
+                      } else if (t > dueTime[customer]) {
+                        customerBrush = Brushes.Red;
+                      }
+
+                      t += serviceTime[customer];
+
+                      graphics.FillRectangle(customerBrush, customerPoint.X - 2, customerPoint.Y - 2, 6, 6);
+                    }
+                    lastCustomer = customer;
                   }
-                  graphics.DrawPolygon(Pens.Black, tourPoints);
+
+                  graphics.DrawPolygon(pens[((currentTour >= pens.Length) ? (pens.Length - 1) : (currentTour))], tourPoints);
+                  currentTour++;
                 }
-              }
-
-              for (int i = 0; i < points.Length; i++)
-                graphics.FillRectangle(Brushes.Red, points[i].X - 2, points[i].Y - 2, 6, 6);
+              }               
             }
           }
+
+          for (int i = 0; i < pens.Length; i++)
+            pens[i].Dispose();
+
           pictureBox.Image = bitmap;
         }
Index: /trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Analyzers/BestVRPSolutionAnalyzer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Analyzers/BestVRPSolutionAnalyzer.cs	(revision 4014)
+++ /trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Analyzers/BestVRPSolutionAnalyzer.cs	(revision 4015)
@@ -41,6 +41,21 @@
       get { return (ScopeTreeLookupParameter<IVRPEncoding>)Parameters["VRPSolution"]; }
     }
+    public ILookupParameter<DoubleMatrix> DistanceMatrixParameter {
+      get { return (ILookupParameter<DoubleMatrix>)Parameters["DistanceMatrix"]; }
+    }
+    public ILookupParameter<BoolValue> UseDistanceMatrixParameter {
+      get { return (ILookupParameter<BoolValue>)Parameters["UseDistanceMatrix"]; }
+    }
     public LookupParameter<DoubleMatrix> CoordinatesParameter {
       get { return (LookupParameter<DoubleMatrix>)Parameters["Coordinates"]; }
+    }
+    public ILookupParameter<DoubleArray> ReadyTimeParameter {
+      get { return (ILookupParameter<DoubleArray>)Parameters["ReadyTime"]; }
+    }
+    public ILookupParameter<DoubleArray> DueTimeParameter {
+      get { return (ILookupParameter<DoubleArray>)Parameters["DueTime"]; }
+    }
+    public ILookupParameter<DoubleArray> ServiceTimeParameter {
+      get { return (ILookupParameter<DoubleArray>)Parameters["ServiceTime"]; }
     }
     public ScopeTreeLookupParameter<DoubleValue> QualityParameter {
@@ -73,4 +88,10 @@
       Parameters.Add(new ScopeTreeLookupParameter<IVRPEncoding>("VRPSolution", "The VRP solutions which should be evaluated."));
       Parameters.Add(new LookupParameter<DoubleMatrix>("Coordinates", "The x- and y-Coordinates of the cities."));
+      Parameters.Add(new LookupParameter<DoubleMatrix>("DistanceMatrix", "The matrix which contains the distances between the cities."));
+      Parameters.Add(new LookupParameter<BoolValue>("UseDistanceMatrix", "True if a distance matrix should be calculated and used for evaluation, otherwise false."));
+      Parameters.Add(new LookupParameter<DoubleArray>("ReadyTime", "The ready time of each customer."));
+      Parameters.Add(new LookupParameter<DoubleArray>("DueTime", "The due time of each customer."));
+      Parameters.Add(new LookupParameter<DoubleArray>("ServiceTime", "The service time of each customer."));
+
       Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("Quality", "The qualities of the VRP solutions which should be analyzed."));
       Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("Distance", "The distances of the VRP solutions which should be analyzed."));
@@ -101,5 +122,7 @@
         solution = new VRPSolution(coordinates, best.Clone() as IVRPEncoding, new DoubleValue(qualities[i].Value),
           new DoubleValue(distances[i].Value), new DoubleValue(overloads[i].Value), new DoubleValue(tardinesses[i].Value),
-          new DoubleValue(travelTimes[i].Value), new DoubleValue(vehiclesUtilizations[i].Value));
+          new DoubleValue(travelTimes[i].Value), new DoubleValue(vehiclesUtilizations[i].Value), 
+          DistanceMatrixParameter.ActualValue, UseDistanceMatrixParameter.ActualValue, 
+          ReadyTimeParameter.ActualValue, DueTimeParameter.ActualValue, ServiceTimeParameter.ActualValue);
         BestSolutionParameter.ActualValue = solution;
         results.Add(new Result("Best VRP Solution", solution));
@@ -114,7 +137,9 @@
           solution.TravelTime.Value = travelTimes[i].Value;
           solution.VehicleUtilization.Value = vehiclesUtilizations[i].Value;
-
-          if (solution.Quality.Value < solution.Distance.Value) {
-          }
+          solution.DistanceMatrix = DistanceMatrixParameter.ActualValue;
+          solution.UseDistanceMatrix = UseDistanceMatrixParameter.ActualValue;
+          solution.ReadyTime = ReadyTimeParameter.ActualValue;
+          solution.DueTime = DueTimeParameter.ActualValue;
+          solution.ServiceTime = ServiceTimeParameter.ActualValue;
         }
       }
Index: /trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Evaluators/VRPEvaluator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Evaluators/VRPEvaluator.cs	(revision 4014)
+++ /trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Evaluators/VRPEvaluator.cs	(revision 4015)
@@ -143,48 +143,4 @@
     }
 
-    private static double CalculateDistance(int start, int end, DoubleMatrix coordinates) {
-      double distance = 0.0;
-
-      distance =
-          Math.Sqrt(
-            Math.Pow(coordinates[start, 0] - coordinates[end, 0], 2) +
-            Math.Pow(coordinates[start, 1] - coordinates[end, 1], 2));
-
-      return distance;
-    }
-
-    private static DoubleMatrix CreateDistanceMatrix(DoubleMatrix coordinates) 
-    {
-      DoubleMatrix distanceMatrix = new DoubleMatrix(coordinates.Rows, coordinates.Rows);
-
-      for (int i = 0; i < distanceMatrix.Rows; i++) {
-        for (int j = i; j < distanceMatrix.Columns; j++) {
-          double distance = CalculateDistance(i, j, coordinates);
-
-          distanceMatrix[i, j] = distance;
-          distanceMatrix[j, i] = distance;
-        }
-      }
-
-      return distanceMatrix;
-    }
-
-    private static double GetDistance(int start, int end, 
-      DoubleMatrix coordinates, ILookupParameter<DoubleMatrix> distanceMatrix, BoolValue useDistanceMatrix) {
-      double distance = 0.0;
-
-      if (useDistanceMatrix.Value) {
-        if (distanceMatrix.ActualValue == null) {
-          distanceMatrix.ActualValue = CreateDistanceMatrix(coordinates);
-        }
-
-        distance = distanceMatrix.ActualValue[start, end];
-      } else {
-        distance = CalculateDistance(start, end, coordinates);
-      }
-
-      return distance;
-    }
-
     private static TourEvaluation EvaluateTour(Tour tour, DoubleArray dueTimeArray,
       DoubleArray serviceTimeArray, DoubleArray readyTimeArray, DoubleArray demandArray, DoubleValue capacity, 
@@ -210,5 +166,5 @@
 
         //drive there
-        double currentDistace = GetDistance(start, end, coordinates, distanceMatrix, useDistanceMatrix);
+        double currentDistace = VehicleRoutingProblem.GetDistance(start, end, coordinates, distanceMatrix, useDistanceMatrix);
         distance += currentDistace;
         time += currentDistace;
Index: /trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/MoveEvaluators/VRPMoveEvaluator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/MoveEvaluators/VRPMoveEvaluator.cs	(revision 4014)
+++ /trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/MoveEvaluators/VRPMoveEvaluator.cs	(revision 4015)
@@ -145,7 +145,4 @@
       MoveTravelTimeParameter.ActualValue = new DoubleValue(tourEval.TravelTime);
 
-      if (tourEval.Quality < tourEval.Distance) {
-      }
-
       return base.Apply();
     }
Index: /trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/VRPSolution.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/VRPSolution.cs	(revision 4014)
+++ /trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/VRPSolution.cs	(revision 4015)
@@ -142,4 +142,54 @@
       }
     }
+    [Storable]
+    private DoubleMatrix distanceMatrix;
+    public DoubleMatrix DistanceMatrix {
+      get { return distanceMatrix; }
+      set {
+        if (distanceMatrix != value) {
+          distanceMatrix = value;
+        }
+      }
+    }
+    [Storable]
+    private BoolValue useDistanceMatrix;
+    public BoolValue UseDistanceMatrix {
+      get { return useDistanceMatrix; }
+      set {
+        if (useDistanceMatrix != value) {
+          useDistanceMatrix = value;
+        }
+      }
+    }
+    [Storable]
+    private DoubleArray readyTime;
+    public DoubleArray ReadyTime {
+      get { return readyTime; }
+      set {
+        if (readyTime != value) {
+          readyTime = value;
+        }
+      }
+    }
+    [Storable]
+    private DoubleArray dueTime;
+    public DoubleArray DueTime {
+      get { return dueTime; }
+      set {
+        if (dueTime != value) {
+          dueTime = value;
+        }
+      }
+    }
+    [Storable]
+    private DoubleArray serviceTime;
+    public DoubleArray ServiceTime {
+      get { return serviceTime; }
+      set {
+        if (serviceTime != value) {
+          serviceTime = value;
+        }
+      }
+    }
 
     public VRPSolution() : base() { }
@@ -147,5 +197,6 @@
     public VRPSolution(DoubleMatrix coordinates, IVRPEncoding solution, DoubleValue quality, 
       DoubleValue distance, DoubleValue overload, DoubleValue tardiness, DoubleValue travelTime, 
-      DoubleValue vehicleUtilization)
+      DoubleValue vehicleUtilization, DoubleMatrix distanceMatrix, BoolValue useDistanceMatrix,
+      DoubleArray readyTime, DoubleArray dueTime, DoubleArray serviceTime)
       : base() {
       this.coordinates = coordinates;
@@ -157,4 +208,9 @@
       this.travelTime = travelTime;
       this.vehicleUtilization = vehicleUtilization;
+      this.distanceMatrix = distanceMatrix;
+      this.useDistanceMatrix = useDistanceMatrix;
+      this.readyTime = readyTime;
+      this.dueTime = dueTime;
+      this.serviceTime = serviceTime;
       Initialize();
     }
@@ -167,4 +223,9 @@
       if (solution != null) RegisterSolutionEvents();
       if (quality != null) RegisterQualityEvents();
+      if (distance != null) RegisterDistanceEvents();
+      if (overload != null) RegisterOverloadEvents();
+      if (tardiness != null) RegisterTardinessEvents();
+      if (travelTime != null) RegisterTravelTimeEvents();
+      if (vehicleUtilization != null) RegisterVehicleUtilizationEvents();
     }
 
@@ -180,4 +241,9 @@
       clone.travelTime = (DoubleValue)cloner.Clone(travelTime);
       clone.vehicleUtilization = (DoubleValue)cloner.Clone(vehicleUtilization);
+      clone.distanceMatrix = (DoubleMatrix)cloner.Clone(distanceMatrix);
+      clone.useDistanceMatrix = (BoolValue)cloner.Clone(useDistanceMatrix);
+      clone.readyTime = (DoubleArray)cloner.Clone(readyTime);
+      clone.dueTime = (DoubleArray)cloner.Clone(dueTime);
+      clone.serviceTime = (DoubleArray)cloner.Clone(serviceTime);
       clone.Initialize();
       return clone;
Index: /trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/VehicleRoutingProblem.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/VehicleRoutingProblem.cs	(revision 4014)
+++ /trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/VehicleRoutingProblem.cs	(revision 4015)
@@ -222,4 +222,60 @@
     }
 
+    private static double CalculateDistance(int start, int end, DoubleMatrix coordinates) {
+      double distance = 0.0;
+
+      distance =
+          Math.Sqrt(
+            Math.Pow(coordinates[start, 0] - coordinates[end, 0], 2) +
+            Math.Pow(coordinates[start, 1] - coordinates[end, 1], 2));
+
+      return distance;
+    }
+
+    private static DoubleMatrix CreateDistanceMatrix(DoubleMatrix coordinates) {
+      DoubleMatrix distanceMatrix = new DoubleMatrix(coordinates.Rows, coordinates.Rows);
+
+      for (int i = 0; i < distanceMatrix.Rows; i++) {
+        for (int j = i; j < distanceMatrix.Columns; j++) {
+          double distance = CalculateDistance(i, j, coordinates);
+
+          distanceMatrix[i, j] = distance;
+          distanceMatrix[j, i] = distance;
+        }
+      }
+
+      return distanceMatrix;
+    }
+
+    public static double GetDistance(int start, int end,
+      DoubleMatrix coordinates, ILookupParameter<DoubleMatrix> distanceMatrix, BoolValue useDistanceMatrix) {
+      double distance = 0.0;
+
+      if (useDistanceMatrix.Value) {
+        if (distanceMatrix.ActualValue == null) {
+          distanceMatrix.ActualValue = CreateDistanceMatrix(coordinates);
+        }
+
+        distance = distanceMatrix.ActualValue[start, end];
+      } else {
+        distance = CalculateDistance(start, end, coordinates);
+      }
+
+      return distance;
+    }
+
+    public static double GetDistance(int start, int end,
+      DoubleMatrix coordinates, DoubleMatrix distanceMatrix, BoolValue useDistanceMatrix) {
+      double distance = 0.0;
+
+      if (useDistanceMatrix.Value) {
+        distance = distanceMatrix[start, end];
+      } else {
+        distance = CalculateDistance(start, end, coordinates);
+      }
+
+      return distance;
+    }
+
     public void ImportFromSolomon(string solomonFileName) {
       SolomonParser parser = new SolomonParser(solomonFileName);
