Index: /trunk/sources/HeuristicLab.Problems.VehicleRouting.Views/3.3/VRPSolutionView.Designer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.VehicleRouting.Views/3.3/VRPSolutionView.Designer.cs	(revision 4184)
+++ /trunk/sources/HeuristicLab.Problems.VehicleRouting.Views/3.3/VRPSolutionView.Designer.cs	(revision 4185)
@@ -45,34 +45,38 @@
     /// </summary>
     private void InitializeComponent() {
-      this.pictureBox = new System.Windows.Forms.PictureBox();
       this.tabControl = new System.Windows.Forms.TabControl();
       this.visualizationTabPage = new System.Windows.Forms.TabPage();
+      this.pictureBox = new System.Windows.Forms.PictureBox();
       this.valueTabPage = new System.Windows.Forms.TabPage();
       this.tourGroupBox = new System.Windows.Forms.GroupBox();
       this.tourViewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
-      this.splitContainer = new System.Windows.Forms.SplitContainer();
-      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.label1 = new System.Windows.Forms.Label();
-      this.distanceViewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
-      ((System.ComponentModel.ISupportInitialize)(this.pictureBox)).BeginInit();
       this.tabControl.SuspendLayout();
       this.visualizationTabPage.SuspendLayout();
+      ((System.ComponentModel.ISupportInitialize)(this.pictureBox)).BeginInit();
       this.valueTabPage.SuspendLayout();
       this.tourGroupBox.SuspendLayout();
-      this.splitContainer.Panel1.SuspendLayout();
-      this.splitContainer.Panel2.SuspendLayout();
-      this.splitContainer.SuspendLayout();
-      this.tableLayoutPanel1.SuspendLayout();
       this.SuspendLayout();
+      // 
+      // tabControl
+      // 
+      this.tabControl.Controls.Add(this.visualizationTabPage);
+      this.tabControl.Controls.Add(this.valueTabPage);
+      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, 558);
+      this.tabControl.TabIndex = 1;
+      // 
+      // visualizationTabPage
+      // 
+      this.visualizationTabPage.Controls.Add(this.pictureBox);
+      this.visualizationTabPage.Location = new System.Drawing.Point(4, 22);
+      this.visualizationTabPage.Name = "visualizationTabPage";
+      this.visualizationTabPage.Padding = new System.Windows.Forms.Padding(3);
+      this.visualizationTabPage.Size = new System.Drawing.Size(415, 532);
+      this.visualizationTabPage.TabIndex = 0;
+      this.visualizationTabPage.Text = "Visualization";
+      this.visualizationTabPage.UseVisualStyleBackColor = true;
       // 
       // pictureBox
@@ -85,30 +89,8 @@
       this.pictureBox.Location = new System.Drawing.Point(6, 6);
       this.pictureBox.Name = "pictureBox";
-      this.pictureBox.Size = new System.Drawing.Size(403, 386);
+      this.pictureBox.Size = new System.Drawing.Size(403, 520);
       this.pictureBox.TabIndex = 0;
       this.pictureBox.TabStop = false;
       this.pictureBox.SizeChanged += new System.EventHandler(this.pictureBox_SizeChanged);
-      // 
-      // tabControl
-      // 
-      this.tabControl.Controls.Add(this.visualizationTabPage);
-      this.tabControl.Controls.Add(this.valueTabPage);
-      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, 424);
-      this.tabControl.TabIndex = 0;
-      // 
-      // visualizationTabPage
-      // 
-      this.visualizationTabPage.Controls.Add(this.pictureBox);
-      this.visualizationTabPage.Location = new System.Drawing.Point(4, 22);
-      this.visualizationTabPage.Name = "visualizationTabPage";
-      this.visualizationTabPage.Padding = new System.Windows.Forms.Padding(3);
-      this.visualizationTabPage.Size = new System.Drawing.Size(415, 398);
-      this.visualizationTabPage.TabIndex = 0;
-      this.visualizationTabPage.Text = "Visualization";
-      this.visualizationTabPage.UseVisualStyleBackColor = true;
       // 
       // valueTabPage
