Visual Studio DSL 入门 10---完善状态机案例
前两节我们已经完成了状态机的元数据创建以及部分图形表示,如果你使用过运行起来的状态机设计器,你就会发现很多问题.在这一节,我们主要来完善我们的状态机实例,包括完善元数据和图形符号等.
完善
1.在运行的环境中,你会发现左侧工具箱中显示的选择项文本仍然是自动生成的LanagueSm,我们需要修改成StateMachine.打开DslDefinition.dsl文件后打开Dsl Explorer,找到LanguageSm/Editor/Toolbox Tabs/LanguageSm结点,修改LanguageSm的属性里的Tab Text值为StateMachine
2.在运行环境中查看Transition的属性你会发现,所有的属性都属于杂项(Misc)分组,这是默认情况下生成的,没有任何实际的意义.修改域类Transition的四个域属性Event, Condition, Action, Label的属性Category(从属分类)的值为Transition.重新生成运行查看效果,同时你也可以状态State的属性分类.
3.在状态机调试环境中,你会在右边找到LanguageSm Explorer,这和我们的Dsl Explorer是一样的.
我们需要把这里的LanguageSm修改成State Machine Explorer.打开我们的Dsl文件后打开Dsl Explorer,修改Explorer Behavior结点的属性值如下:
我们再来仔细来看一下修改过的State Machine Explorer.
State2的Entry Actions和Exit Actions下面怎么显示的是Entry Action和Exit Action啊,并不是我们类图中的SwitchOn和SwitchOff,也就是说不是我们的Label属性的值,这里还需要设置,找到域类Action,修改域属性Label的属性Is Element Name的值为True.[对于每个域类,最好都设置一个属性的Is Element Name=True,这在显示和序列化中都起到作用].重新生成运行查看效果:
好了,现在可以整体生成查看一下运行效果:
不过运行后你能发现左侧的工具箱中还存在LanguageSm,有两个解决方法:
1.直接右键LanguageSm,选择删除此选项卡
2.从开始--程序中找到你的Vs SDK,Tools下面有一个Reset the Microsoft Visual Studio 2008 SP1 Experimental hive,重置实验室环境,这个功能在Dsl开发中会经常使用,能够重置Vs.net实验室环境,使你能够重新注册信息.
参考资源
1. Visual Stuido DSL 工具特定领域开发指南
2. DSL Tools Lab http://code.msdn.microsoft.com/DSLToolsLab 系列教程 [本系列的入门案例的主要参考]
作者:孤独侠客(似水流年)
出处:http://lonely7345.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。