Index: branches/OptimizationNetworks/HeuristicLab.Optimization.Networks.Views/3.3/InputPortView.Designer.cs
===================================================================
--- branches/OptimizationNetworks/HeuristicLab.Optimization.Networks.Views/3.3/InputPortView.Designer.cs	(revision 11431)
+++ branches/OptimizationNetworks/HeuristicLab.Optimization.Networks.Views/3.3/InputPortView.Designer.cs	(revision 11438)
@@ -45,24 +45,30 @@
     /// </summary>
     private void InitializeComponent() {
-      this.outputPortLabel = new System.Windows.Forms.Label();
-      this.outputPortTextBox = new System.Windows.Forms.TextBox();
+      this.outputPortGroupBox = new System.Windows.Forms.GroupBox();
+      this.outputPortView = new HeuristicLab.Optimization.Networks.Views.PortView();
       this.valueGroupBox.SuspendLayout();
       this.valuePanel.SuspendLayout();
       ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
+      this.outputPortGroupBox.SuspendLayout();
       this.SuspendLayout();
       // 
       // valueGroupBox
       // 
-      this.valueGroupBox.Location = new System.Drawing.Point(0, 52);
-      this.valueGroupBox.Size = new System.Drawing.Size(645, 465);
-      this.valueGroupBox.TabIndex = 5;
+      this.valueGroupBox.Location = new System.Drawing.Point(0, 129);
+      this.valueGroupBox.Size = new System.Drawing.Size(645, 388);
+      this.valueGroupBox.TabIndex = 6;
       // 
       // valuePanel
       // 
-      this.valuePanel.Size = new System.Drawing.Size(633, 440);
+      this.valuePanel.Size = new System.Drawing.Size(633, 363);
       // 
       // valueViewHost
       // 
-      this.valueViewHost.Size = new System.Drawing.Size(633, 440);
+      this.valueViewHost.Size = new System.Drawing.Size(633, 363);
+      // 
+      // pathTextBox
+      // 
+      this.pathTextBox.Location = new System.Drawing.Point(71, 26);
+      this.pathTextBox.Size = new System.Drawing.Size(549, 20);
       // 
       // nameTextBox
@@ -70,45 +76,49 @@
       this.errorProvider.SetIconAlignment(this.nameTextBox, System.Windows.Forms.ErrorIconAlignment.MiddleLeft);
       this.errorProvider.SetIconPadding(this.nameTextBox, 2);
-      this.nameTextBox.Location = new System.Drawing.Point(73, 0);
-      this.nameTextBox.Size = new System.Drawing.Size(547, 20);
+      this.nameTextBox.Location = new System.Drawing.Point(71, 0);
+      this.nameTextBox.Size = new System.Drawing.Size(549, 20);
       // 
-      // outputPortLabel
+      // outputPortGroupBox
       // 
-      this.outputPortLabel.AutoSize = true;
-      this.outputPortLabel.Location = new System.Drawing.Point(3, 29);
-      this.outputPortLabel.Name = "outputPortLabel";
-      this.outputPortLabel.Size = new System.Drawing.Size(64, 13);
-      this.outputPortLabel.TabIndex = 3;
-      this.outputPortLabel.Text = "&Output Port:";
+      this.outputPortGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+      this.outputPortGroupBox.Controls.Add(this.outputPortView);
+      this.outputPortGroupBox.Location = new System.Drawing.Point(0, 52);
+      this.outputPortGroupBox.Name = "outputPortGroupBox";
+      this.outputPortGroupBox.Size = new System.Drawing.Size(645, 71);
+      this.outputPortGroupBox.TabIndex = 5;
+      this.outputPortGroupBox.TabStop = false;
+      this.outputPortGroupBox.Text = "&Output Port";
+      this.outputPortGroupBox.DragDrop += new System.Windows.Forms.DragEventHandler(this.outputPortGroupBox_DragDrop);
+      this.outputPortGroupBox.DragEnter += new System.Windows.Forms.DragEventHandler(this.outputPortGroupBox_DragEnterOver);
+      this.outputPortGroupBox.DragOver += new System.Windows.Forms.DragEventHandler(this.outputPortGroupBox_DragEnterOver);
       // 
-      // outputPortTextBox
+      // outputPortView
       // 
-      this.outputPortTextBox.AllowDrop = true;
-      this.outputPortTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
-            | System.Windows.Forms.AnchorStyles.Right)));
-      this.outputPortTextBox.Location = new System.Drawing.Point(73, 26);
-      this.outputPortTextBox.Name = "outputPortTextBox";
-      this.outputPortTextBox.ReadOnly = true;
-      this.outputPortTextBox.Size = new System.Drawing.Size(547, 20);
-      this.outputPortTextBox.TabIndex = 4;
-      this.outputPortTextBox.DragDrop += new System.Windows.Forms.DragEventHandler(this.outputPortTextBox_DragDrop);
-      this.outputPortTextBox.DragEnter += new System.Windows.Forms.DragEventHandler(this.outputPortTextBox_DragEnterOver);
-      this.outputPortTextBox.DragOver += new System.Windows.Forms.DragEventHandler(this.outputPortTextBox_DragEnterOver);
+      this.outputPortView.Caption = "Port View";
+      this.outputPortView.Content = null;
+      this.outputPortView.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.outputPortView.Location = new System.Drawing.Point(3, 16);
+      this.outputPortView.Name = "outputPortView";
+      this.outputPortView.ReadOnly = true;
+      this.outputPortView.Size = new System.Drawing.Size(639, 52);
+      this.outputPortView.TabIndex = 0;
       // 
       // InputPortView
       // 
       this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