@@ -148,214 +130,16 @@
       this.tourViewHost.ViewType = null;
       // 
-      // splitContainer
-      // 
-      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";
-      this.splitContainer.Orientation = System.Windows.Forms.Orientation.Horizontal;
-      // 
-      // splitContainer.Panel1
-      // 
-      this.splitContainer.Panel1.Controls.Add(this.tableLayoutPanel1);
-      // 
-      // splitContainer.Panel2
-      // 
-      this.splitContainer.Panel2.Controls.Add(this.tabControl);
-      this.splitContainer.Size = new System.Drawing.Size(423, 558);
-      this.splitContainer.SplitterDistance = 130;
-      this.splitContainer.TabIndex = 0;
-      // 
-      // 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.BackColor = System.Drawing.Color.Transparent;
-      this.qualityViewHost.Caption = "View";
-      this.qualityViewHost.Content = null;
-      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(281, 14);
-      this.qualityViewHost.TabIndex = 8;
-      this.qualityViewHost.ViewType = null;
-      // 
-      // 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.BackColor = System.Drawing.Color.Transparent;
-      this.distanceViewHost.Caption = "View";
-      this.distanceViewHost.Content = null;
-      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(281, 14);
-      this.distanceViewHost.TabIndex = 7;
-      this.distanceViewHost.ViewType = null;
-      // 
       // VRPSolutionView
       // 
       this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
       this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-      this.Controls.Add(this.splitContainer);
+      this.Controls.Add(this.tabControl);
       this.Name = "VRPSolutionView";
       this.Size = new System.Drawing.Size(423, 558);
-      ((System.ComponentModel.ISupportInitialize)(this.pictureBox)).EndInit();
       this.tabControl.ResumeLayout(false);
       this.visualizationTabPage.ResumeLayout(false);
+      ((System.ComponentModel.ISupportInitialize)(this.pictureBox)).EndInit();
       this.valueTabPage.ResumeLayout(false);
       this.tourGroupBox.ResumeLayout(false);
-      this.splitContainer.Panel1.ResumeLayout(false);
-      this.splitContainer.Panel2.ResumeLayout(false);
-      this.splitContainer.ResumeLayout(false);
-      this.tableLayoutPanel1.ResumeLayout(false);
-      this.tableLayoutPanel1.PerformLayout();
       this.ResumeLayout(false);
 
@@ -364,24 +148,11 @@
     #endregion
 
-    private System.Windows.Forms.PictureBox pictureBox;
     private System.Windows.Forms.TabControl tabControl;
     private System.Windows.Forms.TabPage visualizationTabPage;
+    private System.Windows.Forms.PictureBox pictureBox;
     private System.Windows.Forms.TabPage valueTabPage;
     private System.Windows.Forms.GroupBox tourGroupBox;
