Index: branches/HeuristicLab.TreeSimplifierView/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views/3.4/SymbolicExpressionTreeChart.cs
===================================================================
--- branches/HeuristicLab.TreeSimplifierView/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views/3.4/SymbolicExpressionTreeChart.cs	(revision 7411)
+++ branches/HeuristicLab.TreeSimplifierView/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views/3.4/SymbolicExpressionTreeChart.cs	(revision 7784)
@@ -27,10 +27,9 @@
 
 namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views {
-  public sealed partial class SymbolicExpressionTreeChart : UserControl {
+  public partial class SymbolicExpressionTreeChart : UserControl {
     private Image image;
     private StringFormat stringFormat;
-    private Dictionary<ISymbolicExpressionTreeNode, VisualSymbolicExpressionTreeNode> visualTreeNodes;
-    private Dictionary<Tuple<ISymbolicExpressionTreeNode, ISymbolicExpressionTreeNode>, VisualSymbolicExpressionTreeNodeConnection> visualLines;
-    private VisualSymbolicExpressionTreeNode selectedNode;
+    protected Dictionary<ISymbolicExpressionTreeNode, VisualSymbolicExpressionTreeNode> visualTreeNodes;
+    protected Dictionary<Tuple<ISymbolicExpressionTreeNode, ISymbolicExpressionTreeNode>, VisualSymbolicExpressionTreeNodeConnection> visualLines;
 
     public SymbolicExpressionTreeChart() {
@@ -44,5 +43,4 @@
       this.backgroundColor = Color.White;
       this.textFont = new Font("Times New Roman", 8);
-      selectedNode = null;
     }
 
@@ -158,14 +156,6 @@
 
     #region events
-    public event EventHandler SymbolicExpressionTreeNodeChanged;
-    private void OnSymbolicExpressionTreeNodeChanged(object sender, EventArgs e) {
-      var changed = SymbolicExpressionTreeNodeChanged;
-      if (changed != null) {
-        changed(sender, e);
-      }
-    }
-
     public event MouseEventHandler SymbolicExpressionTreeNodeClicked;
-    private void OnSymbolicExpressionTreeNodeClicked(object sender, MouseEventArgs e) {
+    protected void OnSymbolicExpressionTreeNodeClicked(object sender, MouseEventArgs e) {
       var clicked = SymbolicExpressionTreeNodeClicked;
       if (clicked != null)
@@ -173,12 +163,13 @@
     }
 
-    private void SymbolicExpressionTreeChart_MouseClick(object sender, MouseEventArgs e) {
+    protected virtual void SymbolicExpressionTreeChart_MouseClick(object sender, MouseEventArgs e) {
       VisualSymbolicExpressionTreeNode visualTreeNode = FindVisualSymbolicExpressionTreeNodeAt(e.X, e.Y);
-      if (visualTreeNode != null)
+      if (visualTreeNode != null) {
         OnSymbolicExpressionTreeNodeClicked(visualTreeNode, e);
+      }
     }
 
     public event MouseEventHandler SymbolicExpressionTreeNodeDoubleClicked;
-    private void OnSymbolicExpressionTreeNodeDoubleClicked(object sender, MouseEventArgs e) {
+    protected void OnSymbolicExpressionTreeNodeDoubleClicked(object sender, MouseEventArgs e) {
       var doubleClicked = SymbolicExpressionTreeNodeDoubleClicked;
       if (doubleClicked != null)
@@ -193,5 +184,5 @@
 
     public event ItemDragEventHandler SymbolicExpressionTreeNodeDrag;
-    private void OnSymbolicExpressionTreeNodeDragDrag(object sender, ItemDragEventArgs e) {
+    protected void OnSymbolicExpressionTreeNodeDragDrag(object sender, ItemDragEventArgs e) {
       var dragged = SymbolicExpressionTreeNodeDrag;
       if (dragged != null)
@@ -244,5 +235,5 @@
     /// 
     /// </summary>
-    /// <param name="functionTree"> functiontree to draw</param>
+    /// <param name="functionTree"> function tree to draw</param>
     /// <param name="graphics">graphics object to draw on</param>
     /// <param name="x">x coordinate of drawing area</param>
@@ -357,19 +348,4 @@
     }
     #endregion
-
-    private void contextMenuStrip_Opened(object sender, EventArgs e) {
-      var menu = sender as ContextMenuStrip;
-      if (menu == null) return;
-      var point = menu.SourceControl.PointToClient(Cursor.Position);
-      selectedNode = FindVisualSymbolicExpressionTreeNodeAt(point.X, point.Y);
-      if (selectedNode != null) {
-        OnSymbolicExpressionTreeNodeClicked(selectedNode, new MouseEventArgs(MouseButtons.Right, 1, point.X, point.Y, 0));
-      }
-    }
-
-    private void changeValueToolStripMenuItem_Click(object sender, EventArgs e) {
-      if (selectedNode != null) // this should never be null anyway
-        OnSymbolicExpressionTreeNodeChanged(selectedNode, e);
-    }
   }
 }