-      this.Controls.Add(this.outputPortTextBox);
-      this.Controls.Add(this.outputPortLabel);
+      this.Controls.Add(this.outputPortGroupBox);
       this.Name = "InputPortView";
+      this.Controls.SetChildIndex(this.pathLabel, 0);
+      this.Controls.SetChildIndex(this.pathTextBox, 0);
       this.Controls.SetChildIndex(this.nameLabel, 0);
       this.Controls.SetChildIndex(this.nameTextBox, 0);
       this.Controls.SetChildIndex(this.infoLabel, 0);
       this.Controls.SetChildIndex(this.valueGroupBox, 0);
-      this.Controls.SetChildIndex(this.outputPortLabel, 0);
-      this.Controls.SetChildIndex(this.outputPortTextBox, 0);
+      this.Controls.SetChildIndex(this.outputPortGroupBox, 0);
       this.valueGroupBox.ResumeLayout(false);
       this.valuePanel.ResumeLayout(false);
       ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit();
+      this.outputPortGroupBox.ResumeLayout(false);
       this.ResumeLayout(false);
       this.PerformLayout();
@@ -118,6 +128,6 @@
     #endregion
 
-    protected System.Windows.Forms.Label outputPortLabel;
-    protected System.Windows.Forms.TextBox outputPortTextBox;
+    protected System.Windows.Forms.GroupBox outputPortGroupBox;
+    protected PortView outputPortView;
 
 
Index: branches/OptimizationNetworks/HeuristicLab.Optimization.Networks.Views/3.3/InputPortView.cs
===================================================================
--- branches/OptimizationNetworks/HeuristicLab.Optimization.Networks.Views/3.3/InputPortView.cs	(revision 11431)
+++ branches/OptimizationNetworks/HeuristicLab.Optimization.Networks.Views/3.3/InputPortView.cs	(revision 11438)
@@ -39,12 +39,4 @@
     }
 
-    private void UpdateOutputPortTextBoxText() {
-      if ((Content == null) || (Content.OutputPort == null)) {
-        outputPortTextBox.Text = string.Empty;
-      } else {
-        outputPortTextBox.Text = Content.OutputPort.Path + "." + Content.OutputPort.ToString();
-      }
-    }
-
     protected override void DeregisterContentEvents() {
       Content.OutputPortChanged -= Content_OutputPortChanged;
@@ -58,10 +50,10 @@
     protected override void OnContentChanged() {
       base.OnContentChanged();
-      UpdateOutputPortTextBoxText();
+      outputPortView.Content = Content == null ? null : Content.OutputPort;
     }
 
     protected override void SetEnabledStateOfControls() {
       base.SetEnabledStateOfControls();
-      outputPortTextBox.Enabled = Content != null && !ReadOnly;
+      outputPortGroupBox.Enabled = Content != null && !ReadOnly;
     }
 
@@ -70,9 +62,9 @@
         Invoke(new EventHandler(Content_OutputPortChanged), sender, e);
       else {
-        UpdateOutputPortTextBoxText();
+        outputPortView.Content = Content.OutputPort;
       }
     }
 