-    private HeuristicLab.MainForm.WindowsForms.ViewHost tourViewHost;
-    private System.Windows.Forms.SplitContainer splitContainer;
-    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.Label label5;
-    private HeuristicLab.MainForm.WindowsForms.ViewHost overloadViewHost;
-    private System.Windows.Forms.Label label4;
-    private HeuristicLab.MainForm.WindowsForms.ViewHost vehicleUtilizationViewHost;
-    private System.Windows.Forms.Label label3;
-    private System.Windows.Forms.Label label2;
-    private HeuristicLab.MainForm.WindowsForms.ViewHost qualityViewHost;
-    private HeuristicLab.MainForm.WindowsForms.ViewHost distanceViewHost;
+    private MainForm.WindowsForms.ViewHost tourViewHost;
+
 
 
Index: /trunk/sources/HeuristicLab.Problems.VehicleRouting.Views/3.3/VRPSolutionView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.VehicleRouting.Views/3.3/VRPSolutionView.cs	(revision 4184)
+++ /trunk/sources/HeuristicLab.Problems.VehicleRouting.Views/3.3/VRPSolutionView.cs	(revision 4185)
@@ -45,13 +45,10 @@
     public VRPSolutionView() {
       InitializeComponent();
+
+      ToolTip tt = new ToolTip();
+      tt.SetToolTip(pictureBox, "Legend: Blue = Depot, Black = City (OK), Orange = City (too early), Red = City (too late)");
     }
 
     protected override void DeregisterContentEvents() {
-      Content.QualityChanged -= new EventHandler(Content_QualityChanged);
-      Content.DistanceChanged -= new EventHandler(Content_DistanceChanged);
-      Content.OverloadChanged -= new EventHandler(Content_OverloadChanged);
-      Content.TardinessChanged -= new EventHandler(Content_TardinessChanged);
-      Content.TravelTimeChanged -= new EventHandler(Content_TravelTimeChanged);
-      Content.VehicleUtilizationChanged -= new EventHandler(Content_VehicleUtilizationChanged);
       Content.CoordinatesChanged -= new EventHandler(Content_CoordinatesChanged);
       Content.SolutionChanged -= new EventHandler(Content_SolutionChanged);
@@ -60,10 +57,4 @@
     protected override void RegisterContentEvents() {
       base.RegisterContentEvents();
-      Content.QualityChanged += new EventHandler(Content_QualityChanged);
-      Content.DistanceChanged += new EventHandler(Content_DistanceChanged);
-      Content.OverloadChanged += new EventHandler(Content_OverloadChanged);
-      Content.TardinessChanged += new EventHandler(Content_TardinessChanged);
-      Content.TravelTimeChanged += new EventHandler(Content_TravelTimeChanged);
-      Content.VehicleUtilizationChanged += new EventHandler(Content_VehicleUtilizationChanged);
       Content.CoordinatesChanged += new EventHandler(Content_CoordinatesChanged);
       Content.SolutionChanged += new EventHandler(Content_SolutionChanged);
@@ -75,11 +66,4 @@
         pictureBox.Image = null;
       } else {
-        qualityViewHost.Content = Content.Quality;
-        distanceViewHost.Content = Content.Distance;
-        overloadViewHost.Content = Content.Overload;
-        tardinessViewHost.Content = Content.Tardiness;
-        travelTimeViewHost.Content = Content.TravelTime;
-        vehicleUtilizationViewHost.Content = Content.VehicleUtilization;
-
         GenerateImage();
         tourViewHost.Content = Content.Solution;
@@ -94,5 +78,4 @@
     protected override void SetEnabledStateOfControls() {
       base.SetEnabledStateOfControls();
-      tableLayoutPanel1.Enabled = Content != null;
       pictureBox.Enabled = Content != null;
       tourGroupBox.Enabled = Content != null;
@@ -139,4 +122,5 @@
                   double t = 0.0;
                   Point[] tourPoints = new Point[tour.Cities.Count + 2];
+                  Brush[] customerBrushes = new Brush[tour.Cities.Count];
                   int lastCustomer = 0;
 
@@ -161,5 +145,5 @@
                       if (t < readyTime[location]) {
                         t = readyTime[location];
-                        customerBrush = Brushes.Yellow;
+                        customerBrush = Brushes.Orange;
                       } else if (t > dueTime[location]) {
                         customerBrush = Brushes.Red;
@@ -167,6 +151,5 @@
 
                       t += serviceTime[location];
-
-                      graphics.FillRectangle(customerBrush, locationPoint.X - 2, locationPoint.Y - 2, 6, 6);
+                      customerBrushes[i] = customerBrush;
                     }
                     lastCustomer = location;
@@ -174,6 +157,26 @@
 
                   graphics.DrawPolygon(pens[((currentTour >= pens.Length) ? (pens.Length - 1) : (currentTour))], tourPoints);
+
+                  for (int i = 0; i < tour.Cities.Count; i++) {
+                    graphics.FillRectangle(customerBrushes[i], tourPoints[i + 1].X - 3, tourPoints[i + 1].Y - 3, 6, 6);
+                  }
+
+                  graphics.FillEllipse(Brushes.Blue, tourPoints[0].X - 5, tourPoints[0].Y - 5, 10, 10);
+
                   currentTour++;
                 }
+              } else {
+                Point locationPoint;
+                //just draw customers
+                for (int i = 1; i < coordinates.Rows; i++) {
+                  locationPoint = new Point(border + ((int)((coordinates[i, 0] - xMin) * xStep)),
+                                  bitmap.Height - (border + ((int)((coordinates[i, 1] - yMin) * yStep))));
+
+                  graphics.FillRectangle(Brushes.Black, locationPoint.X - 3, locationPoint.Y - 3, 6, 6);
+                }
+
+                locationPoint = new Point(border + ((int)((coordinates[0, 0] - xMin) * xStep)),
+                                  bitmap.Height - (border + ((int)((coordinates[0, 1] - yMin) * yStep))));
+                graphics.FillEllipse(Brushes.Blue, locationPoint.X - 5, locationPoint.Y - 5, 10, 10);
               }
             }
