博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Visual Studio DSL 入门 10---完善状态机案例
阅读量:5860 次
发布时间:2019-06-19

本文共 1390 字,大约阅读时间需要 4 分钟。

前两节我们已经完成了状态机的元数据创建以及部分图形表示,如果你使用过运行起来的状态机设计器,你就会发现很多问题.在这一节,我们主要来完善我们的状态机实例,包括完善元数据和图形符号等.

 
完善
     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://www.cnblogs.com/lonely7345/archive/2010/02/24/1672326.html,如需转载请自行联系原作者
你可能感兴趣的文章
软考:计算题1
查看>>
剪贴板通讯
查看>>
编辑SE16N表的函数
查看>>
Win7下多线程中OpenFileDialog和SaveFileDialog失效的解决办法(转载)
查看>>
mybatis-generator使用
查看>>
OC 宏判断iphone5设备
查看>>
软件测试 -- 软件生存周期六个阶段
查看>>
http请求拆分
查看>>
项目需求分析答辩总结模板
查看>>
VS Code前端开发利器-常用快捷键
查看>>
zookeeper源码分析之leader选举
查看>>
线程问题
查看>>
分支限界法
查看>>
陶哲轩实分析习题9.1.1
查看>>
《常微分方程教程》习题2.3.5,(2)
查看>>
20171213构建之法:现代软件工程-阅读笔记1
查看>>
Weekly 1
查看>>
Oracle如何把数据库表迁移到指定表空间
查看>>
Informix之onspaces语法及实例(磁盘空间管理)
查看>>
开博宣言
查看>>