-    protected virtual void outputPortTextBox_DragEnterOver(object sender, DragEventArgs e) {
+    protected virtual void outputPortGroupBox_DragEnterOver(object sender, DragEventArgs e) {
       e.Effect = DragDropEffects.None;
       if (!ReadOnly && (e.Data.GetData(HeuristicLab.Common.Constants.DragDropDataFormat) is IOutputPort)) {
@@ -80,5 +72,5 @@
       }
     }
-    protected virtual void outputPortTextBox_DragDrop(object sender, DragEventArgs e) {
+    protected virtual void outputPortGroupBox_DragDrop(object sender, DragEventArgs e) {
       if (e.Effect != DragDropEffects.None) {
         IOutputPort port = e.Data.GetData(HeuristicLab.Common.Constants.DragDropDataFormat) as IOutputPort;
Index: branches/OptimizationNetworks/HeuristicLab.Optimization.Networks.Views/3.3/PortView.Designer.cs
===================================================================
--- branches/OptimizationNetworks/HeuristicLab.Optimization.Networks.Views/3.3/PortView.Designer.cs	(revision 11431)
+++ branches/OptimizationNetworks/HeuristicLab.Optimization.Networks.Views/3.3/PortView.Designer.cs	(revision 11438)
@@ -45,4 +45,6 @@
     /// </summary>
     private void InitializeComponent() {
+      this.pathLabel = new System.Windows.Forms.Label();
+      this.pathTextBox = new System.Windows.Forms.TextBox();
       ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
       this.SuspendLayout();
@@ -59,7 +61,28 @@
       this.infoLabel.Location = new System.Drawing.Point(626, 3);
       // 
+      // pathLabel
+      // 
+      this.pathLabel.AutoSize = true;
+      this.pathLabel.Location = new System.Drawing.Point(3, 29);
+      this.pathLabel.Name = "pathLabel";
+      this.pathLabel.Size = new System.Drawing.Size(32, 13);
+      this.pathLabel.TabIndex = 3;
+      this.pathLabel.Text = "&Path:";
+      // 
+      // pathTextBox
+      // 
+      this.pathTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+      this.pathTextBox.Location = new System.Drawing.Point(69, 26);
+      this.pathTextBox.Name = "pathTextBox";
+      this.pathTextBox.ReadOnly = true;
+      this.pathTextBox.Size = new System.Drawing.Size(551, 20);
+      this.pathTextBox.TabIndex = 4;
+      // 
       // PortView
       // 
       this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
+      this.Controls.Add(this.pathTextBox);
+      this.Controls.Add(this.pathLabel);
       this.Name = "PortView";
       this.Size = new System.Drawing.Size(645, 517);
@@ -67,4 +90,6 @@
       this.Controls.SetChildIndex(this.nameTextBox, 0);
       this.Controls.SetChildIndex(this.infoLabel, 0);
+      this.Controls.SetChildIndex(this.pathLabel, 0);
+      this.Controls.SetChildIndex(this.pathTextBox, 0);
       ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit();
       this.ResumeLayout(false);
@@ -75,4 +100,7 @@
     #endregion
 
+    protected System.Windows.Forms.Label pathLabel;
+    protected System.Windows.Forms.TextBox pathTextBox;
+
 
   }
Index: branches/OptimizationNetworks/HeuristicLab.Optimization.Networks.Views/3.3/PortView.cs
===================================================================
--- branches/OptimizationNetworks/HeuristicLab.Optimization.Networks.Views/3.3/PortView.cs	(revision 11431)
+++ branches/OptimizationNetworks/HeuristicLab.Optimization.Networks.Views/3.3/PortView.cs	(revision 11438)
@@ -20,5 +20,4 @@
 #endregion
 
-using HeuristicLab.Common;
 using HeuristicLab.Core.Views;
 using HeuristicLab.MainForm;
@@ -39,4 +38,31 @@
       InitializeComponent();
     }
+
+    protected override void DeregisterContentEvents() {
+      Content.PathChanged -= Content_PathChanged;
+      base.DeregisterContentEvents();
+    }
+    protected override void RegisterContentEvents() {
+      base.RegisterContentEvents();
+      Content.PathChanged += Content_PathChanged;
+    }
+
+    protected override void OnContentChanged() {
+      base.OnContentChanged();
+      pathTextBox.Text = Content == null ? string.Empty : Content.Path;
+    }
+
+    protected override void SetEnabledStateOfControls() {
+      base.SetEnabledStateOfControls();
+      pathTextBox.Enabled = Content != null;
+    }
+
+    protected virtual void Content_PathChanged(object sender, System.EventArgs e) {
+      if (InvokeRequired)
+        Invoke(new EventHandler(Content_PathChanged), sender, e);
+      else {
+        pathTextBox.Text = Content.Path;
+      }
+    }
   }
 }
Index: branches/OptimizationNetworks/HeuristicLab.Optimization.Networks.Views/3.3/ValuePortView.Designer.cs
===================================================================
--- branches/OptimizationNetworks/HeuristicLab.Optimization.Networks.Views/3.3/ValuePortView.Designer.cs	(revision 11431)
+++ branches/OptimizationNetworks/HeuristicLab.Optimization.Networks.Views/3.3/ValuePortView.Designer.cs	(revision 11438)
@@ -57,10 +57,4 @@
       this.errorProvider.SetIconAlignment(this.nameTextBox, System.Windows.Forms.ErrorIconAlignment.MiddleLeft);
       this.errorProvider.SetIconPadding(this.nameTextBox, 2);
-      this.nameTextBox.Location = new System.Drawing.Point(69, 0);
-      this.nameTextBox.Size = new System.Drawing.Size(551, 20);
-      // 
-      // infoLabel
-      // 
-      this.infoLabel.Location = new System.Drawing.Point(626, 3);
       // 
       // valueGroupBox
@@ -70,8 +64,8 @@
             | System.Windows.Forms.AnchorStyles.Right)));
       this.valueGroupBox.Controls.Add(this.valuePanel);