@@ -188,16 +191,4 @@
     }
 
-    private void Content_QualityChanged(object sender, EventArgs e) {
-      if (InvokeRequired)
-        Invoke(new EventHandler(Content_QualityChanged), sender, e);
-      else
-        qualityViewHost.Content = Content.Quality;
-    }
-    void Content_DistanceChanged(object sender, EventArgs e) {
-      if (InvokeRequired)
-        Invoke(new EventHandler(Content_DistanceChanged), sender, e);
-      else
-        distanceViewHost.Content = Content.Distance;
-    }
     private void Content_CoordinatesChanged(object sender, EventArgs e) {
       if (InvokeRequired)
@@ -205,28 +196,4 @@
       else
         GenerateImage();
-    }
-    void Content_OverloadChanged(object sender, EventArgs e) {
-      if (InvokeRequired)
-        Invoke(new EventHandler(Content_OverloadChanged), sender, e);
-      else
-        overloadViewHost.Content = Content.Overload;
-    }
-    void Content_TardinessChanged(object sender, EventArgs e) {
-      if (InvokeRequired)
-        Invoke(new EventHandler(Content_TardinessChanged), sender, e);
-      else
-        tardinessViewHost.Content = Content.Tardiness;
-    }
-    void Content_TravelTimeChanged(object sender, EventArgs e) {
-      if (InvokeRequired)
-        Invoke(new EventHandler(Content_TravelTimeChanged), sender, e);
-      else
-        travelTimeViewHost.Content = Content.TravelTime;
-    }
-    void Content_VehicleUtilizationChanged(object sender, EventArgs e) {
-      if (InvokeRequired)
-        Invoke(new EventHandler(Content_VehicleUtilizationChanged), sender, e);
-      else
-        vehicleUtilizationViewHost.Content = Content.VehicleUtilization;
     }
     private void Content_SolutionChanged(object sender, EventArgs e) {
Index: /trunk/sources/HeuristicLab.Problems.VehicleRouting.Views/3.3/VehicleRoutingProblemView.Designer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.VehicleRouting.Views/3.3/VehicleRoutingProblemView.Designer.cs	(revision 4184)
+++ /trunk/sources/HeuristicLab.Problems.VehicleRouting.Views/3.3/VehicleRoutingProblemView.Designer.cs	(revision 4185)
@@ -25,11 +25,14 @@
     private void InitializeComponent() {
       this.importButton = new System.Windows.Forms.Button();
+      this.tabControl1 = new System.Windows.Forms.TabControl();
+      this.tabPage1 = new System.Windows.Forms.TabPage();
+      this.parameterCollectionView = new HeuristicLab.Core.Views.ParameterCollectionView();
+      this.tabPage2 = new System.Windows.Forms.TabPage();
+      this.vrpSolutionView = new HeuristicLab.Problems.VehicleRouting.Views.VRPSolutionView();
       ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
+      this.tabControl1.SuspendLayout();
+      this.tabPage1.SuspendLayout();
+      this.tabPage2.SuspendLayout();
       this.SuspendLayout();
-      // 
-      // parameterCollectionView
-      // 
-      this.parameterCollectionView.Location = new System.Drawing.Point(0, 88);
-      this.parameterCollectionView.Size = new System.Drawing.Size(490, 334);
       // 
       // nameTextBox
@@ -50,10 +53,69 @@
       this.importButton.Click += new System.EventHandler(this.importButton_Click);
       // 
+      // 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.tabPage2);
+      this.tabControl1.Location = new System.Drawing.Point(0, 84);
+      this.tabControl1.Name = "tabControl1";
+      this.tabControl1.SelectedIndex = 0;
+      this.tabControl1.Size = new System.Drawing.Size(490, 338);
+      this.tabControl1.TabIndex = 6;
+      // 
+      // tabPage1
+      // 
+      this.tabPage1.Controls.Add(this.parameterCollectionView);
+      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(482, 312);
+      this.tabPage1.TabIndex = 0;
+      this.tabPage1.Text = "Parameters";
+      this.tabPage1.UseVisualStyleBackColor = true;
+      // 
+      // parameterCollectionView
+      // 
+      this.parameterCollectionView.Caption = "ParameterCollection View";
+      this.parameterCollectionView.Content = null;
+      this.parameterCollectionView.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.parameterCollectionView.Location = new System.Drawing.Point(3, 3);
+      this.parameterCollectionView.Name = "parameterCollectionView";
+      this.parameterCollectionView.ReadOnly = false;
+      this.parameterCollectionView.Size = new System.Drawing.Size(476, 306);
+      this.parameterCollectionView.TabIndex = 1;
+      // 
+      // tabPage2
+      // 
+      this.tabPage2.Controls.Add(this.vrpSolutionView);
+      this.tabPage2.Location = new System.Drawing.Point(4, 22);
+      this.tabPage2.Name = "tabPage2";
+      this.tabPage2.Padding = new System.Windows.Forms.Padding(3);
+      this.tabPage2.Size = new System.Drawing.Size(482, 312);
+      this.tabPage2.TabIndex = 1;
+      this.tabPage2.Text = "Visualization";
+      this.tabPage2.UseVisualStyleBackColor = true;
+      // 
+      // vrpSolutionView
+      // 
+      this.vrpSolutionView.Caption = "VRPSolution View";
+      this.vrpSolutionView.Content = null;
+      this.vrpSolutionView.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.vrpSolutionView.Location = new System.Drawing.Point(3, 3);
+      this.vrpSolutionView.Name = "vrpSolutionView";
+      this.vrpSolutionView.ReadOnly = false;
+      this.vrpSolutionView.Size = new System.Drawing.Size(476, 306);
+      this.vrpSolutionView.TabIndex = 0;
+      // 
       // VehicleRoutingProblemView
       // 
       this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
       this.Controls.Add(this.importButton);
+      this.Controls.Add(this.tabControl1);
       this.Name = "VehicleRoutingProblemView";
       this.Size = new System.Drawing.Size(490, 422);
+      this.Controls.SetChildIndex(this.tabControl1, 0);
       this.Controls.SetChildIndex(this.importButton, 0);
       this.Controls.SetChildIndex(this.nameTextBox, 0);
@@ -61,6 +123,8 @@
       this.Controls.SetChildIndex(this.descriptionLabel, 0);
       this.Controls.SetChildIndex(this.descriptionTextBox, 0);
-      this.Controls.SetChildIndex(this.parameterCollectionView, 0);
       ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit();
+      this.tabControl1.ResumeLayout(false);
+      this.tabPage1.ResumeLayout(false);
+      this.tabPage2.ResumeLayout(false);
       this.ResumeLayout(false);
       this.PerformLayout();
@@ -71,4 +135,9 @@
 
     private System.Windows.Forms.Button importButton;
+    private System.Windows.Forms.TabControl tabControl1;
+    private System.Windows.Forms.TabPage tabPage1;
+    private System.Windows.Forms.TabPage tabPage2;
+    private Core.Views.ParameterCollectionView parameterCollectionView;
+    private VRPSolutionView vrpSolutionView;
   }
 }
