<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="/rss.xsl"?><rss version="2.0"><channel><title>dept Wiki &amp; Documentation Rss Feed</title><link>http://www.codeplex.com/dept/Wiki/View.aspx?title=Home</link><description>dept Wiki Rss Description</description><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/dept/Wiki/View.aspx?title=Home&amp;version=52</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;
Welcome 
&lt;/h1&gt;This is the home of the &lt;b&gt;DSL Editor ‘PowerToy’&lt;/b&gt; project - a DSL enhancement PowerToy for displaying multiple customized views of a domain specific languages (DSL's).&lt;br /&gt;&lt;h2&gt;
Quick links
&lt;/h2&gt;&lt;table&gt;
&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Current Release:&lt;/b&gt; &lt;/td&gt;&lt;td&gt; &lt;a href="http://www.codeplex.com/dept/Release/ProjectReleases.aspx?ReleaseId=2089"&gt;M1 Released&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;b&gt;Documentation&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM1&amp;amp;referringTitle=Home"&gt;What is this release?&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM1_Use&amp;amp;referringTitle=Home"&gt;How to install and use it?&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM1_Customize&amp;amp;referringTitle=Home"&gt;How to customize it?&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Next Release:&lt;/b&gt; &lt;/td&gt;&lt;td&gt; &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM2&amp;amp;referringTitle=Home"&gt;What is the next release?&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=Milestones&amp;amp;referringTitle=Home"&gt;All Releases&lt;/a&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;h1&gt;
What is it?
&lt;/h1&gt;This PowerToy aims to provide a new capability that will provide an enhanced user experience for displaying and interacting with different aspects of a domain model in multiple dedicated 'editors'.&lt;br /&gt; &lt;br /&gt;The PowerToy will provide your DSL with a new tool-window containing one or more editors that manage configurable 'views' of domain classes, and their relationships. The PowerToy displays these various views by hosting windows controls that display the view, and manage the users interaction with them.&lt;br /&gt; &lt;br /&gt;For example, the following screenshot displays one such editor (bottom-half of the screen) specific for manipulating 'Data Contracts' of an existing example DSL used for authoring Web Services.&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/dept/Project/FileDownload.aspx?DownloadId=7839" alt="DataContractEditor(Small).jpg" /&gt;&lt;br /&gt; &lt;br /&gt;You can also see a similar example of an editor specific for 'Service Operations' of the same DSL &lt;a href="http://blogs.msdn.com/photos/jezzsa/images/1324294/original.aspx" class="externalLink"&gt;here&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. &lt;br /&gt;Another example of an alternative implementation used for Data Contracts in another DSL &lt;a href="http://www.edwardbakker.nl/PermaLink,guid,11ab1f38-75aa-4ce2-8fc7-ff950b745aa9.aspx" class="externalLink"&gt;here&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;&lt;h1&gt;
The Basic Idea
&lt;/h1&gt;The PowerToy will be available for download (also in source form), and will be installed by a DSL developer on their development machine.  The DSL author will, within their existing DSL solution, add and configure one or more custom editors to display some aspect of the domain model of their DSL. At runtime these editors will be displayed to the user of their DSL.&lt;br /&gt; &lt;br /&gt;The PowerToy will provide (as one choice of editor) a tree-grid-like control that displays a hierarchy of domain models elements and their child relationships. This control then allows the user to interact with and manipulate the domain classes and their properties.&lt;br /&gt; &lt;br /&gt;Please check our example &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=User%20Scenario&amp;amp;referringTitle=Home"&gt;User Scenario&lt;/a&gt; for more details for one requirement for this kind of editor, and what drove the existing implementation for it.&lt;br /&gt; &lt;br /&gt;&lt;h1&gt;
Benefits
&lt;/h1&gt;The benefits of the PowerToy include:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Provides a means to view/edit relationships and domain classes that have no visible representation on the diagram&lt;/li&gt;&lt;li&gt;Reduces shape clutter on the diagram surface&lt;/li&gt;&lt;li&gt;Provides a hierarchical view of (possibly hidden) child relationships &lt;/li&gt;&lt;li&gt;Provides a better UX (keyboard navigation) for editing multiple properties of domain classes as part of hierarchical relationships, bulk editing.&lt;/li&gt;&lt;li&gt;Also improves visibility of key properties and enables better comparisons of related instances alongside each other.&lt;/li&gt;&lt;li&gt;Allows aspect focused editors (one editor per aspect) &lt;/li&gt;&lt;li&gt;Each aspect or 'view' on the domain model would have a separate editor.&lt;/li&gt;&lt;li&gt;Can replace the grpahical designer of the DSL, with forms based editors where a box-line user interface is not optimal for the domain.&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
Increased Usability!
&lt;/h2&gt;In essence, this power toy primarily provides a better User Experience (UX) for the DSL user by exposing relationships potentially with no visibility on the diagram (i.e. in shapes or connectors), reducing shape clutter, and giving the user the ability to rapidly configuration the exposed domain classes and properties in the editor. &lt;br /&gt; &lt;br /&gt;&lt;b&gt;&lt;u&gt;Essentially this PowerToy provides the ability to expose hierarchical 'views' of the underlying domain model, that can be displayed using any windows control or other display technology&lt;/u&gt;&lt;/b&gt;&lt;br /&gt; &lt;br /&gt;&lt;h1&gt;
The Approach
&lt;/h1&gt;We are providing a staged approach to completing the implementation this PowerToy. At each stage (milestone) will deliver working code that adds a new capability to a DSL. &lt;br /&gt;Each release is designed to build upon the previous release and enhance it with a new capability and infrastructure to support that capability. &lt;br /&gt;The intention is to provide a DSL developer, using the PowerToy, deliverables that can be taken and customized to solve incremental problems that the PowerToy encounters in its development, that are expected to encounter anyone implementing this type of functionality.&lt;br /&gt; &lt;br /&gt;Please see the &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=Milestones&amp;amp;referringTitle=Home"&gt;Milestones&lt;/a&gt; page of this project to see what releases we have and what they will deliver.&lt;br /&gt;
&lt;/div&gt;</description><author>jezzsa</author><pubDate>Sat, 28 Jul 2007 17:40:37 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20070728054037P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/dept/Wiki/View.aspx?title=Home&amp;version=51</link><description>&lt;div class="wikidoc"&gt;
&lt;i&gt;Important Update!, We just changed the base URL of this site (from codeplex/dsltreegrideditor to codeplex/dept). There is now a URL redirect in place to manage this, please update your links!&lt;/i&gt;&lt;br /&gt;&lt;h1&gt;
Welcome 
&lt;/h1&gt;This is the home of the &lt;b&gt;DSL Editor ‘PowerToy’&lt;/b&gt; project - a DSL enhancement PowerToy for displaying multiple customized views of a domain specific languages (DSL's).&lt;br /&gt;&lt;h2&gt;
Quick links
&lt;/h2&gt;&lt;table&gt;
&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Current Release:&lt;/b&gt; &lt;/td&gt;&lt;td&gt; &lt;a href="http://www.codeplex.com/dept/Release/ProjectReleases.aspx?ReleaseId=2089"&gt;M1 Released&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;b&gt;Documentation&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM1&amp;amp;referringTitle=Home"&gt;What is this release?&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM1_Use&amp;amp;referringTitle=Home"&gt;How to install and use it?&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM1_Customize&amp;amp;referringTitle=Home"&gt;How to customize it?&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Next Release:&lt;/b&gt; &lt;/td&gt;&lt;td&gt; &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM2&amp;amp;referringTitle=Home"&gt;What is the next release?&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=Milestones&amp;amp;referringTitle=Home"&gt;All Releases&lt;/a&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;h1&gt;
What is it?
&lt;/h1&gt;This PowerToy aims to provide a new capability that will provide an enhanced user experience for displaying and interacting with different aspects of a domain model in multiple dedicated 'editors'.&lt;br /&gt; &lt;br /&gt;The PowerToy will provide your DSL with a new tool-window containing one or more editors that manage configurable 'views' of domain classes, and their relationships. The PowerToy displays these various views by hosting windows controls that display the view, and manage the users interaction with them.&lt;br /&gt; &lt;br /&gt;For example, the following screenshot displays one such editor (bottom-half of the screen) specific for manipulating 'Data Contracts' of an existing example DSL used for authoring Web Services.&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/dept/Project/FileDownload.aspx?DownloadId=7839" alt="DataContractEditor(Small).jpg" /&gt;&lt;br /&gt; &lt;br /&gt;You can also see a similar example of an editor specific for 'Service Operations' of the same DSL &lt;a href="http://blogs.msdn.com/photos/jezzsa/images/1324294/original.aspx" class="externalLink"&gt;here&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. &lt;br /&gt;Another example of an alternative implementation used for Data Contracts in another DSL &lt;a href="http://www.edwardbakker.nl/PermaLink,guid,11ab1f38-75aa-4ce2-8fc7-ff950b745aa9.aspx" class="externalLink"&gt;here&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;&lt;h1&gt;
The Basic Idea
&lt;/h1&gt;The PowerToy will be available for download (also in source form), and will be installed by a DSL developer on their development machine.  The DSL author will, within their existing DSL solution, add and configure one or more custom editors to display some aspect of the domain model of their DSL. At runtime these editors will be displayed to the user of their DSL.&lt;br /&gt; &lt;br /&gt;The PowerToy will provide (as one choice of editor) a tree-grid-like control that displays a hierarchy of domain models elements and their child relationships. This control then allows the user to interact with and manipulate the domain classes and their properties.&lt;br /&gt; &lt;br /&gt;Please check our example &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=User%20Scenario&amp;amp;referringTitle=Home"&gt;User Scenario&lt;/a&gt; for more details for one requirement for this kind of editor, and what drove the existing implementation for it.&lt;br /&gt; &lt;br /&gt;&lt;h1&gt;
Benefits
&lt;/h1&gt;The benefits of the PowerToy include:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Provides a means to view/edit relationships and domain classes that have no visible representation on the diagram&lt;/li&gt;&lt;li&gt;Reduces shape clutter on the diagram surface&lt;/li&gt;&lt;li&gt;Provides a hierarchical view of (possibly hidden) child relationships &lt;/li&gt;&lt;li&gt;Provides a better UX (keyboard navigation) for editing multiple properties of domain classes as part of hierarchical relationships, bulk editing.&lt;/li&gt;&lt;li&gt;Also improves visibility of key properties and enables better comparisons of related instances alongside each other.&lt;/li&gt;&lt;li&gt;Allows aspect focused editors (one editor per aspect) &lt;/li&gt;&lt;li&gt;Each aspect or 'view' on the domain model would have a separate editor.&lt;/li&gt;&lt;li&gt;Can replace the grpahical designer of the DSL, with forms based editors where a box-line user interface is not optimal for the domain.&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
Increased Usability!
&lt;/h2&gt;In essence, this power toy primarily provides a better User Experience (UX) for the DSL user by exposing relationships potentially with no visibility on the diagram (i.e. in shapes or connectors), reducing shape clutter, and giving the user the ability to rapidly configuration the exposed domain classes and properties in the editor. &lt;br /&gt; &lt;br /&gt;&lt;b&gt;&lt;u&gt;Essentially this PowerToy provides the ability to expose hierarchical 'views' of the underlying domain model, that can be displayed using any windows control or other display technology&lt;/u&gt;&lt;/b&gt;&lt;br /&gt; &lt;br /&gt;&lt;h1&gt;
The Approach
&lt;/h1&gt;We are providing a staged approach to completing the implementation this PowerToy. At each stage (milestone) will deliver working code that adds a new capability to a DSL. &lt;br /&gt;Each release is designed to build upon the previous release and enhance it with a new capability and infrastructure to support that capability. &lt;br /&gt;The intention is to provide a DSL developer, using the PowerToy, deliverables that can be taken and customized to solve incremental problems that the PowerToy encounters in its development, that are expected to encounter anyone implementing this type of functionality.&lt;br /&gt; &lt;br /&gt;Please see the &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=Milestones&amp;amp;referringTitle=Home"&gt;Milestones&lt;/a&gt; page of this project to see what releases we have and what they will deliver.&lt;br /&gt;
&lt;/div&gt;</description><author>jezzsa</author><pubDate>Wed, 04 Jul 2007 14:47:31 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20070704024731P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/dept/Wiki/View.aspx?title=Home&amp;version=50</link><description>&lt;div class="wikidoc"&gt;
&lt;u&gt;&lt;b&gt;Important Update!&lt;/b&gt;&lt;/u&gt;, &lt;b&gt;We just changed the base URL of this site (from codeplex/dsltreegrideditor to codeplex/dept).&lt;/b&gt; There is now a URL redirect in place, please update your links!&lt;br /&gt;&lt;h1&gt;
Welcome 
&lt;/h1&gt;This is the home of the &lt;b&gt;DSL Editor ‘PowerToy’&lt;/b&gt; project - a DSL enhancement PowerToy for displaying multiple customized views of a domain specific languages (DSL's).&lt;br /&gt;&lt;h2&gt;
Quick links
&lt;/h2&gt;&lt;table&gt;
&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Current Release:&lt;/b&gt; &lt;/td&gt;&lt;td&gt; &lt;a href="http://www.codeplex.com/dept/Release/ProjectReleases.aspx?ReleaseId=2089"&gt;M1 Released&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;b&gt;Documentation&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM1&amp;amp;referringTitle=Home"&gt;What is this release?&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM1_Use&amp;amp;referringTitle=Home"&gt;How to install and use it?&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM1_Customize&amp;amp;referringTitle=Home"&gt;How to customize it?&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Next Release:&lt;/b&gt; &lt;/td&gt;&lt;td&gt; &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM2&amp;amp;referringTitle=Home"&gt;What is the next release?&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=Milestones&amp;amp;referringTitle=Home"&gt;All Releases&lt;/a&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;h1&gt;
What is it?
&lt;/h1&gt;This PowerToy aims to provide a new capability that will provide an enhanced user experience for displaying and interacting with different aspects of a domain model in multiple dedicated 'editors'.&lt;br /&gt; &lt;br /&gt;The PowerToy will provide your DSL with a new tool-window containing one or more editors that manage configurable 'views' of domain classes, and their relationships. The PowerToy displays these various views by hosting windows controls that display the view, and manage the users interaction with them.&lt;br /&gt; &lt;br /&gt;For example, the following screenshot displays one such editor (bottom-half of the screen) specific for manipulating 'Data Contracts' of an existing example DSL used for authoring Web Services.&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/dept/Project/FileDownload.aspx?DownloadId=7839" alt="DataContractEditor(Small).jpg" /&gt;&lt;br /&gt; &lt;br /&gt;You can also see a similar example of an editor specific for 'Service Operations' of the same DSL &lt;a href="http://blogs.msdn.com/photos/jezzsa/images/1324294/original.aspx" class="externalLink"&gt;here&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. &lt;br /&gt;Another example of an alternative implementation used for Data Contracts in another DSL &lt;a href="http://www.edwardbakker.nl/PermaLink,guid,11ab1f38-75aa-4ce2-8fc7-ff950b745aa9.aspx" class="externalLink"&gt;here&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;&lt;h1&gt;
The Basic Idea
&lt;/h1&gt;The PowerToy will be available for download (also in source form), and will be installed by a DSL developer on their development machine.  The DSL author will, within their existing DSL solution, add and configure one or more custom editors to display some aspect of the domain model of their DSL. At runtime these editors will be displayed to the user of their DSL.&lt;br /&gt; &lt;br /&gt;The PowerToy will provide (as one choice of editor) a tree-grid-like control that displays a hierarchy of domain models elements and their child relationships. This control then allows the user to interact with and manipulate the domain classes and their properties.&lt;br /&gt; &lt;br /&gt;Please check our example &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=User%20Scenario&amp;amp;referringTitle=Home"&gt;User Scenario&lt;/a&gt; for more details for one requirement for this kind of editor, and what drove the existing implementation for it.&lt;br /&gt; &lt;br /&gt;&lt;h1&gt;
Benefits
&lt;/h1&gt;The benefits of the PowerToy include:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Provides a means to view/edit relationships and domain classes that have no visible representation on the diagram&lt;/li&gt;&lt;li&gt;Reduces shape clutter on the diagram surface&lt;/li&gt;&lt;li&gt;Provides a hierarchical view of (possibly hidden) child relationships &lt;/li&gt;&lt;li&gt;Provides a better UX (keyboard navigation) for editing multiple properties of domain classes as part of hierarchical relationships, bulk editing.&lt;/li&gt;&lt;li&gt;Also improves visibility of key properties and enables better comparisons of related instances alongside each other.&lt;/li&gt;&lt;li&gt;Allows aspect focused editors (one editor per aspect) &lt;/li&gt;&lt;li&gt;Each aspect or 'view' on the domain model would have a separate editor.&lt;/li&gt;&lt;li&gt;Can replace the grpahical designer of the DSL, with forms based editors where a box-line user interface is not optimal for the domain.&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
Increased Usability!
&lt;/h2&gt;In essence, this power toy primarily provides a better User Experience (UX) for the DSL user by exposing relationships potentially with no visibility on the diagram (i.e. in shapes or connectors), reducing shape clutter, and giving the user the ability to rapidly configuration the exposed domain classes and properties in the editor. &lt;br /&gt; &lt;br /&gt;&lt;b&gt;&lt;u&gt;Essentially this PowerToy provides the ability to expose hierarchical 'views' of the underlying domain model, that can be displayed using any windows control or other display technology&lt;/u&gt;&lt;/b&gt;&lt;br /&gt; &lt;br /&gt;&lt;h1&gt;
The Approach
&lt;/h1&gt;We are providing a staged approach to completing the implementation this PowerToy. At each stage (milestone) will deliver working code that adds a new capability to a DSL. &lt;br /&gt;Each release is designed to build upon the previous release and enhance it with a new capability and infrastructure to support that capability. &lt;br /&gt;The intention is to provide a DSL developer, using the PowerToy, deliverables that can be taken and customized to solve incremental problems that the PowerToy encounters in its development, that are expected to encounter anyone implementing this type of functionality.&lt;br /&gt; &lt;br /&gt;Please see the &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=Milestones&amp;amp;referringTitle=Home"&gt;Milestones&lt;/a&gt; page of this project to see what releases we have and what they will deliver.&lt;br /&gt;
&lt;/div&gt;</description><author>jezzsa</author><pubDate>Wed, 04 Jul 2007 14:46:48 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20070704024648P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/dept/Wiki/View.aspx?title=Home&amp;version=49</link><description>&lt;div class="wikidoc"&gt;
&lt;u&gt;&lt;b&gt;Important Update!&lt;/b&gt;&lt;/u&gt;, &lt;b&gt;We just changed the base URL of this site (from codeplex/dsltreegrideditor to codeplex/dept).&lt;/b&gt; There is now a URLredirect in place, please update your links!&lt;br /&gt;&lt;h1&gt;
Welcome 
&lt;/h1&gt;This is the home of the &lt;b&gt;DSL Editor ‘PowerToy’&lt;/b&gt; project - a DSL enhancement PowerToy for displaying multiple customized views of a domain specific languages (DSL's).&lt;br /&gt;&lt;h2&gt;
Quick links
&lt;/h2&gt;&lt;table&gt;
&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Current Release:&lt;/b&gt; &lt;/td&gt;&lt;td&gt; &lt;a href="http://www.codeplex.com/dept/Release/ProjectReleases.aspx?ReleaseId=2089"&gt;M1 Released&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;b&gt;Documentation&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM1&amp;amp;referringTitle=Home"&gt;What is this release?&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM1_Use&amp;amp;referringTitle=Home"&gt;How to install and use it?&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM1_Customize&amp;amp;referringTitle=Home"&gt;How to customize it?&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Next Release:&lt;/b&gt; &lt;/td&gt;&lt;td&gt; &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM2&amp;amp;referringTitle=Home"&gt;What is the next release?&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=Milestones&amp;amp;referringTitle=Home"&gt;All Releases&lt;/a&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;h1&gt;
What is it?
&lt;/h1&gt;This PowerToy aims to provide a new capability that will provide an enhanced user experience for displaying and interacting with different aspects of a domain model in multiple dedicated 'editors'.&lt;br /&gt; &lt;br /&gt;The PowerToy will provide your DSL with a new tool-window containing one or more editors that manage configurable 'views' of domain classes, and their relationships. The PowerToy displays these various views by hosting windows controls that display the view, and manage the users interaction with them.&lt;br /&gt; &lt;br /&gt;For example, the following screenshot displays one such editor (bottom-half of the screen) specific for manipulating 'Data Contracts' of an existing example DSL used for authoring Web Services.&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/dept/Project/FileDownload.aspx?DownloadId=7839" alt="DataContractEditor(Small).jpg" /&gt;&lt;br /&gt; &lt;br /&gt;You can also see a similar example of an editor specific for 'Service Operations' of the same DSL &lt;a href="http://blogs.msdn.com/photos/jezzsa/images/1324294/original.aspx" class="externalLink"&gt;here&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. &lt;br /&gt;Another example of an alternative implementation used for Data Contracts in another DSL &lt;a href="http://www.edwardbakker.nl/PermaLink,guid,11ab1f38-75aa-4ce2-8fc7-ff950b745aa9.aspx" class="externalLink"&gt;here&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;&lt;h1&gt;
The Basic Idea
&lt;/h1&gt;The PowerToy will be available for download (also in source form), and will be installed by a DSL developer on their development machine.  The DSL author will, within their existing DSL solution, add and configure one or more custom editors to display some aspect of the domain model of their DSL. At runtime these editors will be displayed to the user of their DSL.&lt;br /&gt; &lt;br /&gt;The PowerToy will provide (as one choice of editor) a tree-grid-like control that displays a hierarchy of domain models elements and their child relationships. This control then allows the user to interact with and manipulate the domain classes and their properties.&lt;br /&gt; &lt;br /&gt;Please check our example &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=User%20Scenario&amp;amp;referringTitle=Home"&gt;User Scenario&lt;/a&gt; for more details for one requirement for this kind of editor, and what drove the existing implementation for it.&lt;br /&gt; &lt;br /&gt;&lt;h1&gt;
Benefits
&lt;/h1&gt;The benefits of the PowerToy include:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Provides a means to view/edit relationships and domain classes that have no visible representation on the diagram&lt;/li&gt;&lt;li&gt;Reduces shape clutter on the diagram surface&lt;/li&gt;&lt;li&gt;Provides a hierarchical view of (possibly hidden) child relationships &lt;/li&gt;&lt;li&gt;Provides a better UX (keyboard navigation) for editing multiple properties of domain classes as part of hierarchical relationships, bulk editing.&lt;/li&gt;&lt;li&gt;Also improves visibility of key properties and enables better comparisons of related instances alongside each other.&lt;/li&gt;&lt;li&gt;Allows aspect focused editors (one editor per aspect) &lt;/li&gt;&lt;li&gt;Each aspect or 'view' on the domain model would have a separate editor.&lt;/li&gt;&lt;li&gt;Can replace the grpahical designer of the DSL, with forms based editors where a box-line user interface is not optimal for the domain.&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
Increased Usability!
&lt;/h2&gt;In essence, this power toy primarily provides a better User Experience (UX) for the DSL user by exposing relationships potentially with no visibility on the diagram (i.e. in shapes or connectors), reducing shape clutter, and giving the user the ability to rapidly configuration the exposed domain classes and properties in the editor. &lt;br /&gt; &lt;br /&gt;&lt;b&gt;&lt;u&gt;Essentially this PowerToy provides the ability to expose hierarchical 'views' of the underlying domain model, that can be displayed using any windows control or other display technology&lt;/u&gt;&lt;/b&gt;&lt;br /&gt; &lt;br /&gt;&lt;h1&gt;
The Approach
&lt;/h1&gt;We are providing a staged approach to completing the implementation this PowerToy. At each stage (milestone) will deliver working code that adds a new capability to a DSL. &lt;br /&gt;Each release is designed to build upon the previous release and enhance it with a new capability and infrastructure to support that capability. &lt;br /&gt;The intention is to provide a DSL developer, using the PowerToy, deliverables that can be taken and customized to solve incremental problems that the PowerToy encounters in its development, that are expected to encounter anyone implementing this type of functionality.&lt;br /&gt; &lt;br /&gt;Please see the &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=Milestones&amp;amp;referringTitle=Home"&gt;Milestones&lt;/a&gt; page of this project to see what releases we have and what they will deliver.&lt;br /&gt;
&lt;/div&gt;</description><author>jezzsa</author><pubDate>Wed, 04 Jul 2007 14:46:38 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20070704024638P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/dept/Wiki/View.aspx?title=Home&amp;version=48</link><description>&lt;div class="wikidoc"&gt;
&lt;u&gt;&lt;b&gt;Important Update!&lt;/b&gt;&lt;/u&gt;, &lt;b&gt;We just changed the base URL of this site (from codeplex/dsltreegrideditor to codeplex/dept).&lt;/b&gt;&lt;br /&gt;All previous links to codeplex/dsltreegrideditor redirect to this page only! Please update your links.&lt;br /&gt;&lt;h1&gt;
Welcome 
&lt;/h1&gt;This is the home of the &lt;b&gt;DSL Editor ‘PowerToy’&lt;/b&gt; project - a DSL enhancement PowerToy for displaying multiple customized views of a domain specific languages (DSL's).&lt;br /&gt;&lt;h2&gt;
Quick links
&lt;/h2&gt;&lt;table&gt;
&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Current Release:&lt;/b&gt; &lt;/td&gt;&lt;td&gt; &lt;a href="http://www.codeplex.com/dept/Release/ProjectReleases.aspx?ReleaseId=2089"&gt;M1 Released&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;b&gt;Documentation&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM1&amp;amp;referringTitle=Home"&gt;What is this release?&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM1_Use&amp;amp;referringTitle=Home"&gt;How to install and use it?&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM1_Customize&amp;amp;referringTitle=Home"&gt;How to customize it?&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Next Release:&lt;/b&gt; &lt;/td&gt;&lt;td&gt; &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM2&amp;amp;referringTitle=Home"&gt;What is the next release?&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=Milestones&amp;amp;referringTitle=Home"&gt;All Releases&lt;/a&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;h1&gt;
What is it?
&lt;/h1&gt;This PowerToy aims to provide a new capability that will provide an enhanced user experience for displaying and interacting with different aspects of a domain model in multiple dedicated 'editors'.&lt;br /&gt; &lt;br /&gt;The PowerToy will provide your DSL with a new tool-window containing one or more editors that manage configurable 'views' of domain classes, and their relationships. The PowerToy displays these various views by hosting windows controls that display the view, and manage the users interaction with them.&lt;br /&gt; &lt;br /&gt;For example, the following screenshot displays one such editor (bottom-half of the screen) specific for manipulating 'Data Contracts' of an existing example DSL used for authoring Web Services.&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/dept/Project/FileDownload.aspx?DownloadId=7839" alt="DataContractEditor(Small).jpg" /&gt;&lt;br /&gt; &lt;br /&gt;You can also see a similar example of an editor specific for 'Service Operations' of the same DSL &lt;a href="http://blogs.msdn.com/photos/jezzsa/images/1324294/original.aspx" class="externalLink"&gt;here&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. &lt;br /&gt;Another example of an alternative implementation used for Data Contracts in another DSL &lt;a href="http://www.edwardbakker.nl/PermaLink,guid,11ab1f38-75aa-4ce2-8fc7-ff950b745aa9.aspx" class="externalLink"&gt;here&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;&lt;h1&gt;
The Basic Idea
&lt;/h1&gt;The PowerToy will be available for download (also in source form), and will be installed by a DSL developer on their development machine.  The DSL author will, within their existing DSL solution, add and configure one or more custom editors to display some aspect of the domain model of their DSL. At runtime these editors will be displayed to the user of their DSL.&lt;br /&gt; &lt;br /&gt;The PowerToy will provide (as one choice of editor) a tree-grid-like control that displays a hierarchy of domain models elements and their child relationships. This control then allows the user to interact with and manipulate the domain classes and their properties.&lt;br /&gt; &lt;br /&gt;Please check our example &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=User%20Scenario&amp;amp;referringTitle=Home"&gt;User Scenario&lt;/a&gt; for more details for one requirement for this kind of editor, and what drove the existing implementation for it.&lt;br /&gt; &lt;br /&gt;&lt;h1&gt;
Benefits
&lt;/h1&gt;The benefits of the PowerToy include:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Provides a means to view/edit relationships and domain classes that have no visible representation on the diagram&lt;/li&gt;&lt;li&gt;Reduces shape clutter on the diagram surface&lt;/li&gt;&lt;li&gt;Provides a hierarchical view of (possibly hidden) child relationships &lt;/li&gt;&lt;li&gt;Provides a better UX (keyboard navigation) for editing multiple properties of domain classes as part of hierarchical relationships, bulk editing.&lt;/li&gt;&lt;li&gt;Also improves visibility of key properties and enables better comparisons of related instances alongside each other.&lt;/li&gt;&lt;li&gt;Allows aspect focused editors (one editor per aspect) &lt;/li&gt;&lt;li&gt;Each aspect or 'view' on the domain model would have a separate editor.&lt;/li&gt;&lt;li&gt;Can replace the grpahical designer of the DSL, with forms based editors where a box-line user interface is not optimal for the domain.&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
Increased Usability!
&lt;/h2&gt;In essence, this power toy primarily provides a better User Experience (UX) for the DSL user by exposing relationships potentially with no visibility on the diagram (i.e. in shapes or connectors), reducing shape clutter, and giving the user the ability to rapidly configuration the exposed domain classes and properties in the editor. &lt;br /&gt; &lt;br /&gt;&lt;b&gt;&lt;u&gt;Essentially this PowerToy provides the ability to expose hierarchical 'views' of the underlying domain model, that can be displayed using any windows control or other display technology&lt;/u&gt;&lt;/b&gt;&lt;br /&gt; &lt;br /&gt;&lt;h1&gt;
The Approach
&lt;/h1&gt;We are providing a staged approach to completing the implementation this PowerToy. At each stage (milestone) will deliver working code that adds a new capability to a DSL. &lt;br /&gt;Each release is designed to build upon the previous release and enhance it with a new capability and infrastructure to support that capability. &lt;br /&gt;The intention is to provide a DSL developer, using the PowerToy, deliverables that can be taken and customized to solve incremental problems that the PowerToy encounters in its development, that are expected to encounter anyone implementing this type of functionality.&lt;br /&gt; &lt;br /&gt;Please see the &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=Milestones&amp;amp;referringTitle=Home"&gt;Milestones&lt;/a&gt; page of this project to see what releases we have and what they will deliver.&lt;br /&gt;
&lt;/div&gt;</description><author>jezzsa</author><pubDate>Tue, 26 Jun 2007 10:32:33 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20070626103233A</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/dept/Wiki/View.aspx?title=Home&amp;version=47</link><description>&lt;div class="wikidoc"&gt;
*&lt;u&gt;Important Update!&lt;/u&gt;, We just changed the base URL of this site (from codeplex/dsltreegrideditor to codeplex/dept). &lt;br /&gt;All previous links to codeplex/dsltreegrideditor redirect to this page only! &lt;br /&gt;Please update your links.*&lt;br /&gt;&lt;h1&gt;
Welcome 
&lt;/h1&gt;This is the home of the &lt;b&gt;DSL Editor ‘PowerToy’&lt;/b&gt; project - a DSL enhancement PowerToy for displaying multiple customized views of a domain specific languages (DSL's).&lt;br /&gt;&lt;h2&gt;
Quick links
&lt;/h2&gt;&lt;table&gt;
&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Current Release:&lt;/b&gt; &lt;/td&gt;&lt;td&gt; &lt;a href="http://www.codeplex.com/dept/Release/ProjectReleases.aspx?ReleaseId=2089"&gt;M1 Released&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;b&gt;Documentation&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM1&amp;amp;referringTitle=Home"&gt;What is this release?&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM1_Use&amp;amp;referringTitle=Home"&gt;How to install and use it?&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM1_Customize&amp;amp;referringTitle=Home"&gt;How to customize it?&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Next Release:&lt;/b&gt; &lt;/td&gt;&lt;td&gt; &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM2&amp;amp;referringTitle=Home"&gt;What is the next release?&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=Milestones&amp;amp;referringTitle=Home"&gt;All Releases&lt;/a&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;h1&gt;
What is it?
&lt;/h1&gt;This PowerToy aims to provide a new capability that will provide an enhanced user experience for displaying and interacting with different aspects of a domain model in multiple dedicated 'editors'.&lt;br /&gt; &lt;br /&gt;The PowerToy will provide your DSL with a new tool-window containing one or more editors that manage configurable 'views' of domain classes, and their relationships. The PowerToy displays these various views by hosting windows controls that display the view, and manage the users interaction with them.&lt;br /&gt; &lt;br /&gt;For example, the following screenshot displays one such editor (bottom-half of the screen) specific for manipulating 'Data Contracts' of an existing example DSL used for authoring Web Services.&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/dept/Project/FileDownload.aspx?DownloadId=7839" alt="DataContractEditor(Small).jpg" /&gt;&lt;br /&gt; &lt;br /&gt;You can also see a similar example of an editor specific for 'Service Operations' of the same DSL &lt;a href="http://blogs.msdn.com/photos/jezzsa/images/1324294/original.aspx" class="externalLink"&gt;here&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. &lt;br /&gt;Another example of an alternative implementation used for Data Contracts in another DSL &lt;a href="http://www.edwardbakker.nl/PermaLink,guid,11ab1f38-75aa-4ce2-8fc7-ff950b745aa9.aspx" class="externalLink"&gt;here&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;&lt;h1&gt;
The Basic Idea
&lt;/h1&gt;The PowerToy will be available for download (also in source form), and will be installed by a DSL developer on their development machine.  The DSL author will, within their existing DSL solution, add and configure one or more custom editors to display some aspect of the domain model of their DSL. At runtime these editors will be displayed to the user of their DSL.&lt;br /&gt; &lt;br /&gt;The PowerToy will provide (as one choice of editor) a tree-grid-like control that displays a hierarchy of domain models elements and their child relationships. This control then allows the user to interact with and manipulate the domain classes and their properties.&lt;br /&gt; &lt;br /&gt;Please check our example &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=User%20Scenario&amp;amp;referringTitle=Home"&gt;User Scenario&lt;/a&gt; for more details for one requirement for this kind of editor, and what drove the existing implementation for it.&lt;br /&gt; &lt;br /&gt;&lt;h1&gt;
Benefits
&lt;/h1&gt;The benefits of the PowerToy include:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Provides a means to view/edit relationships and domain classes that have no visible representation on the diagram&lt;/li&gt;&lt;li&gt;Reduces shape clutter on the diagram surface&lt;/li&gt;&lt;li&gt;Provides a hierarchical view of (possibly hidden) child relationships &lt;/li&gt;&lt;li&gt;Provides a better UX (keyboard navigation) for editing multiple properties of domain classes as part of hierarchical relationships, bulk editing.&lt;/li&gt;&lt;li&gt;Also improves visibility of key properties and enables better comparisons of related instances alongside each other.&lt;/li&gt;&lt;li&gt;Allows aspect focused editors (one editor per aspect) &lt;/li&gt;&lt;li&gt;Each aspect or 'view' on the domain model would have a separate editor.&lt;/li&gt;&lt;li&gt;Can replace the grpahical designer of the DSL, with forms based editors where a box-line user interface is not optimal for the domain.&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
Increased Usability!
&lt;/h2&gt;In essence, this power toy primarily provides a better User Experience (UX) for the DSL user by exposing relationships potentially with no visibility on the diagram (i.e. in shapes or connectors), reducing shape clutter, and giving the user the ability to rapidly configuration the exposed domain classes and properties in the editor. &lt;br /&gt; &lt;br /&gt;&lt;b&gt;&lt;u&gt;Essentially this PowerToy provides the ability to expose hierarchical 'views' of the underlying domain model, that can be displayed using any windows control or other display technology&lt;/u&gt;&lt;/b&gt;&lt;br /&gt; &lt;br /&gt;&lt;h1&gt;
The Approach
&lt;/h1&gt;We are providing a staged approach to completing the implementation this PowerToy. At each stage (milestone) will deliver working code that adds a new capability to a DSL. &lt;br /&gt;Each release is designed to build upon the previous release and enhance it with a new capability and infrastructure to support that capability. &lt;br /&gt;The intention is to provide a DSL developer, using the PowerToy, deliverables that can be taken and customized to solve incremental problems that the PowerToy encounters in its development, that are expected to encounter anyone implementing this type of functionality.&lt;br /&gt; &lt;br /&gt;Please see the &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=Milestones&amp;amp;referringTitle=Home"&gt;Milestones&lt;/a&gt; page of this project to see what releases we have and what they will deliver.&lt;br /&gt;
&lt;/div&gt;</description><author>jezzsa</author><pubDate>Tue, 26 Jun 2007 10:30:43 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20070626103043A</guid></item><item><title>UPDATED WIKI: ReleaseM1_Customize</title><link>http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM1_Customize&amp;version=10</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;
How to Customize the PowerToy
&lt;/h1&gt;The following page describes the means to customize various areas of the components added to a DSL for this release.&lt;br /&gt; &lt;br /&gt;If you are looking for help on getting started installing and using the PowerToy go &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM1_Use&amp;amp;referringTitle=ReleaseM1_Customize"&gt;here&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;If you want a better understanding of how the PowerToy works, look at the &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM1_Design&amp;amp;referringTitle=ReleaseM1_Customize"&gt;Technical Design&lt;/a&gt; page.&lt;br /&gt;&lt;h2&gt;
Editor Hosting
&lt;/h2&gt;Objective: To change the host for the DSL editors&lt;br /&gt; &lt;br /&gt;In this release of the PowerToy the editors can be hosted either in a tool-window (displayed with the designer of the DSL), or, they can be hosted as a replacement for the graphical designer of your DSL. This is desirable in cases where a forms-based designer is more appropriate for your DSL, and you want to use the editors as this replacement designer.&lt;br /&gt; &lt;br /&gt;If you want to replace the graphical designer of you DSL, complete the following steps:&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Open the 'DslDefinition.dsl' diagram for your DSL&lt;/li&gt;&lt;li&gt;In the 'DSL Explorer' window, right-click on the 'Editor' node and click Delete. &lt;/li&gt;&lt;li&gt;Right-click on the root node in the 'DSL Explorer' for your DSL and select 'Add New Custom Editor'&lt;/li&gt;&lt;li&gt;Select the  'Editor' node, and in the 'Properties Window', reset the values for 'Root Class' and 'FileExtension' (at minimum).&lt;/li&gt;&lt;li&gt;Close the 'DslDefinition.dsl' diagram and save changes.&lt;/li&gt;&lt;li&gt;Open the 'DslEditorsConfiguration.deptec' diagram&lt;/li&gt;&lt;li&gt;Click anywhere on the diagram surface&lt;/li&gt;&lt;li&gt;In the 'Properties Window', change the 'Hosting Style' property to 'Designer'.&lt;/li&gt;&lt;li&gt;Save, Transform Templates, Rebuild and run.&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;To restore the default graphical designer for your DSL, complete the following reverse steps.&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Open the 'DslDefinition.dsl' diagram for your DSL&lt;/li&gt;&lt;li&gt;In the 'DSL Explorer' window, right-click on the 'Custom Editor' node and click Delete. &lt;/li&gt;&lt;li&gt;Right-click on the root node in the 'DSL Explorer' for your DSL and select 'Add New Designer'&lt;/li&gt;&lt;li&gt;Select the  'Editor' node, and in the 'Properties Window', reset the values for 'Diagram', 'Root Class' and 'FileExtension' (at minimum).&lt;/li&gt;&lt;li&gt;Close the 'DslDefinition.dsl' diagram and save changes.&lt;/li&gt;&lt;li&gt;Open the 'DslEditorsConfiguration.deptec' diagram&lt;/li&gt;&lt;li&gt;Click anywhere on the diagram surface&lt;/li&gt;&lt;li&gt;In the 'Properties Window', change the 'Hosting Style' property to 'ToolWindow'.&lt;/li&gt;&lt;li&gt;Save, Transform Templates, Rebuild and run.&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;&lt;i&gt;Note&lt;/i&gt;. It is valid to have a 'Custom Editor' forms-based designer already defined elsewhere in code for your DSL, and still host the editors in a tool-window along side that custom editor.&lt;br /&gt; &lt;br /&gt;&lt;h3&gt;
Change Editor Layout
&lt;/h3&gt;Objective: To change the layout of the controls that switch between the editors (multiple editors only)&lt;br /&gt; &lt;br /&gt;When multiple editors are configured, the PowerToy displays various navigation controls to switch between the views.  Using either a column of buttons (vertical orientation), or a dropdown (horizontal orientation), and also a row of buttons next to the dropdown.&lt;br /&gt; &lt;br /&gt;To change the layout and orientation of the controls, complete the following steps:&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Open the 'DslEditorsConfiguration.deptec' diagram&lt;/li&gt;&lt;li&gt;Click anywhere on the diagram surface&lt;/li&gt;&lt;li&gt;In the 'Properties Window', change the 'Navigation Style'.&lt;/li&gt;&lt;li&gt;Save, Transform Templates, Rebuild and run.&lt;/li&gt;
&lt;/ol&gt;&lt;h2&gt;
IDE Integration
&lt;/h2&gt;&lt;h3&gt;
Change Menu Icons and Text
&lt;/h3&gt;Objective: To change the icon and text used on either the top level menu (View | Other Windows), or the diagram context menu ('Details...'). &lt;br /&gt; &lt;br /&gt;In this release, the top level menu text is automatically generated from the 'ToolWindowTitle' property specified in the configuration language. This is to keep it in sync with the title of the tool-window and the name of the host DSL language.&lt;br /&gt; &lt;br /&gt;To change the text of the top level menu, complete the following steps:&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Open the 'DslEditorsConfiguration.deptec' diagram&lt;/li&gt;&lt;li&gt;Click anywhere on the diagram surface&lt;/li&gt;&lt;li&gt;In the 'Properties Window', change the 'ToolWindow Title'&lt;/li&gt;&lt;li&gt;Save, Transform Templates, Rebuild and run.&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;Changing the icon of the top level menu, or the text of the diagram context menu, is done in the same way as described in previous &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM0_Customize&amp;amp;referringTitle=ReleaseM1_Customize"&gt;release&lt;/a&gt;.&lt;br /&gt;&lt;h3&gt;
Change Tool-window Appearance
&lt;/h3&gt;Objective: To change the appearance of the tool-window (i.e. bitmap and title).&lt;br /&gt; &lt;br /&gt;In this release of the PowerToy, basic customization of the tool-window's appearance is done in the configuration designer.&lt;br /&gt; &lt;br /&gt;To change the appearance of the tool-window, complete the following steps:&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Open the 'DslEditorsConfiguration.deptec' diagram&lt;/li&gt;&lt;li&gt;Click anywhere on the diagram surface&lt;/li&gt;&lt;li&gt;In the 'Properties Window', change the 'ToolWindow Title' and 'ToolWindow Bitmaps File'&lt;/li&gt;&lt;li&gt;Save, Transform Templates, Rebuild and run.&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;&lt;i&gt;Note.&lt;/i&gt; You can only modify the tool-window appearance properties when you have chosen to host your editors in a Tool-window and not as the Designer.&lt;br /&gt; &lt;br /&gt;If the bitmap defined by the 'Tool-window Bitmaps File' property contains more than one bitmap (in a strip of bitmaps), it is the first bitmap that is used (by default). To change the bitmap index used, complete the following steps:&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Open the 'Tool-window.tt' text template found in the GeneratedCode folder&lt;/li&gt;&lt;li&gt;Locate the 'BitmapIndex' property getter &lt;/li&gt;&lt;li&gt;Change the return value to the index of the desired bitmap in the bitmap strip (zero-based)&lt;/li&gt;&lt;li&gt;Save, Transform Templates, Rebuild and run.&lt;/li&gt;
&lt;/ol&gt;&lt;h3&gt;
Change Tool-window Location, Orientation
&lt;/h3&gt;Objective: To change the start-up location and orientation of the tool-window, relative to other tool-windows in the IDE.&lt;br /&gt; &lt;br /&gt;This is done in the same way as described in previous &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM0_Customize&amp;amp;referringTitle=ReleaseM1_Customize"&gt;release&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;i&gt;Note.&lt;/i&gt; The necessary code for the tool-window and package is only generated when you have chosen to host your editors in a Tool-window and not as the Designer.&lt;br /&gt;&lt;h2&gt;
Editors
&lt;/h2&gt;&lt;h3&gt;
Configuring Editors
&lt;/h3&gt;Objective: To add or configure multiple editors&lt;br /&gt; &lt;br /&gt;In this release of the PowerToy it is now possible to define more than one editor (containing a custom control). Each editor contains a corresponding control, which can be any UserControl. &lt;br /&gt; &lt;br /&gt;In order to configure an editor, the PowerToy provides a configuration language designer (DslEditorsConfiguration.deptec) which contains shapes to represent the editors. Each shape has associated properties for the editor. The user can add as many editors as required, and each one has a 'Caption', 'Icon' and 'Editor Control' associated with it. &lt;br /&gt; &lt;br /&gt;Each editor can also be deactivated (Activate=false) if under partial configuration at the present time. In this state the editor will not be used.&lt;br /&gt; &lt;br /&gt;To add or configure the editors, complete the following steps:&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Open the 'DslEditorsConfiguration.deptec' diagram&lt;/li&gt;&lt;li&gt;From the toolbox, drag a new 'DSL Editor' shape to the diagram surface, or right-click on diagram and select 'Add New Dsl Editor'.&lt;/li&gt;&lt;li&gt;Select the new shape, and in the 'Properties Window' configure the editor's properties.&lt;/li&gt;&lt;li&gt;Save, Transform Templates, Rebuild and run.&lt;/li&gt;
&lt;/ol&gt;&lt;h3&gt;
Activating Editors
&lt;/h3&gt;Objective: To 'activate' a specific editor (display it) based upon current selection in DSL at runtime.&lt;br /&gt; &lt;br /&gt;When you have multiple editors defined, it is reasonable to want to 'activate' a specific editor when the user of your DSL selects certain shapes or when certain conditions arise in your DSL. For example, the editor may be tailored to specific shapes or event in the DSL, and only is valid for those shapes or events. All other times, the editor may be effectively unused. &lt;br /&gt;By default, no specific editor activation rules are applied, but in some cases this behaviour is desirable with multiple editors to guide the user to the right editor in the right context of designer use.&lt;br /&gt; &lt;br /&gt;To do this you extend the basic functionality of the existing generated tool-window and handle selection changes within it. You can also ensure this tool-window is currently displayed in the IDE.&lt;br /&gt; &lt;br /&gt;To programmatically activate a specific editor based upon context in the designer, complete the following steps:&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Create a new class file in the DSL package project (e.g. MyLanguageDslEditorToolWindow.cs) &lt;/li&gt;&lt;li&gt;Add a partial class declaration (e.g. partial class MyLanguageDslEditorToolWindow)&lt;/li&gt;&lt;li&gt;Copy the namespace and class name of the existing tool-window generated by the PowerToy (found in DslPackage\DslEditors\GeneratedCode\ToolWindow.tt\ToolWindow.cs &lt;/li&gt;&lt;li&gt;Override the OnEnvironmentSelectionChanged(ISelectionProvider, SelectionChangeSource) method. Ensuring you call the base method. Add your logic to determine which shapes/model elements you want to detect in the selection, and call ActivateEditor() method to show a specific editor. Obtain the GUID of your specific editor from the 'Editor Id' property of the  'DSL Editor' shape in configuration language DslPackage\DslEditors\DslEditorsDefintion.deptec)&lt;/li&gt;&lt;li&gt;Transform Templates, Rebuild and Run.&lt;/li&gt;
&lt;/ol&gt;Example:&lt;br /&gt;&lt;pre&gt;
using DslEditorPowerToy.Controls;
using DslEditorPowerToy.Languages;
 
namespace Company.MyLanguage.DslEditorPowerToy.Controls
{
    partial class MyLanguageDslEditorToolWindow
    {
        protected override void OnEnvironmentSelectionChanged(ISelectionProvider selectionProvider, SelectionChangeSource source)
        {
            base.OnEnvironmentSelectionChanged(selectionProvider, source);
 
            //Ensure diagram selection change
            if (SelectionChangeSource.Diagram == source)
            {
                //Get the represented model element
                if (ModelHelper.GetRepresentedElement(selectionProvider.PrimarySelection) is MyExampleElement)
                {
                    //Ensures the tool-window is shown
                    this.ShowNoActivate();
 
                    //Activates the appropriate editor
                    this.ActivateEditor(new Guid(&amp;quot;GUID_OF_THE_EDITOR_YOU_WANT_TO_ACTIVATE&amp;quot;));
                }
            }
        }
    }
}
&lt;/pre&gt;&lt;h2&gt;
Editor Controls
&lt;/h2&gt;These customizations are for custom editor controls&lt;br /&gt;&lt;h3&gt;
Handle Selection Changes
&lt;/h3&gt;Objective: To handle, within the editor control, selection changes in the diagram or model explorer.&lt;br /&gt; &lt;br /&gt;This is done in the same way as described in previous &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM0_Customize&amp;amp;referringTitle=ReleaseM1_Customize"&gt;release&lt;/a&gt;.&lt;br /&gt;(see the SelectionTackerEditor control (SelectionTackerEditor.cs) as an example of how this can be achieved)&lt;br /&gt;&lt;h3&gt;
Provide Selectable Items
&lt;/h3&gt;Objective: To provide selectable objects in the editor control, that can be exposed and edited by the ‘Properties Window’, (or other controls).&lt;br /&gt; &lt;br /&gt;This is done in the same way as described in previous &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM0_Customize&amp;amp;referringTitle=ReleaseM1_Customize"&gt;release&lt;/a&gt;.&lt;br /&gt;(see the SelectionTackerEditor control (SelectionTackerEditor.cs) as an example of how this can be achieved)&lt;br /&gt;&lt;h2&gt;
Other Customizations
&lt;/h2&gt;Objective: To customize other aspects of the added and generated code of the PowerToy.&lt;br /&gt; &lt;br /&gt;The PowerToy makes extensive use of text templates and the double-derived pattern for all its classes,  and for extending and integrating with classes of the host DSL (provided by the DSL tools).&lt;br /&gt; &lt;br /&gt;In most cases of all other customizations to PowerToy components, there are 2 levels of customization possible:&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Overriding existing functionality using partial classes (of double derived classes)&lt;/li&gt;&lt;li&gt;Modifying text templates (installed by PowerToy)&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;In the first case, to enhance existing generated code, simply add a new partial class definition (in a separate source file to the DSL package project) and override the members of the partial class providing new behaviour or functionality.&lt;br /&gt;The next level of customization is typically required only if partial classes can't achieve the required customization. In these cases, you can edit the text templates themselves to generate custom code to achieve the customization.&lt;br /&gt; &lt;br /&gt;WARNING: Be aware that modifications to text templates will be lost if either re-adding or removing the PowerToy using the recipes provided by the PowerToy.&lt;br /&gt;
&lt;/div&gt;</description><author>jezzsa</author><pubDate>Mon, 25 Jun 2007 12:49:26 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: ReleaseM1_Customize 20070625124926P</guid></item><item><title>UPDATED WIKI: ReleaseM1_Customize</title><link>http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM1_Customize&amp;version=9</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;
How to Customize the PowerToy
&lt;/h1&gt;The following page describes the means to customize various areas of the components added to a DSL for this release.&lt;br /&gt; &lt;br /&gt;If you are looking for help on getting started installing and using the PowerToy go &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM1_Use&amp;amp;referringTitle=ReleaseM1_Customize"&gt;here&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;If you want a better understanding of how the PowerToy works, look at the &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM1_Design&amp;amp;referringTitle=ReleaseM1_Customize"&gt;Technical Design&lt;/a&gt; page.&lt;br /&gt;&lt;h2&gt;
Editor Hosting
&lt;/h2&gt;Objective: To change the host for the DSL editors&lt;br /&gt; &lt;br /&gt;In this release of the PowerToy the editors can be hosted either in a tool-window (displayed with the designer of the DSL), or, they can be hosted as a replacement for the graphical designer of your DSL. This is desirable in cases where a forms-based designer is more appropriate for your DSL, and you want to use the editors as this replacement designer.&lt;br /&gt; &lt;br /&gt;If you want to replace the graphical designer of you DSL, complete the following steps:&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Open the 'DslDefinition.dsl' diagram for your DSL&lt;/li&gt;&lt;li&gt;In the 'DSL Explorer' window, right-click on the 'Editor' node and click Delete. &lt;/li&gt;&lt;li&gt;Right-click on the root node in the 'DSL Explorer' for your DSL and select 'Add New Custom Editor'&lt;/li&gt;&lt;li&gt;Select the  'Editor' node, and in the 'Properties Window', reset the values for 'Root Class' and 'FileExtension' (at minimum).&lt;/li&gt;&lt;li&gt;Close the 'DslDefinition.dsl' diagram and save changes.&lt;/li&gt;&lt;li&gt;Open the 'DslEditorsConfiguration.deptec' diagram&lt;/li&gt;&lt;li&gt;Click anywhere on the diagram surface&lt;/li&gt;&lt;li&gt;In the 'Properties Window', change the 'Hosting Style' property to 'Designer'.&lt;/li&gt;&lt;li&gt;Save, Transform Templates, Rebuild and run.&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;To restore the default graphical designer for your DSL, complete the following reverse steps.&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Open the 'DslDefinition.dsl' diagram for your DSL&lt;/li&gt;&lt;li&gt;In the 'DSL Explorer' window, right-click on the 'Custom Editor' node and click Delete. &lt;/li&gt;&lt;li&gt;Right-click on the root node in the 'DSL Explorer' for your DSL and select 'Add New Designer'&lt;/li&gt;&lt;li&gt;Select the  'Editor' node, and in the 'Properties Window', reset the values for 'Diagram', 'Root Class' and 'FileExtension' (at minimum).&lt;/li&gt;&lt;li&gt;Close the 'DslDefinition.dsl' diagram and save changes.&lt;/li&gt;&lt;li&gt;Open the 'DslEditorsConfiguration.deptec' diagram&lt;/li&gt;&lt;li&gt;Click anywhere on the diagram surface&lt;/li&gt;&lt;li&gt;In the 'Properties Window', change the 'Hosting Style' property to 'ToolWindow'.&lt;/li&gt;&lt;li&gt;Save, Transform Templates, Rebuild and run.&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;&lt;i&gt;Note&lt;/i&gt;. It is valid to have a 'Custom Editor' forms-based designer already defined elsewhere in code for your DSL, and still host the editors in a tool-window along side that custom editor.&lt;br /&gt; &lt;br /&gt;&lt;h3&gt;
Change Editor Layout
&lt;/h3&gt;Objective: To change the layout of the controls that switch between the editors (multiple editors only)&lt;br /&gt; &lt;br /&gt;When multiple editors are configured, the PowerToy displays various navigation controls to switch between the views.  Using either a column of buttons (vertical orientation), or a dropdown (horizontal orientation), and also a row of buttons next to the dropdown.&lt;br /&gt; &lt;br /&gt;To change the layout and orientation of the controls, complete the following steps:&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Open the 'DslEditorsConfiguration.deptec' diagram&lt;/li&gt;&lt;li&gt;Click anywhere on the diagram surface&lt;/li&gt;&lt;li&gt;In the 'Properties Window', change the 'Navigation Style'.&lt;/li&gt;&lt;li&gt;Save, Transform Templates, Rebuild and run.&lt;/li&gt;
&lt;/ol&gt;&lt;h2&gt;
IDE Integration
&lt;/h2&gt;&lt;h3&gt;
Change Menu Icons and Text
&lt;/h3&gt;Objective: To change the icon and text used on either the top level menu (View | Other Windows), or the diagram context menu ('Details...'). &lt;br /&gt; &lt;br /&gt;In this release, the top level menu text is automatically generated from the 'ToolWindowTitle' property specified in the configuration language. This is to keep it in sync with the title of the tool-window and the name of the host DSL language.&lt;br /&gt; &lt;br /&gt;To change the text of the top level menu, complete the following steps:&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Open the 'DslEditorsConfiguration.deptec' diagram&lt;/li&gt;&lt;li&gt;Click anywhere on the diagram surface&lt;/li&gt;&lt;li&gt;In the 'Properties Window', change the 'ToolWindow Title'&lt;/li&gt;&lt;li&gt;Save, Transform Templates, Rebuild and run.&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;Changing the icon of the top level menu, or the text of the diagram context menu, is done in the same way as described in previous &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM0_Customize&amp;amp;referringTitle=ReleaseM1_Customize"&gt;release&lt;/a&gt;.&lt;br /&gt;&lt;h3&gt;
Change Tool-window Appearance
&lt;/h3&gt;Objective: To change the appearance of the tool-window (i.e. bitmap and title).&lt;br /&gt; &lt;br /&gt;In this release of the PowerToy, basic customization of the tool-window's appearance is done in the configuration designer.&lt;br /&gt; &lt;br /&gt;To change the appearance of the tool-window, complete the following steps:&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Open the 'DslEditorsConfiguration.deptec' diagram&lt;/li&gt;&lt;li&gt;Click anywhere on the diagram surface&lt;/li&gt;&lt;li&gt;In the 'Properties Window', change the 'ToolWindow Title' and 'ToolWindow Bitmaps File'&lt;/li&gt;&lt;li&gt;Save, Transform Templates, Rebuild and run.&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;&lt;i&gt;Note.&lt;/i&gt; You can only modify the tool-window appearance properties when you have chosen to host your editors in a Tool-window and not as the Designer.&lt;br /&gt; &lt;br /&gt;If the bitmap defined by the 'Tool-window Bitmaps File' property contains more than one bitmap (in a strip of bitmaps), it is the first bitmap that is used (by default). To change the bitmap index used, complete the following steps:&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Open the 'Tool-window.tt' text template found in the GeneratedCode folder&lt;/li&gt;&lt;li&gt;Locate the 'BitmapIndex' property getter &lt;/li&gt;&lt;li&gt;Change the return value to the index of the desired bitmap in the bitmap strip (zero-based)&lt;/li&gt;&lt;li&gt;Save, Transform Templates, Rebuild and run.&lt;/li&gt;
&lt;/ol&gt;&lt;h3&gt;
Change Tool-window Location, Orientation
&lt;/h3&gt;Objective: To change the start-up location and orientation of the tool-window, relative to other tool-windows in the IDE.&lt;br /&gt; &lt;br /&gt;This is done in the same way as described in previous &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM0_Customize&amp;amp;referringTitle=ReleaseM1_Customize"&gt;release&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;i&gt;Note.&lt;/i&gt; The necessary code for the tool-window and package is only generated when you have chosen to host your editors in a Tool-window and not as the Designer.&lt;br /&gt;&lt;h2&gt;
Editors
&lt;/h2&gt;&lt;h3&gt;
Configuring Editors
&lt;/h3&gt;Objective: To add or configure multiple editors&lt;br /&gt; &lt;br /&gt;In this release of the PowerToy it is now possible to define more than one editor (containing a custom control). Each editor contains a corresponding control, which can be any UserControl. &lt;br /&gt; &lt;br /&gt;In order to configure an editor, the PowerToy provides a configuration language designer (DslEditorsConfiguration.deptec) which contains shapes to represent the editors. Each shape has associated properties for the editor. The user can add as many editors as required, and each one has a 'Caption', 'Icon' and 'Editor Control' associated with it. &lt;br /&gt; &lt;br /&gt;Each editor can also be deactivated (Activate=false) if under partial configuration at the present time. In this state the editor will not be used.&lt;br /&gt; &lt;br /&gt;To add or configure the editors, complete the following steps:&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Open the 'DslEditorsConfiguration.deptec' diagram&lt;/li&gt;&lt;li&gt;From the toolbox, drag a new 'DSL Editor' shape to the diagram surface, or right-click on diagram and select 'Add New Dsl Editor'.&lt;/li&gt;&lt;li&gt;Select the new shape, and in the 'Properties Window' configure the editor's properties.&lt;/li&gt;&lt;li&gt;Save, Transform Templates, Rebuild and run.&lt;/li&gt;
&lt;/ol&gt;&lt;h3&gt;
Activating Editors
&lt;/h3&gt;Objective: To 'activate' a specific editor (display it) based upon current selection in DSL at runtime.&lt;br /&gt; &lt;br /&gt;When you have multiple editors defined, it is reasonable to want to 'activate' a specific editor when the user of your DSL selects certain shapes or when certain conditions arise in your DSL. For example, the editor may be tailored to specific shapes or event in the DSL, and only is valid for those shapes or events. All other times, the editor may be effectively unused. &lt;br /&gt;By default, no specific editor activation rules are applied, but in some cases this behaviour is desirable with multiple editors to guide the user to the right editor in the right context of designer use.&lt;br /&gt; &lt;br /&gt;To do this you extend the basic functionality of the existing generated tool-window and handle selection changes within it. You can also ensure this tool-window is currently displayed in the IDE.&lt;br /&gt; &lt;br /&gt;To programmatically activate a specific editor based upon context in the designer, complete the following steps:&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Create a new class file in the DSL package project (e.g. MyLanguageDslEditorToolWindow.cs) &lt;/li&gt;&lt;li&gt;Add a partial class declaration (e.g. partial class MyLanguageDslEditorToolWindow)&lt;/li&gt;&lt;li&gt;Copy the namespace and class name of the existing tool-window generated by the PowerToy (found in DslPackage\DslEditors\GeneratedCode\ToolWindow.tt\ToolWindow.cs &lt;/li&gt;&lt;li&gt;Override the OnEnvironmentSelectionChanged(ISelectionProvider, SelectionChangeSource) method. Ensuring you call the base method. Add your logic to determine which shapes/model elements you want to detect in the selection, and call ActivateEditor() method to show a specific editor. Obtain the GUID of your specific editor from the 'Editor Id' property of the  'DSL Editor' shape in configuration language DslPackage\DslEditors\DslEditorsDefintion.deptec)&lt;/li&gt;&lt;li&gt;Transform Templates, Rebuild and Run.&lt;/li&gt;
&lt;/ol&gt;Example:&lt;br /&gt;&lt;pre&gt;
using DslEditorPowerToy.Controls;
using DslEditorPowerToy.Languages;
 
namespace Company.MyLanguage.DslEditorPowerToy.Controls
{
    partial class MyLanguageDslEditorToolWindow
    {
        protected override void OnEnvironmentSelectionChanged(ISelectionProvider selectionProvider, SelectionChangeSource source)
        {
            base.OnEnvironmentSelectionChanged(selectionProvider, source);
 
            //Ensure diagram selection change
            if (SelectionChangeSource.Diagram == source)
            {
                //Get the represented model element
                if (ModelHelper.GetRepresentedElement(selectionProvider.PrimarySelection) is MyExampleElement)
                {
                    //Ensures the tool-window is shown
                    this.Show();
 
                    //Activates the appropriate editor
                    this.ActivateEditor(new Guid(&amp;quot;GUID_OF_THE_EDITOR_YOU_WANT_TO_ACTIVATE&amp;quot;));
                }
            }
        }
    }
}
&lt;/pre&gt;&lt;h2&gt;
Editor Controls
&lt;/h2&gt;These customizations are for custom editor controls&lt;br /&gt;&lt;h3&gt;
Handle Selection Changes
&lt;/h3&gt;Objective: To handle, within the editor control, selection changes in the diagram or model explorer.&lt;br /&gt; &lt;br /&gt;This is done in the same way as described in previous &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM0_Customize&amp;amp;referringTitle=ReleaseM1_Customize"&gt;release&lt;/a&gt;.&lt;br /&gt;(see the SelectionTackerEditor control (SelectionTackerEditor.cs) as an example of how this can be achieved)&lt;br /&gt;&lt;h3&gt;
Provide Selectable Items
&lt;/h3&gt;Objective: To provide selectable objects in the editor control, that can be exposed and edited by the ‘Properties Window’, (or other controls).&lt;br /&gt; &lt;br /&gt;This is done in the same way as described in previous &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM0_Customize&amp;amp;referringTitle=ReleaseM1_Customize"&gt;release&lt;/a&gt;.&lt;br /&gt;(see the SelectionTackerEditor control (SelectionTackerEditor.cs) as an example of how this can be achieved)&lt;br /&gt;&lt;h2&gt;
Other Customizations
&lt;/h2&gt;Objective: To customize other aspects of the added and generated code of the PowerToy.&lt;br /&gt; &lt;br /&gt;The PowerToy makes extensive use of text templates and the double-derived pattern for all its classes,  and for extending and integrating with classes of the host DSL (provided by the DSL tools).&lt;br /&gt; &lt;br /&gt;In most cases of all other customizations to PowerToy components, there are 2 levels of customization possible:&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Overriding existing functionality using partial classes (of double derived classes)&lt;/li&gt;&lt;li&gt;Modifying text templates (installed by PowerToy)&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;In the first case, to enhance existing generated code, simply add a new partial class definition (in a separate source file to the DSL package project) and override the members of the partial class providing new behaviour or functionality.&lt;br /&gt;The next level of customization is typically required only if partial classes can't achieve the required customization. In these cases, you can edit the text templates themselves to generate custom code to achieve the customization.&lt;br /&gt; &lt;br /&gt;WARNING: Be aware that modifications to text templates will be lost if either re-adding or removing the PowerToy using the recipes provided by the PowerToy.&lt;br /&gt;
&lt;/div&gt;</description><author>jezzsa</author><pubDate>Mon, 25 Jun 2007 07:59:24 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: ReleaseM1_Customize 20070625075924A</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/dept/Wiki/View.aspx?title=Home&amp;version=46</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;Important Update!, we just changed the URL of this site (from codeplex/dsltreegrideditor to codeplex/dept). All previous links to codeplex/dsltreegrideditor redirect to this page only! Please update your links.&lt;/b&gt;&lt;br /&gt;&lt;h1&gt;
Welcome 
&lt;/h1&gt;This is the home of the &lt;b&gt;DSL Editor ‘PowerToy’&lt;/b&gt; project - a DSL enhancement PowerToy for displaying multiple customized views of a domain specific languages (DSL's).&lt;br /&gt;&lt;h2&gt;
Quick links
&lt;/h2&gt;&lt;table&gt;
&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Current Release:&lt;/b&gt; &lt;/td&gt;&lt;td&gt; &lt;a href="http://www.codeplex.com/dept/Release/ProjectReleases.aspx?ReleaseId=2089"&gt;M1 Released&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;b&gt;Documentation&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM1&amp;amp;referringTitle=Home"&gt;What is this release?&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM1_Use&amp;amp;referringTitle=Home"&gt;How to install and use it?&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM1_Customize&amp;amp;referringTitle=Home"&gt;How to customize it?&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Next Release:&lt;/b&gt; &lt;/td&gt;&lt;td&gt; &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM2&amp;amp;referringTitle=Home"&gt;What is the next release?&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=Milestones&amp;amp;referringTitle=Home"&gt;All Releases&lt;/a&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;h1&gt;
What is it?
&lt;/h1&gt;This PowerToy aims to provide a new capability that will provide an enhanced user experience for displaying and interacting with different aspects of a domain model in multiple dedicated 'editors'.&lt;br /&gt; &lt;br /&gt;The PowerToy will provide your DSL with a new tool-window containing one or more editors that manage configurable 'views' of domain classes, and their relationships. The PowerToy displays these various views by hosting windows controls that display the view, and manage the users interaction with them.&lt;br /&gt; &lt;br /&gt;For example, the following screenshot displays one such editor (bottom-half of the screen) specific for manipulating 'Data Contracts' of an existing example DSL used for authoring Web Services.&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/dept/Project/FileDownload.aspx?DownloadId=7839" alt="DataContractEditor(Small).jpg" /&gt;&lt;br /&gt; &lt;br /&gt;You can also see a similar example of an editor specific for 'Service Operations' of the same DSL &lt;a href="http://blogs.msdn.com/photos/jezzsa/images/1324294/original.aspx" class="externalLink"&gt;here&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. &lt;br /&gt;Another example of an alternative implementation used for Data Contracts in another DSL &lt;a href="http://www.edwardbakker.nl/PermaLink,guid,11ab1f38-75aa-4ce2-8fc7-ff950b745aa9.aspx" class="externalLink"&gt;here&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;&lt;h1&gt;
The Basic Idea
&lt;/h1&gt;The PowerToy will be available for download (also in source form), and will be installed by a DSL developer on their development machine.  The DSL author will, within their existing DSL solution, add and configure one or more custom editors to display some aspect of the domain model of their DSL. At runtime these editors will be displayed to the user of their DSL.&lt;br /&gt; &lt;br /&gt;The PowerToy will provide (as one choice of editor) a tree-grid-like control that displays a hierarchy of domain models elements and their child relationships. This control then allows the user to interact with and manipulate the domain classes and their properties.&lt;br /&gt; &lt;br /&gt;Please check our example &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=User%20Scenario&amp;amp;referringTitle=Home"&gt;User Scenario&lt;/a&gt; for more details for one requirement for this kind of editor, and what drove the existing implementation for it.&lt;br /&gt; &lt;br /&gt;&lt;h1&gt;
Benefits
&lt;/h1&gt;The benefits of the PowerToy include:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Provides a means to view/edit relationships and domain classes that have no visible representation on the diagram&lt;/li&gt;&lt;li&gt;Reduces shape clutter on the diagram surface&lt;/li&gt;&lt;li&gt;Provides a hierarchical view of (possibly hidden) child relationships &lt;/li&gt;&lt;li&gt;Provides a better UX (keyboard navigation) for editing multiple properties of domain classes as part of hierarchical relationships, bulk editing.&lt;/li&gt;&lt;li&gt;Also improves visibility of key properties and enables better comparisons of related instances alongside each other.&lt;/li&gt;&lt;li&gt;Allows aspect focused editors (one editor per aspect) &lt;/li&gt;&lt;li&gt;Each aspect or 'view' on the domain model would have a separate editor.&lt;/li&gt;&lt;li&gt;Can replace the grpahical designer of the DSL, with forms based editors where a box-line user interface is not optimal for the domain.&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
Increased Usability!
&lt;/h2&gt;In essence, this power toy primarily provides a better User Experience (UX) for the DSL user by exposing relationships potentially with no visibility on the diagram (i.e. in shapes or connectors), reducing shape clutter, and giving the user the ability to rapidly configuration the exposed domain classes and properties in the editor. &lt;br /&gt; &lt;br /&gt;&lt;b&gt;&lt;u&gt;Essentially this PowerToy provides the ability to expose hierarchical 'views' of the underlying domain model, that can be displayed using any windows control or other display technology&lt;/u&gt;&lt;/b&gt;&lt;br /&gt; &lt;br /&gt;&lt;h1&gt;
The Approach
&lt;/h1&gt;We are providing a staged approach to completing the implementation this PowerToy. At each stage (milestone) will deliver working code that adds a new capability to a DSL. &lt;br /&gt;Each release is designed to build upon the previous release and enhance it with a new capability and infrastructure to support that capability. &lt;br /&gt;The intention is to provide a DSL developer, using the PowerToy, deliverables that can be taken and customized to solve incremental problems that the PowerToy encounters in its development, that are expected to encounter anyone implementing this type of functionality.&lt;br /&gt; &lt;br /&gt;Please see the &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=Milestones&amp;amp;referringTitle=Home"&gt;Milestones&lt;/a&gt; page of this project to see what releases we have and what they will deliver.&lt;br /&gt;
&lt;/div&gt;</description><author>jezzsa</author><pubDate>Sun, 24 Jun 2007 19:39:40 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20070624073940P</guid></item><item><title>UPDATED WIKI: ReleaseM2_Planning</title><link>http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM2_Planning&amp;version=3</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;
Release Milestone 2 - Planning
&lt;/h1&gt;&lt;h2&gt;
Business Objectives
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Provide a means to configure customizable 'views' or hierarchical relationships of classes from underlying domain model (representing some aspect or relationship), and then provide a hierarchical display of them in a custom editor control.&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
Technical Objectives
&lt;/h2&gt;The objectives of this release are:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Provide a means to configure each view using existing graphical configuration language (DSL)&lt;/li&gt;&lt;li&gt;Provide a programmatic means for an editor to access and navigate the view and read/write interface to underlying domain classes and relationships.&lt;/li&gt;&lt;li&gt;Provide a simple hierarchical control to display this view (read-only) and allow user to navigate this view.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;This release with continue to follow the patterns of the previous release. And this release will leverage assets from that release.&lt;br /&gt;This release will build upon those patterns and enhance them where necessary to add further functionality.&lt;br /&gt;&lt;h2&gt;
Technical Implementation
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;TBA&lt;/li&gt;
&lt;/ul&gt;We are considering a few user experiences for configuring the views. &lt;br /&gt;In either case we need a treeview to mark the domain classes/relationships that are included in the view.&lt;br /&gt;Using the graphical designer approach, we could have a UX like this:&lt;br /&gt;&lt;img src="http://www.codeplex.com/dsltreegrideditor/Project/FileDownload.aspx?DownloadId=14213" alt="GraphicalBasedMockUX.png" /&gt;&lt;br /&gt;If we move to a forms based designer approach, we could have a UX like this:&lt;br /&gt;&lt;img src="http://www.codeplex.com/dsltreegrideditor/Project/FileDownload.aspx?DownloadId=14212" alt="FormsBasedMockUX.png" /&gt;&lt;br /&gt;Currently we are evaluating the benefits of either approach to provide the best presentation for the user.&lt;br /&gt;&lt;h2&gt;
Technical Constraints
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Installation should &lt;u&gt;not&lt;/u&gt; be side-by-side (only one version of PowerToy allowed to be installed)&lt;/li&gt;&lt;li&gt;Only targeting VS2005 (Whidbey), &lt;u&gt;not&lt;/u&gt; targeting VS2007 (Orcas)&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description><author>jezzsa</author><pubDate>Sun, 17 Jun 2007 20:49:57 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: ReleaseM2_Planning 20070617084957P</guid></item><item><title>UPDATED WIKI: ReleaseM2_Planning</title><link>http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM2_Planning&amp;version=2</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;
Release Milestone 2 - Planning
&lt;/h1&gt;&lt;h2&gt;
Business Objectives
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Provide a means to configure customizable 'views' or hierarchical relationships of classes from underlying domain model (representing some aspect or relationship), and then provide a hierarchical display of them in a custom editor control.&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
Technical Objectives
&lt;/h2&gt;The objectives of this release are:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Provide a means to configure each view using existing graphical configuration language (DSL)&lt;/li&gt;&lt;li&gt;Provide a programmatic means for an editor to access and navigate the view and read/write interface to underlying domain classes and relationships.&lt;/li&gt;&lt;li&gt;Provide a simple hierarchical control to display this view (read-only) and allow user to navigate this view.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;This release with continue to follow the patterns of the previous release. And this release will leverage assets from that release.&lt;br /&gt;This release will build upon those patterns and enhance them where necessary to add further functionality.&lt;br /&gt;&lt;h2&gt;
Technical Implementation
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;TBA&lt;/li&gt;
&lt;/ul&gt;We are considering a user experience such as the following to allow us to configure the views:&lt;br /&gt;&lt;img src="http://www.codeplex.com/dsltreegrideditor/Project/FileDownload.aspx?DownloadId=13919" alt="MockUX.png" /&gt;&lt;br /&gt;&lt;h2&gt;
Technical Constraints
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Installation should &lt;u&gt;not&lt;/u&gt; be side-by-side (only one version of PowerToy allowed to be installed)&lt;/li&gt;&lt;li&gt;Only targeting VS2005 (Whidbey), &lt;u&gt;not&lt;/u&gt; targeting VS2007 (Orcas)&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description><author>jezzsa</author><pubDate>Tue, 12 Jun 2007 06:14:13 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: ReleaseM2_Planning 20070612061413A</guid></item><item><title>UPDATED WIKI: ReleaseM1</title><link>http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM1&amp;version=12</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;
Release Milestone 1 - Custom Editors
&lt;/h1&gt;&lt;h2&gt;
What is it?
&lt;/h2&gt;&lt;b&gt;A means to add multiple editors to your DSL, either hosted in a tool-window, or replace the graphical designer of your DSL&lt;/b&gt;&lt;br /&gt;&lt;h2&gt;
What is available?
&lt;/h2&gt;This release is available for download here: &lt;a href="http://www.codeplex.com/dept/Release/ProjectReleases.aspx?ReleaseId=2089"&gt;M1 Released&lt;/a&gt;&lt;br /&gt;&lt;h3&gt;
Pre-requisites
&lt;/h3&gt;You will need the following development environment to install and use this PowerToy:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Visual Studio 2005 (Professional/Team Suite)&lt;/li&gt;&lt;li&gt;&lt;a href="http://go.microsoft.com/fwlink/?linkid=73702" class="externalLink"&gt;Visual Studio SDK&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; (v.4 preferred)&lt;/li&gt;&lt;li&gt;&lt;a href="http://msdn2.microsoft.com/en-us/teamsystem/aa718949.aspx" class="externalLink"&gt;Guidance Automation Toolkit&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; (Feb2007CTP prefered) or June2006CTP&lt;/li&gt;
&lt;/ul&gt;This release also has a dependence on the following components (which are installed by the PowerToy):&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://codeplex.com/gel" class="externalLink"&gt;Guidance Automation Extensions (v.1.3.1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; (GEL)&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
What is it used for?
&lt;/h2&gt;The intention of this release is to extend the basic functionality of the previous release &lt;a href="http://www.codeplex.com/dept/Release/ProjectReleases.aspx?ReleaseId=2088"&gt;M0 Released&lt;/a&gt; and allow the DSL developer to very quickly enable multiple editors for their DSL. &lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/dsltreegrideditor/Project/FileDownload.aspx?DownloadId=12207" alt="Multiple Editors ToolWindow.png" /&gt;&lt;br /&gt; &lt;br /&gt;In this release, there are 3 hosting options for integrating (hosting) the editors to enhance your DSL language:&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Host editors a tool-window which appears alongside your graphical DSL designer&lt;/li&gt;&lt;li&gt;Replace your graphical designer with the editors as the forms based user interface to your DSL.&lt;/li&gt;&lt;li&gt;Replace your graphical designer with your own custom forms-based designer, and have the editors in a tool-window which appears alongside your custom forms-based designer.&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;If hosting the editors in a tool-window, that tool-window appears only when the DSL designer is active in the IDE. &lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/dsltreegrideditor/Project/FileDownload.aspx?DownloadId=12208" alt="ToolWindow.png" /&gt;&lt;br /&gt; &lt;br /&gt;The editors can replace the graphical designer of the DSL, in cases where a forms-based user interface is more appropriate for the DSL.&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/dsltreegrideditor/Project/FileDownload.aspx?DownloadId=12485" alt="Designer.png" /&gt;&lt;br /&gt; &lt;br /&gt;It is also possible to replace the graphical designer with your own custom forms-based designer and still have the editors hosted in a tool-window along side your custom designer.&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/dsltreegrideditor/Project/FileDownload.aspx?DownloadId=12484" alt="Custom Designer ToolWindow.png " /&gt;&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
What is included?
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;The PowerToy provides a new configuration language (DSL) to configure the editors and hosts.&lt;/li&gt;&lt;li&gt;The PowerToy adds a new tool-window (or replacement designer ), which contains one or more&lt;/li&gt;&lt;li&gt;The replacement designer can only valid when a 'Custom Editor' has been configured in the DSL. The tool-window and old graphical designer will be replaced with the editors themselves.&lt;/li&gt;
&lt;/ul&gt;editors, each providing a logical view of the underlying domain model of the DSL.&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;The default editor used in this release is essentially the same basic editor used in previous release which displays basic selection information on the diagram (or IDE), and now provides selectable items. &lt;/li&gt;&lt;ul&gt;
&lt;li&gt;The next release of the PowerToy will provide a richer editor for visualising domain relationships.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;&lt;h2&gt;
How do you use it?
&lt;/h2&gt;To install this release, add and configure the editors, see &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM1_Use&amp;amp;referringTitle=ReleaseM1"&gt;How to Use&lt;/a&gt;&lt;br /&gt;&lt;h2&gt;
How it works?
&lt;/h2&gt;Detailed information about how the PowerToy works, and the design decisions made in its development can be found in the &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM1_Design&amp;amp;referringTitle=ReleaseM1"&gt;Technical Design&lt;/a&gt; page.&lt;br /&gt;&lt;h2&gt;
Customizing it?
&lt;/h2&gt;With this release you can customize various attributes of the host  (i.e. layout etc.), and tool-window (i.e. title, icon etc.), and you can add/remove/modify, and customize, any of the contained editors .&lt;br /&gt; &lt;br /&gt;For more details on how to customize this release, see &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM1_Customize&amp;amp;referringTitle=ReleaseM1"&gt;How to Customize&lt;/a&gt;&lt;br /&gt;&lt;h2&gt;
What was planned for this release?
&lt;/h2&gt;The planning details, and technical requirements for this release are detailed &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM1_Planning&amp;amp;referringTitle=ReleaseM1"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;h2&gt;
Feedback
&lt;/h2&gt;We would like to capture any feedback you have about this release, or perhaps upcoming releases. &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/dept/WorkItem/List.aspx" class="externalLink"&gt;Issues, Bugs, Feature Requests&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/dept/Thread/List.aspx" class="externalLink"&gt;General Discussion Topics&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description><author>jezzsa</author><pubDate>Mon, 21 May 2007 11:03:25 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: ReleaseM1 20070521110325A</guid></item><item><title>UPDATED WIKI: ReleaseM0</title><link>http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM0&amp;version=19</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;
Release Milestone 0 - Custom Tool Window
&lt;/h1&gt;&lt;h2&gt;
What is it?
&lt;/h2&gt;&lt;b&gt;A means to add a DSL specific tool-window, containing a simple editor, to an existing DSL&lt;/b&gt;&lt;br /&gt;&lt;h2&gt;
What is available?
&lt;/h2&gt;This release is available for download here: &lt;a href="http://www.codeplex.com/dept/Release/ProjectReleases.aspx?ReleaseId=2088"&gt;M0 Released&lt;/a&gt;&lt;br /&gt;&lt;h3&gt;
Pre-requisites
&lt;/h3&gt;You will need the following development environment to install and use this PowerToy:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Visual Studio 2005 (Professional/Team Suite)&lt;/li&gt;&lt;li&gt;&lt;a href="http://go.microsoft.com/fwlink/?linkid=73702" class="externalLink"&gt;Visual Studio SDK&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; (v.4 preferred)&lt;/li&gt;&lt;li&gt;&lt;a href="http://msdn2.microsoft.com/en-us/teamsystem/aa718949.aspx" class="externalLink"&gt;Guidance Automation Toolkit&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; (Feb2007CTP, or June2006CTP)&lt;/li&gt;
&lt;/ul&gt;This release also has a dependence on the following components (which are installed by the PowerToy):&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://codeplex.com/gel" class="externalLink"&gt;Guidance Automation Extensions&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; (GEL)&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
What is it used for?
&lt;/h2&gt;This release can be used as a starting point for enabling a tool-window for your DSL, containing a custom editor.&lt;br /&gt; &lt;br /&gt;The intention is to provide the basic infrastructure for providing a tool-window and editor to display elements or aspects of a DSL diagram. This will be built upon in subsequent versions of the PowerToy.&lt;br /&gt;&lt;img src="http://www.codeplex.com/dsltreegrideditor/Project/FileDownload.aspx?DownloadId=8582" alt="DSL Editor.png" /&gt;&lt;br /&gt;&lt;h2&gt;
What is included?
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;The PowerToy adds a tool-window containing an editor which provides some kind of ‘view’ on the domain model of the DSL. The editor provides the means to interact with this view.&lt;/li&gt;&lt;li&gt;The editor for this release is very basic indeed, simply handling and displaying basic information about the current selection in diagram. This editor is expected to be replaced with a better editor throughout the development of this PowerToy.&lt;/li&gt;&lt;li&gt;The tool-window is only active for the specific DSL diagram, and is not present when editing other types of DSL’s or source files.&lt;/li&gt;&lt;li&gt;The tool-window can be activated from either a context menu on the diagram, or from a top level menu in Visual Studio (found on the View | Other Windows menu).&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
How do you use it?
&lt;/h2&gt;To install this release, add and configure a custom tool-window editor, see &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM0_Use&amp;amp;referringTitle=ReleaseM0"&gt;How to Use&lt;/a&gt;&lt;br /&gt;&lt;h2&gt;
How it works?
&lt;/h2&gt;Detailed information about how the PowerToy works, and the design decisions made in its development can be found in the &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM0_Design&amp;amp;referringTitle=ReleaseM0"&gt;Technical Design&lt;/a&gt; page.&lt;br /&gt;&lt;h2&gt;
Customizing it?
&lt;/h2&gt;With this release you can customize various attributes about the tool-window (i.e. title, icon, placement etc), and you can customize or replace the user control contained within the tool-window with one of your own.&lt;br /&gt; &lt;br /&gt;For more details on how to customize this release, see &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM0_Customize&amp;amp;referringTitle=ReleaseM0"&gt;How to Customize the Editor&lt;/a&gt;&lt;br /&gt;&lt;h2&gt;
Feedback
&lt;/h2&gt;We would like to capture any feedback you have about this release, or perhaps upcoming releases. &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/dept/WorkItem/List.aspx" class="externalLink"&gt;Issues, Bugs, Feature Requests&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/dept/Thread/List.aspx" class="externalLink"&gt;General Discussion Topics&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description><author>jezzsa</author><pubDate>Mon, 21 May 2007 11:00:38 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: ReleaseM0 20070521110038A</guid></item><item><title>UPDATED WIKI: ReleaseM2_Planning</title><link>http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM2_Planning&amp;version=1</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;
Release Milestone 2 - Planning
&lt;/h1&gt;&lt;h2&gt;
Business Objectives
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Provide a means to configure customizable 'views' or hierarchical relationships of classes from underlying domain model (representing some aspect or relationship), and then provide a hierarchical display of them in a custom editor control.&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
Technical Objectives
&lt;/h2&gt;The objectives of this release are:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Provide a means to configure each view using existing graphical configuration language (DSL)&lt;/li&gt;&lt;li&gt;Provide a programmatic means for an editor to access and navigate the view and read/write interface to underlying domain classes and relationships.&lt;/li&gt;&lt;li&gt;Provide a simple hierarchical control to display this view (read-only) and allow user to navigate this view.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;This release with continue to follow the patterns of the previous release. And this release will leverage assets from that release.&lt;br /&gt;This release will build upon those patterns and enhance them where necessary to add further functionality.&lt;br /&gt;&lt;h2&gt;
Technical Implementation
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;TBA&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
Technical Constraints
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Installation should &lt;u&gt;not&lt;/u&gt; be side-by-side (only one version of PowerToy allowed to be installed)&lt;/li&gt;&lt;li&gt;Only targeting VS2005 (Whidbey), &lt;u&gt;not&lt;/u&gt; targeting VS2007 (Orcas)&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description><author>jezzsa</author><pubDate>Sun, 20 May 2007 13:07:06 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: ReleaseM2_Planning 20070520010706P</guid></item><item><title>UPDATED WIKI: ReleaseM2</title><link>http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM2&amp;version=1</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;
Release Milestone 2 - Basic Custom Control
&lt;/h1&gt;&lt;h2&gt;
What is it?
&lt;/h2&gt;&lt;b&gt;A means to define and display a view (domain classes and relationships) of the underlying domain model of the DSL&lt;/b&gt;&lt;br /&gt;&lt;h2&gt;
What is available?
&lt;/h2&gt;This release is in &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM2_Planning&amp;amp;referringTitle=ReleaseM2"&gt;Planning and Development&lt;/a&gt;.&lt;br /&gt;&lt;h2&gt;
What is it used for?
&lt;/h2&gt;This release can be used as a starting point for adding your own controls for viewing domain classes and relationships arranged into a custom 'view'. This 'view' (collection of domain classes and relationships) typically shows a single hierarchical child relationship in or aspect across the underlying domain model. This release delivers a custom control that demonstrates one way to display such a view.&lt;br /&gt; &lt;br /&gt;The intention is to extend the basic functionality of the previous release &lt;a href="http://www.codeplex.com/dept/Release/ProjectReleases.aspx?ReleaseId=2089"&gt;M1 Released&lt;/a&gt; and allow the user of the PowerToy to define these custom views using the existing configuration language. This release will then provide all the hooks and access required for an editor control to display and interact with the view and the underlying domain model.&lt;br /&gt;
&lt;/div&gt;</description><author>jezzsa</author><pubDate>Sun, 20 May 2007 12:58:32 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: ReleaseM2 20070520125832P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/dept/Wiki/View.aspx?title=Home&amp;version=45</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;
Welcome 
&lt;/h1&gt;This is the home of the &lt;b&gt;DSL Editor ‘PowerToy’&lt;/b&gt; project - a DSL enhancement PowerToy for displaying multiple customized views of a domain specific languages (DSL's).&lt;br /&gt;&lt;h2&gt;
Quick links
&lt;/h2&gt;&lt;table&gt;
&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Current Release:&lt;/b&gt; &lt;/td&gt;&lt;td&gt; &lt;a href="http://www.codeplex.com/dept/Release/ProjectReleases.aspx?ReleaseId=2089"&gt;M1 Released&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;b&gt;Documentation&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM1&amp;amp;referringTitle=Home"&gt;What is this release?&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM1_Use&amp;amp;referringTitle=Home"&gt;How to install and use it?&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM1_Customize&amp;amp;referringTitle=Home"&gt;How to customize it?&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Next Release:&lt;/b&gt; &lt;/td&gt;&lt;td&gt; &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM2&amp;amp;referringTitle=Home"&gt;What is the next release?&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=Milestones&amp;amp;referringTitle=Home"&gt;All Releases&lt;/a&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;h1&gt;
What is it?
&lt;/h1&gt;This PowerToy aims to provide a new capability that will provide an enhanced user experience for displaying and interacting with different aspects of a domain model in multiple dedicated 'editors'.&lt;br /&gt; &lt;br /&gt;The PowerToy will provide your DSL with a new tool-window containing one or more editors that manage configurable 'views' of domain classes, and their relationships. The PowerToy displays these various views by hosting windows controls that display the view, and manage the users interaction with them.&lt;br /&gt; &lt;br /&gt;For example, the following screenshot displays one such editor (bottom-half of the screen) specific for manipulating 'Data Contracts' of an existing example DSL used for authoring Web Services.&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/dsltreegrideditor/Project/FileDownload.aspx?DownloadId=7839" alt="DataContractEditor(Small).jpg" /&gt;&lt;br /&gt; &lt;br /&gt;You can also see a similar example of an editor specific for 'Service Operations' of the same DSL &lt;a href="http://blogs.msdn.com/photos/jezzsa/images/1324294/original.aspx" class="externalLink"&gt;here&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. &lt;br /&gt;Another example of an alternative implementation used for Data Contracts in another DSL &lt;a href="http://www.edwardbakker.nl/PermaLink,guid,11ab1f38-75aa-4ce2-8fc7-ff950b745aa9.aspx" class="externalLink"&gt;here&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;&lt;h1&gt;
The Basic Idea
&lt;/h1&gt;The PowerToy will be available for download (also in source form), and will be installed by a DSL developer on their development machine.  The DSL author will, within their existing DSL solution, add and configure one or more custom editors to display some aspect of the domain model of their DSL. At runtime these editors will be displayed to the user of their DSL.&lt;br /&gt; &lt;br /&gt;The PowerToy will provide (as one choice of editor) a tree-grid-like control that displays a hierarchy of domain models elements and their child relationships. This control then allows the user to interact with and manipulate the domain classes and their properties.&lt;br /&gt; &lt;br /&gt;Please check our example &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=User%20Scenario&amp;amp;referringTitle=Home"&gt;User Scenario&lt;/a&gt; for more details for one requirement for this kind of editor, and what drove the existing implementation for it.&lt;br /&gt; &lt;br /&gt;&lt;h1&gt;
Benefits
&lt;/h1&gt;The benefits of the PowerToy include:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Provides a means to view/edit relationships and domain classes that have no visible representation on the diagram&lt;/li&gt;&lt;li&gt;Reduces shape clutter on the diagram surface&lt;/li&gt;&lt;li&gt;Provides a hierarchical view of (possibly hidden) child relationships &lt;/li&gt;&lt;li&gt;Provides a better UX (keyboard navigation) for editing multiple properties of domain classes as part of hierarchical relationships, bulk editing.&lt;/li&gt;&lt;li&gt;Also improves visibility of key properties and enables better comparisons of related instances alongside each other.&lt;/li&gt;&lt;li&gt;Allows aspect focused editors (one editor per aspect) &lt;/li&gt;&lt;li&gt;Each aspect or 'view' on the domain model would have a separate editor.&lt;/li&gt;&lt;li&gt;Can replace the grpahical designer of the DSL, with forms based editors where a box-line user interface is not optimal for the domain.&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
Increased Usability!
&lt;/h2&gt;In essence, this power toy primarily provides a better User Experience (UX) for the DSL user by exposing relationships potentially with no visibility on the diagram (i.e. in shapes or connectors), reducing shape clutter, and giving the user the ability to rapidly configuration the exposed domain classes and properties in the editor. &lt;br /&gt; &lt;br /&gt;&lt;b&gt;&lt;u&gt;Essentially this PowerToy provides the ability to expose hierarchical 'views' of the underlying domain model, that can be displayed using any windows control or other display technology&lt;/u&gt;&lt;/b&gt;&lt;br /&gt; &lt;br /&gt;&lt;h1&gt;
The Approach
&lt;/h1&gt;We are providing a staged approach to completing the implementation this PowerToy. At each stage (milestone) will deliver working code that adds a new capability to a DSL. &lt;br /&gt;Each release is designed to build upon the previous release and enhance it with a new capability and infrastructure to support that capability. &lt;br /&gt;The intention is to provide a DSL developer, using the PowerToy, deliverables that can be taken and customized to solve incremental problems that the PowerToy encounters in its development, that are expected to encounter anyone implementing this type of functionality.&lt;br /&gt; &lt;br /&gt;Please see the &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=Milestones&amp;amp;referringTitle=Home"&gt;Milestones&lt;/a&gt; page of this project to see what releases we have and what they will deliver.&lt;br /&gt;
&lt;/div&gt;</description><author>jezzsa</author><pubDate>Sun, 20 May 2007 06:36:04 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20070520063604A</guid></item><item><title>UPDATED WIKI: Milestones</title><link>http://www.codeplex.com/dept/Wiki/View.aspx?title=Milestones&amp;version=23</link><description>&lt;div class="wikidoc"&gt;
This page describes the development plan, the features and the deliverables from each milestone.&lt;br /&gt; &lt;br /&gt;We are still seeking further &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=Requirements&amp;amp;referringTitle=Milestones"&gt;Requirements&lt;/a&gt; for the PowerToy, so please contribute your ideas to the Discussions.&lt;br /&gt; &lt;br /&gt;&lt;h1&gt;
&lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM0&amp;amp;referringTitle=Milestones"&gt;Milestone 0&lt;/a&gt; - 'Custom Tool Window'
&lt;/h1&gt;&lt;b&gt;A means to add a DSL specific tool-window containing a simple editor, and menu commands to existing DSL&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;u&gt;Features:&lt;/u&gt;&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Runtime:&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Adds a single tool-window, containing simple control that tracks current selection of a host DSL.&lt;/li&gt;&lt;li&gt;Adds a menu on the View | Other Windows menu to show the tool-window.&lt;/li&gt;&lt;li&gt;Adds a DSL designer context menu to show the tool-window.&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;DesignTime:&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Adds GAT recipes for installing/uninstalling the PowerToy to a DSL Solution (installs/uninstalls necessary files and libraries into DSL Host solution).&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM0&amp;amp;referringTitle=Milestones"&gt;Release Details...&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;h1&gt;
&lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM1&amp;amp;referringTitle=Milestones"&gt;Milestone 1&lt;/a&gt;  - 'Custom Editors'
&lt;/h1&gt;&lt;b&gt;A means to add multiple editors to your DSL, either hosted in a tool-window, or replace the graphical designer of your DSL&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM1_Planning&amp;amp;referringTitle=Milestones"&gt;Planning Details...&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;u&gt;Features:&lt;/u&gt;&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Runtime:&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Adds multiple editors (and tabs) &lt;/li&gt;&lt;li&gt;Hosts the editors within the tool-window, or as the replacement design surface for the DSL.&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;DesignTime:&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Adds small DSL language to host DSL solution for configuring the editors and hosting options&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM1&amp;amp;referringTitle=Milestones"&gt;Release Details...&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;h1&gt;
Milestone 2 - 'Basic Custom Control'
&lt;/h1&gt;&lt;b&gt;A means to define and display a view (domain classes and relationships) of the underlying domain model of the DSL.&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;u&gt;Features:&lt;/u&gt;&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Runtime:&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Enhanced configuration language to orchestrate a 'view' of the domain model&lt;/li&gt;&lt;li&gt;A simple hierarchical control (Explorer, Navigator type control) to view these relationships (limited read/write capability)&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;DesignTime:&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Refines configuration language&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ul&gt;&lt;h1&gt;
Milestone 3 - 'Advanced Custom Control'
&lt;/h1&gt;&lt;b&gt;A means to display a tree-grid-like UI to navigate and interact with the contents of each view.&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;u&gt;Features:&lt;/u&gt;&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Runtime:&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;An advanced hierarchical control (Tree-grid-like control) to view and modify these relationships (full read/write capability)&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;</description><author>jezzsa</author><pubDate>Sat, 19 May 2007 22:10:20 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Milestones 20070519101020P</guid></item><item><title>UPDATED WIKI: ReleaseM1</title><link>http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM1&amp;version=11</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;
Release Milestone 1 - Custom Editors
&lt;/h1&gt;&lt;h2&gt;
What is it?
&lt;/h2&gt;&lt;b&gt;A means to add multiple editors to your DSL, either hosted in a tool-window, or replace the graphical designer of your DSL&lt;/b&gt;&lt;br /&gt;&lt;h2&gt;
What is available?
&lt;/h2&gt;This release is available for download here: &lt;a href="http://www.codeplex.com/dept/Release/ProjectReleases.aspx?ReleaseId=2089"&gt;M1 Released&lt;/a&gt;&lt;br /&gt;&lt;h2&gt;
What is it used for?
&lt;/h2&gt;The intention of this release is to extend the basic functionality of the previous release &lt;a href="http://www.codeplex.com/dept/Release/ProjectReleases.aspx?ReleaseId=2088"&gt;M0 Released&lt;/a&gt; and allow the DSL developer to very quickly enable multiple editors for their DSL. &lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/dsltreegrideditor/Project/FileDownload.aspx?DownloadId=12207" alt="Multiple Editors ToolWindow.png" /&gt;&lt;br /&gt; &lt;br /&gt;In this release, there are 3 hosting options for integrating (hosting) the editors to enhance your DSL language:&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Host editors a tool-window which appears alongside your graphical DSL designer&lt;/li&gt;&lt;li&gt;Replace your graphical designer with the editors as the forms based user interface to your DSL.&lt;/li&gt;&lt;li&gt;Replace your graphical designer with your own custom forms-based designer, and have the editors in a tool-window which appears alongside your custom forms-based designer.&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;If hosting the editors in a tool-window, that tool-window appears only when the DSL designer is active in the IDE. &lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/dsltreegrideditor/Project/FileDownload.aspx?DownloadId=12208" alt="ToolWindow.png" /&gt;&lt;br /&gt; &lt;br /&gt;The editors can replace the graphical designer of the DSL, in cases where a forms-based user interface is more appropriate for the DSL.&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/dsltreegrideditor/Project/FileDownload.aspx?DownloadId=12485" alt="Designer.png" /&gt;&lt;br /&gt; &lt;br /&gt;It is also possible to replace the graphical designer with your own custom forms-based designer and still have the editors hosted in a tool-window along side your custom designer.&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/dsltreegrideditor/Project/FileDownload.aspx?DownloadId=12484" alt="Custom Designer ToolWindow.png " /&gt;&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
What is included?
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;The PowerToy provides a new configuration language (DSL) to configure the editors and hosts.&lt;/li&gt;&lt;li&gt;The PowerToy adds a new tool-window (or replacement designer ), which contains one or more&lt;/li&gt;&lt;li&gt;The replacement designer can only valid when a 'Custom Editor' has been configured in the DSL. The tool-window and old graphical designer will be replaced with the editors themselves.&lt;/li&gt;
&lt;/ul&gt;editors, each providing a logical view of the underlying domain model of the DSL.&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;The default editor used in this release is essentially the same basic editor used in previous release which displays basic selection information on the diagram (or IDE), and now provides selectable items. &lt;/li&gt;&lt;ul&gt;
&lt;li&gt;The next release of the PowerToy will provide a richer editor for visualising domain relationships.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;&lt;h2&gt;
What do you need?
&lt;/h2&gt;The pre-requisites for this release are the same as the previous release &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM0&amp;amp;referringTitle=ReleaseM1"&gt;ReleaseM0&lt;/a&gt;.&lt;br /&gt;&lt;h2&gt;
How do you use it?
&lt;/h2&gt;To install this release, add and configure the editors, see &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM1_Use&amp;amp;referringTitle=ReleaseM1"&gt;How to Use&lt;/a&gt;&lt;br /&gt;&lt;h2&gt;
How it works?
&lt;/h2&gt;Detailed information about how the PowerToy works, and the design decisions made in its development can be found in the &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM1_Design&amp;amp;referringTitle=ReleaseM1"&gt;Technical Design&lt;/a&gt; page.&lt;br /&gt;&lt;h2&gt;
Customizing it?
&lt;/h2&gt;With this release you can customize various attributes of the host  (i.e. layout etc.), and tool-window (i.e. title, icon etc.), and you can add/remove/modify, and customize, any of the contained editors .&lt;br /&gt; &lt;br /&gt;For more details on how to customize this release, see &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM1_Customize&amp;amp;referringTitle=ReleaseM1"&gt;How to Customize&lt;/a&gt;&lt;br /&gt;&lt;h2&gt;
What was planned for this release?
&lt;/h2&gt;The planning details, and technical requirements for this release are detailed &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM1_Planning&amp;amp;referringTitle=ReleaseM1"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;h2&gt;
Feedback
&lt;/h2&gt;We would like to capture any feedback you have about this release, or perhaps upcoming releases. &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/dept/WorkItem/List.aspx" class="externalLink"&gt;Issues, Bugs, Feature Requests&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/dept/Thread/List.aspx" class="externalLink"&gt;General Discussion Topics&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description><author>jezzsa</author><pubDate>Sat, 19 May 2007 22:09:25 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: ReleaseM1 20070519100925P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/dept/Wiki/View.aspx?title=Home&amp;version=44</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;
Welcome 
&lt;/h1&gt;This is the home of the &lt;b&gt;DSL Editor ‘PowerToy’&lt;/b&gt; project - a User-Experience enhancement PowerToy for domains specific languages (DSL's).&lt;br /&gt;&lt;h2&gt;
Quick links
&lt;/h2&gt;&lt;table&gt;
&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Current Release:&lt;/b&gt; &lt;/td&gt;&lt;td&gt; &lt;a href="http://www.codeplex.com/dept/Release/ProjectReleases.aspx?ReleaseId=2089"&gt;M1 Alpha&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;b&gt;Documentation&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM1&amp;amp;referringTitle=Home"&gt;What is this release?&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM1_Use&amp;amp;referringTitle=Home"&gt;How to install and use it?&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM1_Customize&amp;amp;referringTitle=Home"&gt;How to customize it?&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;b&gt;Next Release:&lt;/b&gt; &lt;/td&gt;&lt;td&gt; &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM2&amp;amp;referringTitle=Home"&gt;What is the next release?&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt; &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=Milestones&amp;amp;referringTitle=Home"&gt;All Releases&lt;/a&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;h1&gt;
What is it?
&lt;/h1&gt;This PowerToy aims to provide a new capability that will provide an enhanced user experience for manipulating domain classes and their relationships alongside the DSL designer in a hierarchical tree-grid-like editor.&lt;br /&gt; &lt;br /&gt;The PowerToy will provide your DSL with a new tool-window containing one or more editors that provide configurable 'views' of domain classes, and their relationships. The PowerToy presents these various views by hosting windows controls that display the view, and manage the users interaction with them.&lt;br /&gt; &lt;br /&gt;For example, the following screenshot displays the proposed editor window (bottom-half of the screen) specific to the selected 'Data Contract' of an existing example DSL used for authoring Web Services.&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/dsltreegrideditor/Project/FileDownload.aspx?DownloadId=7839" alt="DataContractEditor(Small).jpg" /&gt;&lt;br /&gt; &lt;br /&gt;You can also see a similar example of an editor specific for 'Service Operations' of the same DSL &lt;a href="http://blogs.msdn.com/photos/jezzsa/images/1324294/original.aspx" class="externalLink"&gt;here&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. &lt;br /&gt;Another example of an alternative implementation used for Data Contracts in another DSL &lt;a href="http://www.edwardbakker.nl/PermaLink,guid,11ab1f38-75aa-4ce2-8fc7-ff950b745aa9.aspx" class="externalLink"&gt;here&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;&lt;h1&gt;
The Basic Idea
&lt;/h1&gt;The PowerToy will be available for download, and will be installed by a developer on their development machine.  The DSL author will, within their existing DSL solution, add and configure one or more custom editors to display some aspect of the domain model of their DSL. &lt;br /&gt; &lt;br /&gt;The PowerToy will provide, as one choice of editor, a tree-grid-like control that displays a hierarchy of domain models elements and their child relationships. This control then allows the user to interact with and manipulate the domain classes and their properties.&lt;br /&gt; &lt;br /&gt;Please check our example &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=User%20Scenario&amp;amp;referringTitle=Home"&gt;User Scenario&lt;/a&gt; for more details for one requirement for this kind of editor, and what drove the existing implementation for it.&lt;br /&gt; &lt;br /&gt;&lt;h1&gt;
Benefits
&lt;/h1&gt;The benefits of the PowerToy include:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Provides a means to view/edit relationships and domain classes that have no visible representation on the diagram&lt;/li&gt;&lt;li&gt;Reduces shape clutter on the diagram surface&lt;/li&gt;&lt;li&gt;Provides a hierarchical view of (possibly hidden) child relationships &lt;/li&gt;&lt;li&gt;Provides a better UX (keyboard navigation) for editing multiple properties of domain classes as part of hierarchical relationships, bulk editing.&lt;/li&gt;&lt;li&gt;Also improves visibility of key properties and enables better comparisons of related instances alongside each other.&lt;/li&gt;&lt;li&gt;Allows aspect focused editors (one view or aspect per tool window) &lt;/li&gt;&lt;li&gt;Each aspect or view on the domain model would have a separate editor.&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
Increased Usability!
&lt;/h2&gt;In essence, this power toy primarily provides a better User Experience (UX) for the DSL user by exposing relationships not represented on the diagram (i.e. in shapes or connectors), reducing shape clutter, and giving the user the ability to rapidly configuration the exposed domain classes and properties in the editor. &lt;br /&gt; &lt;br /&gt;&lt;b&gt;&lt;u&gt;Essentially this PowerToy provides the ability to expose hierarchical 'views' of the underlying domain model, that can be displayed using any windows control or other display technology&lt;/u&gt;&lt;/b&gt;&lt;br /&gt; &lt;br /&gt;&lt;h1&gt;
The Approach
&lt;/h1&gt;We are providing a staged approach to completing the implementation this PowerToy. At each stage (release) will deliver working code that adds a new capability to a DSL. &lt;br /&gt;Each release is designed to build upon the previous release and enhance it with a new capability and infrastructure to support that capability. &lt;br /&gt;The intention is to provide a DSL developer, using the PowerToy, deliverables that can be taken and customized to solve incremental problems that the PowerToy encounters in its development, that are expected to encounter anyone implementing this type of functionality.&lt;br /&gt; &lt;br /&gt;Please see the &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=Milestones&amp;amp;referringTitle=Home"&gt;Milestones&lt;/a&gt; page of this project to see what releases we have and what they will deliver.&lt;br /&gt;
&lt;/div&gt;</description><author>jezzsa</author><pubDate>Sat, 19 May 2007 21:46:06 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20070519094606P</guid></item><item><title>UPDATED WIKI: ReleaseM1_Customize</title><link>http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM1_Customize&amp;version=8</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;
How to Customize the PowerToy
&lt;/h1&gt;The following page describes the means to customize various areas of the components added to a DSL for this release.&lt;br /&gt; &lt;br /&gt;If you are looking for help on getting started installing and using the PowerToy go &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM1_Use&amp;amp;referringTitle=ReleaseM1_Customize"&gt;here&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;If you want a better understanding of how the PowerToy works, look at the &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM1_Design&amp;amp;referringTitle=ReleaseM1_Customize"&gt;Technical Design&lt;/a&gt; page.&lt;br /&gt;&lt;h2&gt;
Editor Hosting
&lt;/h2&gt;Objective: To change the host for the DSL editors&lt;br /&gt; &lt;br /&gt;In this release of the PowerToy the editors can be hosted either in a tool-window (displayed with the designer of the DSL), or, they can be hosted as a replacement for the graphical designer of your DSL. This is desirable in cases where a forms-based designer is more appropriate for your DSL, and you want to use the editors as this replacement designer.&lt;br /&gt; &lt;br /&gt;If you want to replace the graphical designer of you DSL, complete the following steps:&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Open the 'DslDefinition.dsl' diagram for your DSL&lt;/li&gt;&lt;li&gt;In the 'DSL Explorer' window, right-click on the 'Editor' node and click Delete. &lt;/li&gt;&lt;li&gt;Right-click on the root node in the 'DSL Explorer' for your DSL and select 'Add New Custom Editor'&lt;/li&gt;&lt;li&gt;Select the  'Editor' node, and in the 'Properties Window', reset the values for 'Root Class' and 'FileExtension' (at minimum).&lt;/li&gt;&lt;li&gt;Close the 'DslDefinition.dsl' diagram and save changes.&lt;/li&gt;&lt;li&gt;Open the 'DslEditorsConfiguration.deptec' diagram&lt;/li&gt;&lt;li&gt;Click anywhere on the diagram surface&lt;/li&gt;&lt;li&gt;In the 'Properties Window', change the 'Hosting Style' property to 'Designer'.&lt;/li&gt;&lt;li&gt;Save, Transform Templates, Rebuild and run.&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;To restore the default graphical designer for your DSL, complete the following reverse steps.&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Open the 'DslDefinition.dsl' diagram for your DSL&lt;/li&gt;&lt;li&gt;In the 'DSL Explorer' window, right-click on the 'Custom Editor' node and click Delete. &lt;/li&gt;&lt;li&gt;Right-click on the root node in the 'DSL Explorer' for your DSL and select 'Add New Designer'&lt;/li&gt;&lt;li&gt;Select the  'Editor' node, and in the 'Properties Window', reset the values for 'Diagram', 'Root Class' and 'FileExtension' (at minimum).&lt;/li&gt;&lt;li&gt;Close the 'DslDefinition.dsl' diagram and save changes.&lt;/li&gt;&lt;li&gt;Open the 'DslEditorsConfiguration.deptec' diagram&lt;/li&gt;&lt;li&gt;Click anywhere on the diagram surface&lt;/li&gt;&lt;li&gt;In the 'Properties Window', change the 'Hosting Style' property to 'ToolWindow'.&lt;/li&gt;&lt;li&gt;Save, Transform Templates, Rebuild and run.&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;&lt;i&gt;Note&lt;/i&gt;. It is valid to have a 'Custom Editor' forms-based designer already defined elsewhere in code for your DSL, and still host the editors in a tool-window along side that custom editor.&lt;br /&gt; &lt;br /&gt;&lt;h3&gt;
Change Editor Layout
&lt;/h3&gt;Objective: To change the layout of the controls that switch between the editors (multiple editors only)&lt;br /&gt; &lt;br /&gt;When multiple editors are configured, the PowerToy displays various navigation controls to switch between the views.  Using either a column of buttons (vertical orientation), or a dropdown (horizontal orientation), and also a row of buttons next to the dropdown.&lt;br /&gt; &lt;br /&gt;To change the layout and orientation of the controls, complete the following steps:&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Open the 'DslEditorsConfiguration.deptec' diagram&lt;/li&gt;&lt;li&gt;Click anywhere on the diagram surface&lt;/li&gt;&lt;li&gt;In the 'Properties Window', change the 'Navigation Style'.&lt;/li&gt;&lt;li&gt;Save, Transform Templates, Rebuild and run.&lt;/li&gt;
&lt;/ol&gt;&lt;h2&gt;
IDE Integration
&lt;/h2&gt;&lt;h3&gt;
Change Menu Icons and Text
&lt;/h3&gt;Objective: To change the icon and text used on either the top level menu (View | Other Windows), or the diagram context menu ('Details...'). &lt;br /&gt; &lt;br /&gt;In this release, the top level menu text is automatically generated from the 'ToolWindowTitle' property specified in the configuration language. This is to keep it in sync with the title of the tool-window and the name of the host DSL language.&lt;br /&gt; &lt;br /&gt;To change the text of the top level menu, complete the following steps:&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Open the 'DslEditorsConfiguration.deptec' diagram&lt;/li&gt;&lt;li&gt;Click anywhere on the diagram surface&lt;/li&gt;&lt;li&gt;In the 'Properties Window', change the 'ToolWindow Title'&lt;/li&gt;&lt;li&gt;Save, Transform Templates, Rebuild and run.&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;Changing the icon of the top level menu, or the text of the diagram context menu, is done in the same way as described in previous &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM0_Customize&amp;amp;referringTitle=ReleaseM1_Customize"&gt;release&lt;/a&gt;.&lt;br /&gt;&lt;h3&gt;
Change Tool-window Appearance
&lt;/h3&gt;Objective: To change the appearance of the tool-window (i.e. bitmap and title).&lt;br /&gt; &lt;br /&gt;In this release of the PowerToy, basic customization of the tool-window's appearance is done in the configuration designer.&lt;br /&gt; &lt;br /&gt;To change the appearance of the tool-window, complete the following steps:&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Open the 'DslEditorsConfiguration.deptec' diagram&lt;/li&gt;&lt;li&gt;Click anywhere on the diagram surface&lt;/li&gt;&lt;li&gt;In the 'Properties Window', change the 'ToolWindow Title' and 'ToolWindow Bitmaps File'&lt;/li&gt;&lt;li&gt;Save, Transform Templates, Rebuild and run.&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;&lt;i&gt;Note.&lt;/i&gt; You can only modify the tool-window appearance properties when you have chosen to host your editors in a Tool-window and not as the Designer.&lt;br /&gt; &lt;br /&gt;If the bitmap defined by the 'Tool-window Bitmaps File' property contains more than one bitmap (in a strip of bitmaps), it is the first bitmap that is used (by default). To change the bitmap index used, complete the following steps:&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Open the 'Tool-window.tt' text template found in the GeneratedCode folder&lt;/li&gt;&lt;li&gt;Locate the 'BitmapIndex' property getter &lt;/li&gt;&lt;li&gt;Change the return value to the index of the desired bitmap in the bitmap strip (zero-based)&lt;/li&gt;&lt;li&gt;Save, Transform Templates, Rebuild and run.&lt;/li&gt;
&lt;/ol&gt;&lt;h3&gt;
Change Tool-window Location, Orientation
&lt;/h3&gt;Objective: To change the start-up location and orientation of the tool-window, relative to other tool-windows in the IDE.&lt;br /&gt; &lt;br /&gt;This is done in the same way as described in previous &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM0_Customize&amp;amp;referringTitle=ReleaseM1_Customize"&gt;release&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;i&gt;Note.&lt;/i&gt; The necessary code for the tool-window and package is only generated when you have chosen to host your editors in a Tool-window and not as the Designer.&lt;br /&gt;&lt;h2&gt;
Editors
&lt;/h2&gt;&lt;h3&gt;
Configuring Editors
&lt;/h3&gt;Objective: To add or configure multiple editors&lt;br /&gt; &lt;br /&gt;In this release of the PowerToy it is now possible to define more than one editor (containing a custom control). Each editor contains a corresponding control, which can be any UserControl. &lt;br /&gt; &lt;br /&gt;In order to configure an editor, the PowerToy provides a configuration language designer (DslEditorsConfiguration.deptec) which contains shapes to represent the editors. Each shape has associated properties for the editor. The user can add as many editors as required, and each one has a 'Caption', 'Icon' and 'Editor Control' associated with it. &lt;br /&gt; &lt;br /&gt;Each editor can also be deactivated (Activate=false) if under partial configuration at the present time. In this state the editor will not be used.&lt;br /&gt; &lt;br /&gt;To add or configure the editors, complete the following steps:&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Open the 'DslEditorsConfiguration.deptec' diagram&lt;/li&gt;&lt;li&gt;From the toolbox, drag a new 'DSL Editor' shape to the diagram surface, or right-click on diagram and select 'Add New Dsl Editor'.&lt;/li&gt;&lt;li&gt;Select the new shape, and in the 'Properties Window' configure the editor's properties.&lt;/li&gt;&lt;li&gt;Save, Transform Templates, Rebuild and run.&lt;/li&gt;
&lt;/ol&gt;&lt;h3&gt;
Activating Editors
&lt;/h3&gt;Objective: To 'activate' a specific editor (display it) based upon current selection in DSL at runtime.&lt;br /&gt; &lt;br /&gt;It is possible to 'activate' a specific editor when the user of your DSL selects certain shapes in your DSL. For example, the editor may be tailored to specific shapes or event in the DSL, and only is valid for those shapes or events. All other times, the editor may be effectively disabled. By default, no specific editor activation rules are applied, but in some cases this behaviour is desirable with multiple editors to guide  the user to the right editor in the right context of designer use.&lt;br /&gt; &lt;br /&gt;To programmatically activate a specific editor based upon context in the designer, complete the following steps:&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Create a new class file in the package project (e.g. MyLanguageDslEditorToolWindow.cs) &lt;/li&gt;&lt;li&gt;Add a partial class declaration (e.g. partial class MyLanguageDslEditorToolWindow), taking care that the namespace of this class is the same as the generated PowerToy tool-window class.&lt;/li&gt;&lt;li&gt;Override the OnEnvironmentSelectionChanged(ISelectionProvider, SelectionChangeSource) method. Ensuring you call the base method. Add your logic to determine which shapes/model elements you want to detect in the selection, and call ActivateEditor() method to show a specific editor. (Obtain the id of the editor from the DslEditor shape in configuration language.)&lt;/li&gt;&lt;li&gt;Rebuild and Run.&lt;/li&gt;
&lt;/ol&gt;Example:&lt;br /&gt;&lt;pre&gt;
using DslEditorPowerToy.Controls;
using DslEditorPowerToy.Languages;
 
namespace Company.MyLanguage.DslEditorPowerToy.Controls
{
    partial class MyLanguageDslEditorToolWindow
    {
        protected override void OnEnvironmentSelectionChanged(ISelectionProvider selectionProvider, SelectionChangeSource source)
        {
            base.OnEnvironmentSelectionChanged(selectionProvider, source);
 
            //Ensure diagram selection change
            if (SelectionChangeSource.Diagram == source)
            {
                //Get the represented model element
                if (ModelHelper.GetRepresentedElement(selectionProvider.PrimarySelection) is MyExampleElement)
                {
                    //Activates the appropriate editor
                    this.ActivateEditor(new Guid(&amp;quot;GUID_OF_THE_EDITOR_YOU_WANT_TO_ACTIVATE&amp;quot;));
                }
            }
        }
    }
}
&lt;/pre&gt;&lt;h2&gt;
Editor Controls
&lt;/h2&gt;These customizations are for custom editor controls&lt;br /&gt;&lt;h3&gt;
Handle Selection Changes
&lt;/h3&gt;Objective: To handle, within the editor control, selection changes in the diagram or model explorer.&lt;br /&gt; &lt;br /&gt;This is done in the same way as described in previous &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM0_Customize&amp;amp;referringTitle=ReleaseM1_Customize"&gt;release&lt;/a&gt;.&lt;br /&gt;(see the SelectionTackerEditor control (SelectionTackerEditor.cs) as an example of how this can be achieved)&lt;br /&gt;&lt;h3&gt;
Provide Selectable Items
&lt;/h3&gt;Objective: To provide selectable objects in the editor control, that can be exposed and edited by the ‘Properties Window’, (or other controls).&lt;br /&gt; &lt;br /&gt;This is done in the same way as described in previous &lt;a href="http://www.codeplex.com/dept/Wiki/View.aspx?title=ReleaseM0_Customize&amp;amp;referringTitle=ReleaseM1_Customize"&gt;release&lt;/a&gt;.&lt;br /&gt;(see the SelectionTackerEditor control (SelectionTackerEditor.cs) as an example of how this can be achieved)&lt;br /&gt;&lt;h2&gt;
Other Customizations
&lt;/h2&gt;Objective: To customize other aspects of the added and generated code of the PowerToy.&lt;br /&gt; &lt;br /&gt;The PowerToy makes extensive use of text templates and the double-derived pattern for all its classes,  and for extending and integrating with classes of the host DSL (provided by the DSL tools).&lt;br /&gt; &lt;br /&gt;In most cases of all other customizations to PowerToy components, there are 2 levels of customization possible:&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Overriding existing functionality using partial classes (of double derived classes)&lt;/li&gt;&lt;li&gt;Modifying text templates (installed by PowerToy)&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;In the first case, to enhance existing generated code, simply add a new partial class definition (in a separate source file to the DSL package project) and override the members of the partial class providing new behaviour or functionality.&lt;br /&gt;The next level of customization is typically required only if partial classes can't achieve the required customization. In these cases, you can edit the text templates themselves to generate custom code to achieve the customization.&lt;br /&gt; &lt;br /&gt;WARNING: Be aware that modifications to text templates will be lost if either re-adding or removing the PowerToy using the recipes provided by the PowerToy.&lt;br /&gt;
&lt;/div&gt;</description><author>jezzsa</author><pubDate>Sat, 19 May 2007 20:45:01 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: ReleaseM1_Customize 20070519084501P</guid></item></channel></rss>