-      this.valueGroupBox.Location = new System.Drawing.Point(0, 26);
+      this.valueGroupBox.Location = new System.Drawing.Point(0, 52);
       this.valueGroupBox.Name = "valueGroupBox";
-      this.valueGroupBox.Size = new System.Drawing.Size(645, 491);
-      this.valueGroupBox.TabIndex = 3;
+      this.valueGroupBox.Size = new System.Drawing.Size(645, 465);
+      this.valueGroupBox.TabIndex = 5;
       this.valueGroupBox.TabStop = false;
       this.valueGroupBox.Text = "Value";
@@ -85,5 +79,5 @@
       this.valuePanel.Location = new System.Drawing.Point(6, 19);
       this.valuePanel.Name = "valuePanel";
-      this.valuePanel.Size = new System.Drawing.Size(633, 466);
+      this.valuePanel.Size = new System.Drawing.Size(633, 440);
       this.valuePanel.TabIndex = 0;
       // 
@@ -97,5 +91,5 @@
       this.valueViewHost.Name = "valueViewHost";
       this.valueViewHost.ReadOnly = false;
-      this.valueViewHost.Size = new System.Drawing.Size(633, 466);
+      this.valueViewHost.Size = new System.Drawing.Size(633, 440);
       this.valueViewHost.TabIndex = 0;
       this.valueViewHost.ViewsLabelVisible = true;
@@ -107,5 +101,6 @@
       this.Controls.Add(this.valueGroupBox);
       this.Name = "ValuePortView";
-      this.Size = new System.Drawing.Size(645, 517);
+      this.Controls.SetChildIndex(this.pathLabel, 0);
+      this.Controls.SetChildIndex(this.pathTextBox, 0);
       this.Controls.SetChildIndex(this.nameLabel, 0);
       this.Controls.SetChildIndex(this.nameTextBox, 0);
Index: branches/OptimizationNetworks/HeuristicLab.Optimization.Networks/3.3/InputPort.cs
===================================================================
--- branches/OptimizationNetworks/HeuristicLab.Optimization.Networks/3.3/InputPort.cs	(revision 11431)
+++ branches/OptimizationNetworks/HeuristicLab.Optimization.Networks/3.3/InputPort.cs	(revision 11438)
@@ -88,5 +88,4 @@
       if (outputPort != null) {
         outputPort.ValueChanged += OutputPort_ValueChanged;
-        outputPort.PathChanged += OutputPort_PathChanged;
       }
     }
@@ -94,5 +93,4 @@
       if (outputPort != null) {
         outputPort.ValueChanged -= OutputPort_ValueChanged;
-        outputPort.PathChanged -= OutputPort_PathChanged;
       }
     }
@@ -105,7 +103,4 @@
       //DISCUSS: switch threads to decouple value propagation and to make communication asynchronous -> should be done in Node?
     }
-    protected void OutputPort_PathChanged(object sender, EventArgs e) {
-      OnOutputPortChanged();
-    }
   }
 }