Index: /trunk/sources/HeuristicLab.Problems.VehicleRouting.Views/3.3/VehicleRoutingProblemView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.VehicleRouting.Views/3.3/VehicleRoutingProblemView.cs	(revision 4184)
+++ /trunk/sources/HeuristicLab.Problems.VehicleRouting.Views/3.3/VehicleRoutingProblemView.cs	(revision 4185)
@@ -24,9 +24,11 @@
 using HeuristicLab.MainForm;
 using HeuristicLab.Optimization.Views;
+using HeuristicLab.Core.Views;
+using HeuristicLab.Core;
 
 namespace HeuristicLab.Problems.VehicleRouting.Views {
   [View("VehicleRouting Problem View")]
   [Content(typeof(VehicleRoutingProblem), true)]
-  public partial class VehicleRoutingProblemView : ProblemView {
+  public partial class VehicleRoutingProblemView : NamedItemView {
     public new VehicleRoutingProblem Content {
       get { return (VehicleRoutingProblem)base.Content; }
@@ -36,4 +38,31 @@
     public VehicleRoutingProblemView() {
       InitializeComponent();
+    }
+
+    protected override void DeregisterContentEvents() {
+      Content.CoordinatesParameter.ValueChanged -= new EventHandler(CoordinatesParameter_ValueChanged);
+      base.DeregisterContentEvents();
+    }
+    protected override void RegisterContentEvents() {
+      base.RegisterContentEvents();
+      Content.CoordinatesParameter.ValueChanged += new EventHandler(CoordinatesParameter_ValueChanged);
+    }
+
+    protected override void OnContentChanged() {
+      base.OnContentChanged();
+      if (Content == null) {
+        parameterCollectionView.Content = null;
+        vrpSolutionView.Content = null;
+      } else {
+        parameterCollectionView.Content = ((IParameterizedNamedItem)Content).Parameters;
+        vrpSolutionView.Content = new VRPSolution(Content.Coordinates);
+      }
+    }
+
+    protected override void SetEnabledStateOfControls() {
+      base.SetEnabledStateOfControls();
+      parameterCollectionView.Enabled = Content != null;
+      vrpSolutionView.Enabled = Content != null;
+      importButton.Enabled = Content != null && !ReadOnly;
     }
 
@@ -46,4 +75,8 @@
       }
     }
+
+    private void CoordinatesParameter_ValueChanged(object sender, EventArgs e) {
+      vrpSolutionView.Content.Coordinates = Content.Coordinates;
+    }
   }
 }
