Getting rid of the DSL model explorer
2014-01-14 10:16
429 查看
Every DSL you create with DSL Tools has a model explorer. This model explorer is a tool window in Visual Studio displaying the elements of your model in a hierarchical
way. This is often a nice feature but sometimes a hierarchical view of your data is not appropriate. So I came to the question:
How to remove the explorer from the generated code?
I could not find any option in the DSL design to remove the model explorer, but if you look at some of the .tt files you will findsomewhere a query for this.Dsl.Explorer != null. For example in the
package.tt file that generates the
package.cs which is responsible for registering the tool window for the model explorer:
<#
if(this.Dsl.Explorer != null)
{
#>
[VSShell::ProvideToolWindow( typeof(<#=
dslName #>ExplorerToolWindow), MultiInstances = false, Style = VSShell::VsDockStyle.Tabbed, Orientation = VSShell::ToolWindowOrientation.Right,
Window = "{3AE79031-E1BC-11D0-8F78-00A0C9110057}")]
[VSShell::ProvideToolWindowVisibility( typeof(<#=
dslName #>ExplorerToolWindow), Constants.<#=
dslName #>EditorFactoryId)]
<#
}
#>
Even if I did not find any option to set the
Dsl.Explorer property of the model to
null (you did not see the Explorer property anywhere in the DSL diagram) it seems that the developers of the DSL Tools had this use case in mind.
To remove the
Dsl.Explorer from your DSL model open the
.dsl file with a text editor and go to the end. There you will find some XML tags like the following:
<Explorer
ExplorerGuid="6c276297-6acd-4e9a-8740-b61ba834004b"
Title="HardwareDescription Explorer">
<ExplorerBehaviorMoniker
Name="HardwareDescription/HardwareDescriptionExplorer"
/>
</Explorer>
Just delete these three lines and generate your code once again. Maybe you should reset your Experimental Hive, too.
I tested a DSL with a removed Model Explorer without any problems. It seems the developers of the DSL Tools did a very good job
on the code generation templates . The generated ModelExplorer.cs file contains only a single line:
// This source file is empty because this DSL does not define a model explorer.
That should be a good proof that a DSL can run without the model explorer even if it might be not supported by the DSL Tools.
作者:明年我18
出处:http://www.cnblogs.com/default
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。
相关文章推荐
- (转)Getting rid of the DSL model explorer
- Any chance of getting rid of the all_load requirement for the iOS framework?
- bzoj 2571: Getting Rid of the Holidays
- Getting the dimensions of the soft keyboard
- struts2 <debug>标签报错:Caught an exception while getting the property values of null
- The entity type <type> is not part of the model for the current context
- why pooling layer & Getting rid of pooling
- Getting a statistics education: Review of the MSc in Statistics (Sheffield)
- Advantages of the Filter Manager Model 过滤器管理模型的优势
- explanation of the summary of linear model
- Zen of PM - Getting the team up to speed
- Get rid of the app-selection dialog with Android App Links
- Getting rid of strings
- PowerTip of the Day-Opening Current Folder in Explorer
- 4 Layers of the TCP/IP Model
- Principles of the Spin Model Checker
- Getting the most out of your pixels - adapting to view state changes(WIN8下设计适应多种分辨率的APP)[转.原]
- understand the data model of Cassandra
- Getting Rid of Confusion on Infatuation
- The model item passed into the dictionary is of type 'System.Collections.Generic.List`1[BMS.DataAccess.Models.ServiceTyp