Index: trunk/tools/HL3Snippets/HL3.AddParameter.snippet
===================================================================
--- trunk/tools/HL3Snippets/HL3.AddParameter.snippet	(revision 4761)
+++ trunk/tools/HL3Snippets/HL3.AddParameter.snippet	(revision 4761)
@@ -0,0 +1,55 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
+  <CodeSnippet Format="1.0.0">
+    <Header>
+      <Title>HL3.AddParameter</Title>
+      <Author>Andreas Beham</Author>
+      <Description>Creates a new Parameter</Description>
+      <HelpUrl>https://dev.heuristiclab.com/trac/hl/core/wiki/DevelopersCodeSnippets</HelpUrl>
+      <SnippetTypes>
+        <SnippetType>Expansion</SnippetType>
+      </SnippetTypes>
+      <Keywords />
+      <Shortcut>hl3AddParameter</Shortcut>
+    </Header>
+    <Snippet>
+      <References />
+      <Imports>
+        <Import>
+          <Namespace>HeuristicLab.Parameters</Namespace>
+        </Import>
+      </Imports>
+      <Declarations>
+        <Literal Editable="true">
+          <ID>ParameterType</ID>
+          <Type></Type>
+          <ToolTip>Type of the parameter (Value, Lookup, ValueLookup, ScopeTreeLookup, ...)</ToolTip>
+          <Default>Lookup</Default>
+          <Function></Function>
+        </Literal>
+        <Literal Editable="true">
+          <ID>ParameterName</ID>
+          <Type></Type>
+          <ToolTip>Name of the parameter</ToolTip>
+          <Default>Name</Default>
+          <Function></Function>
+        </Literal>
+        <Literal Editable="true">
+          <ID>ParameterDescription</ID>
+          <Type></Type>
+          <ToolTip>Description of the parameter</ToolTip>
+          <Default>Description</Default>
+          <Function></Function>
+        </Literal>
+        <Literal Editable="true">
+          <ID>ParameterDataType</ID>
+          <Type></Type>
+          <ToolTip></ToolTip>
+          <Default>IntValue</Default>
+          <Function></Function>
+        </Literal>
+      </Declarations>
+      <Code Language="csharp" Kind="method body" Delimiter="$"><![CDATA[Parameters.Add(new $ParameterType$Parameter<$ParameterDataType$>("$ParameterName$", "$ParameterDescription$"));]]></Code>
+    </Snippet>
+  </CodeSnippet>
+</CodeSnippets>
Index: trunk/tools/HL3Snippets/HL3.AfterDeserializationMethod.snippet
===================================================================
--- trunk/tools/HL3Snippets/HL3.AfterDeserializationMethod.snippet	(revision 4761)
+++ trunk/tools/HL3Snippets/HL3.AfterDeserializationMethod.snippet	(revision 4761)
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
+  <CodeSnippet Format="1.0.0">
+    <Header>
+      <Title>HL3.AfterDeserializationMethod</Title>
+      <Author>Andreas Beham</Author>
+      <Description>Creates the after deserialization hook</Description>
+      <HelpUrl>https://dev.heuristiclab.com/trac/hl/core/wiki/DevelopersCodeSnippets</HelpUrl>
+      <SnippetTypes>
+        <SnippetType>Expansion</SnippetType>
+      </SnippetTypes>
+      <Keywords />
+      <Shortcut>hl3AfterDeserialization</Shortcut>
+    </Header>
+    <Snippet>
+      <References />
+      <Imports />
+      <Declarations />
+      <Code Language="csharp" Kind="method body" Delimiter="$"><![CDATA[[StorableHook(HookType.AfterDeserialization)]
+      private void AfterDeserialization() {
+      }]]></Code>
+    </Snippet>
+  </CodeSnippet>
+</CodeSnippets>
Index: trunk/tools/HL3Snippets/HL3.CloneMethod.snippet
===================================================================
--- trunk/tools/HL3Snippets/HL3.CloneMethod.snippet	(revision 4761)
+++ trunk/tools/HL3Snippets/HL3.CloneMethod.snippet	(revision 4761)
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
+  <CodeSnippet Format="1.0.0">
+    <Header>
+      <Title>HL3.CloneMethod</Title>
+      <Author>Andreas Beham</Author>
+      <Description>Creates the overriden clone method</Description>
+      <HelpUrl>https://dev.heuristiclab.com/trac/hl/core/wiki/DevelopersCodeSnippets</HelpUrl>
+      <SnippetTypes>
+        <SnippetType>Expansion</SnippetType>
+      </SnippetTypes>
+      <Keywords />
+      <Shortcut>hl3CloneMethod</Shortcut>
+    </Header>
+    <Snippet>
+      <References />
+      <Imports />
+      <Declarations>
+	<Literal default="true" Editable="false">
+		<ID>classname</ID> 
+		<ToolTip>Class name</ToolTip> 
+		<Function>ClassName()</Function> 
+		<Default>ClassNamePlaceholder</Default> 
+	</Literal>
+      </Declarations>
+      <Code Language="csharp" Kind="method body" Delimiter="$"><![CDATA[public override IDeepCloneable Clone(Cloner cloner) {
+	return new $classname$(this, cloner);
+      }]]></Code>
+    </Snippet>
+  </CodeSnippet>
+</CodeSnippets>
Index: trunk/tools/HL3Snippets/HL3.CloningConstructor.snippet
===================================================================
--- trunk/tools/HL3Snippets/HL3.CloningConstructor.snippet	(revision 4761)
+++ trunk/tools/HL3Snippets/HL3.CloningConstructor.snippet	(revision 4761)
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
+  <CodeSnippet Format="1.0.0">
+    <Header>
+      <Title>HL3.CloningConstructor</Title>
+      <Author>Andreas Beham</Author>
+      <Description>Creates a cloning constructor</Description>
+      <HelpUrl>https://dev.heuristiclab.com/trac/hl/core/wiki/DevelopersCodeSnippets</HelpUrl>
+      <SnippetTypes>
+        <SnippetType>Expansion</SnippetType>
+      </SnippetTypes>
+      <Keywords />
+      <Shortcut>hl3CloningConstructor</Shortcut>
+    </Header>
+    <Snippet>
+      <References />
+      <Imports />
+      <Declarations>
+	<Literal default="true" Editable="false">
+		<ID>classname</ID> 
+		<ToolTip>Class name</ToolTip> 
+		<Function>ClassName()</Function> 
+		<Default>ClassNamePlaceholder</Default> 
+	</Literal>
+      </Declarations>
+      <Code Language="csharp" Kind="method body" Delimiter="$"><![CDATA[protected $classname$($classname$ original, Cloner cloner) : base(original, cloner) {
+      }]]></Code>
+    </Snippet>
+  </CodeSnippet>
+</CodeSnippets>
Index: trunk/tools/HL3Snippets/HL3.DefineParameter.snippet
===================================================================
--- trunk/tools/HL3Snippets/HL3.DefineParameter.snippet	(revision 4761)
+++ trunk/tools/HL3Snippets/HL3.DefineParameter.snippet	(revision 4761)
@@ -0,0 +1,63 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
+  <CodeSnippet Format="1.0.0">
+    <Header>
+      <Title>HL3.DefineParameter</Title>
+      <Author>Andreas Beham</Author>
+      <Description>Defines a new parameter by adding it to the collection, as well as defining the parameter property</Description>
+      <HelpUrl>https://dev.heuristiclab.com/trac/hl/core/wiki/DevelopersCodeSnippets</HelpUrl>
+      <SnippetTypes />
+      <Keywords />
+      <Shortcut>hl3DefineParam</Shortcut>
+    </Header>
+    <Snippet>
+      <References />
+      <Imports>
+        <Import>
+          <Namespace>HeuristicLab.Parameters</Namespace>
+        </Import>
+      </Imports>
+      <Declarations>
+        <Literal Editable="true">
+          <ID>ParameterVisibility</ID>
+          <Type></Type>
+          <ToolTip>public, private or protected</ToolTip>
+          <Default>public</Default>
+          <Function />
+        </Literal>
+        <Literal Editable="true">
+          <ID>ParameterType</ID>
+          <Type />
+          <ToolTip>The parameter type (Lookup, Value, ValueLookup, ScopeTreeLookup, ...)</ToolTip>
+          <Default>Lookup</Default>
+          <Function />
+        </Literal>
+        <Literal Editable="true">
+          <ID>ParameterDataType</ID>
+          <Type />
+          <ToolTip>The data type of the parameter</ToolTip>
+          <Default>IntValue</Default>
+          <Function />
+        </Literal>
+        <Literal Editable="true">
+          <ID>ParameterName</ID>
+          <Type />
+          <ToolTip>The name of the parameter</ToolTip>
+          <Default>Name</Default>
+          <Function />
+        </Literal>
+        <Literal Editable="true">
+          <ID>ParameterDescription</ID>
+          <Type />
+          <ToolTip />
+          <Default>Missing description.</Default>
+          <Function />
+        </Literal>
+      </Declarations>
+      <Code Language="csharp" Kind="" Delimiter="$"><![CDATA[$ParameterVisibility$ $ParameterType$Parameter<$ParameterDataType$> $ParameterName$Parameter {
+	get { return ($ParameterType$Parameter<$ParameterDataType$>)Parameters["$ParameterName$"]; }
+}
+// Parameters.Add(new $ParameterType$Parameter<$ParameterDataType$>("$ParameterName$", "$ParameterDescription$"));]]></Code>
+    </Snippet>
+  </CodeSnippet>
+</CodeSnippets>
Index: trunk/tools/HL3Snippets/HL3.License.snippet
===================================================================
--- trunk/tools/HL3Snippets/HL3.License.snippet	(revision 4761)
+++ trunk/tools/HL3Snippets/HL3.License.snippet	(revision 4761)
@@ -0,0 +1,49 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
+  <CodeSnippet Format="1.0.0">
+    <Header>
+      <Title>HL3.License</Title>
+      <Author>Andreas Beham</Author>
+      <Description>Inserts the GPL license</Description>
+      <HelpUrl>https://dev.heuristiclab.com/trac/hl/core/wiki/DevelopersCodeSnippets</HelpUrl>
+      <SnippetTypes>
+        <SnippetType>Expansion</SnippetType>
+      </SnippetTypes>
+      <Keywords />
+      <Shortcut>hl3License</Shortcut>
+    </Header>
+    <Snippet>
+      <References />
+      <Imports />
+      <Declarations>
+        <Literal Editable="true">
+          <ID>year</ID>
+          <Type />
+          <ToolTip>Enter the actual year</ToolTip>
+          <Default>2010</Default>
+          <Function></Function>
+        </Literal>
+      </Declarations>
+      <Code Language="csharp" Kind="" Delimiter="$"><![CDATA[#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-$year$ Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion]]></Code>
+    </Snippet>
+  </CodeSnippet>
+</CodeSnippets>
Index: trunk/tools/HL3Snippets/HL3.OperatorStub.snippet
===================================================================
--- trunk/tools/HL3Snippets/HL3.OperatorStub.snippet	(revision 4761)
+++ trunk/tools/HL3Snippets/HL3.OperatorStub.snippet	(revision 4761)
@@ -0,0 +1,62 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
+  <CodeSnippet Format="1.0.0">
+    <Header>
+      <Title>HL3.OperatorStub</Title>
+      <Author>Andreas Beham</Author>
+      <Description>Creates an operator class</Description>
+      <HelpUrl>https://dev.heuristiclab.com/trac/hl/core/wiki/DevelopersCodeSnippets</HelpUrl>
+      <SnippetTypes>
+        <SnippetType>Expansion</SnippetType>
+      </SnippetTypes>
+      <Keywords />
+      <Shortcut>hl3OperatorClass</Shortcut>
+    </Header>
+    <Snippet>
+      <References />
+      <Imports />
+      <Declarations>
+        <Literal Editable="true">
+          <ID>OperatorName</ID>
+          <Type></Type>
+          <ToolTip></ToolTip>
+          <Default>MyOperator</Default>
+          <Function></Function>
+        </Literal>
+        <Literal Editable="true">
+          <ID>BaseClass</ID>
+          <Type></Type>
+          <ToolTip>Most operators derive from SingleSuccessorOperator</ToolTip>
+          <Default>SingleSuccessorOperator</Default>
+          <Function></Function>
+        </Literal>
+        <Literal Editable="true">
+          <ID>OperatorDescription</ID>
+          <Type></Type>
+          <ToolTip>It is always advised to add a good description of your operator</ToolTip>
+          <Default>Description missing</Default>
+          <Function></Function>
+        </Literal>
+      </Declarations>
+      <Code Language="csharp" Kind="" Delimiter="$"><![CDATA[[Item("$OperatorName$", "$OperatorDescription$")]
+[StorableClass]
+public class $OperatorName$ : $BaseClass$ {
+
+	#region Parameter Properties
+	#endregion
+
+	[StorableConstructor]
+	protected $OperatorName$(bool deserializing) : base(deserializing) { }
+	public $OperatorName$()
+		: base() {
+		// TODO: Add new parameters here
+	}
+
+    public override IOperation Apply() {
+      // TODO: Add your code here
+      return base.Apply(scope);
+    }
+}]]></Code>
+    </Snippet>
+  </CodeSnippet>
+</CodeSnippets>
Index: trunk/tools/HL3Snippets/HL3.ParameterProperty.snippet
===================================================================
--- trunk/tools/HL3Snippets/HL3.ParameterProperty.snippet	(revision 4761)
+++ trunk/tools/HL3Snippets/HL3.ParameterProperty.snippet	(revision 4761)
@@ -0,0 +1,53 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
+  <CodeSnippet Format="1.0.0">
+    <Header>
+      <Title>HL3.ParameterProperty</Title>
+      <Author>Andreas Beham</Author>
+      <Description>Creates a parameter property</Description>
+      <HelpUrl>https://dev.heuristiclab.com/trac/hl/core/wiki/DevelopersCodeSnippets</HelpUrl>
+      <SnippetTypes>
+        <SnippetType>Expansion</SnippetType>
+      </SnippetTypes>
+      <Keywords />
+      <Shortcut>hl3ParameterProperty</Shortcut>
+    </Header>
+    <Snippet>
+      <References />
+      <Imports />
+      <Declarations>
+        <Literal Editable="true">
+          <ID>ParamType</ID>
+          <Type></Type>
+          <ToolTip>Type of the parameter (Value, Lookup, ValueLookup, ScopeTreeLookup, ...)</ToolTip>
+          <Default>Lookup</Default>
+          <Function></Function>
+        </Literal>
+        <Literal Editable="true">
+          <ID>ParamName</ID>
+          <Type></Type>
+          <ToolTip>Name of the parameter</ToolTip>
+          <Default>Name</Default>
+          <Function></Function>
+        </Literal>
+        <Literal Editable="true">
+          <ID>ParamDataType</ID>
+          <Type></Type>
+          <ToolTip></ToolTip>
+          <Default>IntValue</Default>
+          <Function></Function>
+        </Literal>
+        <Literal Editable="true">
+          <ID>ParamVisibility</ID>
+          <Type></Type>
+          <ToolTip>public, private or protected</ToolTip>
+          <Default>public</Default>
+          <Function></Function>
+        </Literal>
+      </Declarations>
+      <Code Language="csharp" Kind="" Delimiter="$"><![CDATA[$ParamVisibility$ $ParamType$Parameter<$ParamDataType$> $ParamName$Parameter {
+	get { return ($ParamType$Parameter<$ParamDataType$>)Parameters["$ParamName$"]; }
+}]]></Code>
+    </Snippet>
+  </CodeSnippet>
+</CodeSnippets>
Index: trunk/tools/HL3Snippets/HL3.PluginClassStub.snippet
===================================================================
--- trunk/tools/HL3Snippets/HL3.PluginClassStub.snippet	(revision 4761)
+++ trunk/tools/HL3Snippets/HL3.PluginClassStub.snippet	(revision 4761)
@@ -0,0 +1,58 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
+  <CodeSnippet Format="1.0.0">
+    <Header>
+      <Title>HL3.PluginClassStub</Title>
+      <Author>Andreas Beham</Author>
+      <Description>Creates a plugin class with basic dependencies</Description>
+      <HelpUrl>https://dev.heuristiclab.com/trac/hl/core/wiki/DevelopersCodeSnippets</HelpUrl>
+      <SnippetTypes>
+        <SnippetType>Expansion</SnippetType>
+      </SnippetTypes>
+      <Keywords />
+      <Shortcut>hl3PluginClass</Shortcut>
+    </Header>
+    <Snippet>
+      <References>
+        <Reference>
+          <Assembly>HeuristicLab.PluginInfrastructure</Assembly>
+          <Url></Url>
+        </Reference>
+      </References>
+      <Imports>
+        <Import>
+          <Namespace>HeuristicLab.PluginInfrastructure</Namespace>
+        </Import>
+      </Imports>
+      <Declarations>
+        <Literal Editable="true">
+          <ID>ClassName</ID>
+          <Type></Type>
+          <ToolTip>The full classname with namespace</ToolTip>
+          <Default>HeuristicLab.YourProject</Default>
+          <Function></Function>
+        </Literal>
+        <Literal Editable="true">
+          <ID>MajorMinorVersion</ID>
+          <Type></Type>
+          <ToolTip>The major.minor version</ToolTip>
+          <Default>3.3</Default>
+          <Function></Function>
+        </Literal>
+        <Literal Editable="true">
+          <ID>PluginClassName</ID>
+          <Type></Type>
+          <ToolTip></ToolTip>
+          <Default>HeuristicLabYourProject</Default>
+          <Function></Function>
+        </Literal>
+      </Declarations>
+      <Code Language="csharp" Kind="type decl" Delimiter="$"><![CDATA[[Plugin("$ClassName$", "$MajorMinorVersion$.0.1")]
+[PluginFile("$ClassName$-$MajorMinorVersion$.dll", PluginFileType.Assembly)]
+[PluginDependency("HeuristicLab.Common", "3.3")]
+[PluginDependency("HeuristicLab.Core", "3.3")]
+public class $PluginClassName$Plugin : PluginBase {
+}]]></Code>
+    </Snippet>
+  </CodeSnippet>
+</CodeSnippets>
Index: trunk/tools/HL3Snippets/HL3.StorableConstructor.snippet
===================================================================
--- trunk/tools/HL3Snippets/HL3.StorableConstructor.snippet	(revision 4761)
+++ trunk/tools/HL3Snippets/HL3.StorableConstructor.snippet	(revision 4761)
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
+  <CodeSnippet Format="1.0.0">
+    <Header>
+      <Title>HL3.StorableConstructor</Title>
+      <Author>Andreas Beham</Author>
+      <Description>Creates a storable constructor</Description>
+      <HelpUrl>https://dev.heuristiclab.com/trac/hl/core/wiki/DevelopersCodeSnippets</HelpUrl>
+      <SnippetTypes>
+        <SnippetType>Expansion</SnippetType>
+      </SnippetTypes>
+      <Keywords />
+      <Shortcut>hl3StorableConstructor</Shortcut>
+    </Header>
+    <Snippet>
+      <References />
+      <Imports />
+      <Declarations>
+	<Literal default="true" Editable="false">
+		<ID>classname</ID> 
+		<ToolTip>Class name</ToolTip> 
+		<Function>ClassName()</Function> 
+		<Default>ClassNamePlaceholder</Default> 
+	</Literal>
+      </Declarations>
+      <Code Language="csharp" Kind="method body" Delimiter="$"><![CDATA[[StorableConstructor]
+      protected $classname$(bool deserializing) : base(deserializing) { }]]></Code>
+    </Snippet>
+  </CodeSnippet>
+</CodeSnippets>
Index: trunk/tools/HL3Snippets/HL3.ViewStub.snippet
===================================================================
--- trunk/tools/HL3Snippets/HL3.ViewStub.snippet	(revision 4761)
+++ trunk/tools/HL3Snippets/HL3.ViewStub.snippet	(revision 4761)
@@ -0,0 +1,95 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
+  <CodeSnippet Format="1.0.0">
+    <Header>
+      <Title>HL3.ViewStub</Title>
+      <Author>Andreas Beham</Author>
+      <Description>Creates a stub implementation of a view</Description>
+      <HelpUrl>https://dev.heuristiclab.com/trac/hl/core/wiki/DevelopersCodeSnippets</HelpUrl>
+      <SnippetTypes>
+        <SnippetType>Expansion</SnippetType>
+      </SnippetTypes>
+      <Keywords />
+      <Shortcut>hl3ViewClass</Shortcut>
+    </Header>
+    <Snippet>
+      <References />
+      <Imports />
+      <Declarations>
+        <Literal Editable="true">
+          <ID>ViewName</ID>
+          <Type></Type>
+          <ToolTip>Name of the view</ToolTip>
+          <Default>My Great View</Default>
+          <Function></Function>
+        </Literal>
+        <Literal Editable="true">
+          <ID>ContentType</ID>
+          <Type></Type>
+          <ToolTip>Type of the content to view</ToolTip>
+          <Default>YourModelClassName</Default>
+          <Function></Function>
+        </Literal>
+        <Literal Editable="true">
+          <ID>DefaultView</ID>
+          <Type></Type>
+          <ToolTip>True if the view is the default view for the given content type. Beware: There can only be one default view per content type!</ToolTip>
+          <Default>false</Default>
+          <Function></Function>
+        </Literal>
+        <Literal Editable="true">
+          <ID>BaseView</ID>
+          <Type></Type>
+          <ToolTip>The base class for this view to derive from</ToolTip>
+          <Default>NamedItemView</Default>
+          <Function></Function>
+        </Literal>
+      </Declarations>
+      <Code Language="csharp" Kind="" Delimiter="$"><![CDATA[[View("$ViewName$")]
+[Content(typeof($ContentType$), IsDefaultView = $DefaultView$)]
+public sealed partial class $ContentType$View : $BaseView$ {
+	public new $ContentType$ Content {
+		get { return ($ContentType$)base.Content; }
+		set { base.Content = value; }
+	}
+
+	public $ContentType$View() {
+		InitializeComponent();
+	}
+
+	protected override void DeregisterContentEvents() {
+		// TODO: Deregister your event handlers here
+		base.DeregisterContentEvents();
+    }
+
+	protected override void RegisterContentEvents() {
+		base.RegisterContentEvents();
+		// TODO: Register your event handlers here
+    }
+
+    #region Event Handlers (Content)
+    // TODO: Put event handlers of the content here
+    #endregion
+
+	protected override void OnContentChanged() {
+		base.OnContentChanged();
+		if (Content == null) {
+       		// TODO: Add code when content has been changed and is null
+		} else {
+        	// TODO: Add code when content has been changed and is not null
+		}
+    }
+
+
+    protected override void SetEnabledStateOfControls() {
+		base.SetEnabledStateOfControls();
+		// TODO: Enable or disable controls based on whether the content is null or the view is set readonly
+    }
+
+    #region Event Handlers (child controls)
+    // TODO: Put event handlers of child controls here.
+    #endregion
+}]]></Code>
+    </Snippet>
+  </CodeSnippet>
+</CodeSnippets>