Index: /trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Analyzers/BestVRPSolutionAnalyzer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Analyzers/BestVRPSolutionAnalyzer.cs	(revision 4184)
+++ /trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Analyzers/BestVRPSolutionAnalyzer.cs	(revision 4185)
@@ -127,10 +127,10 @@
         BestSolutionParameter.ActualValue = solution;
         results.Add(new Result("Best VRP Solution", solution));
-        
+
+        results.Add(new Result("Best TravelTime", new DoubleValue(travelTimes[i].Value)));
         results.Add(new Result("Best Distance",  new DoubleValue(distances[i].Value)));
+        results.Add(new Result("Best VehicleUtilization", new DoubleValue(vehiclesUtilizations[i].Value)));
         results.Add(new Result("Best Overload",  new DoubleValue(overloads[i].Value)));
         results.Add(new Result("Best Tardiness",  new DoubleValue(tardinesses[i].Value)));
-        results.Add(new Result("Best TravelTime",  new DoubleValue(travelTimes[i].Value)));
-        results.Add(new Result("Best VehicleUtilization",  new DoubleValue(vehiclesUtilizations[i].Value)));
       } else {
         if (solution.Quality.Value > qualities[i].Value) {
Index: /trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/VRPSolution.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/VRPSolution.cs	(revision 4184)
+++ /trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/VRPSolution.cs	(revision 4185)
@@ -195,4 +195,8 @@
     public VRPSolution() : base() { }
 
+    public VRPSolution(DoubleMatrix coordinates): base() {
+      this.coordinates = coordinates;
+    }
+
     public VRPSolution(DoubleMatrix coordinates, IVRPEncoding solution, DoubleValue quality, 
       DoubleValue distance, DoubleValue overload, DoubleValue tardiness, DoubleValue travelTime, 
