• Visual Studio DSL 入门 10完善状态机案例


         前两节我们已经完成了状态机的元数据创建以及部分图形表示,如果你使用过运行起来的状态机设计器,你就会发现很多问题.在这一节,我们主要来完善我们的状态机实例,包括完善元数据和图形符号等.
     
    完善
         1.在运行的环境中,你会发现左侧工具箱中显示的选择项文本仍然是自动生成的LanagueSm,我们需要修改成StateMachine.打开DslDefinition.dsl文件后打开Dsl Explorer,找到LanguageSm/Editor/Toolbox Tabs/LanguageSm结点,修改LanguageSm的属性里的Tab Text值为StateMachine
          2010-2-23 15-07-44

         2.在运行环境中查看Transition的属性你会发现,所有的属性都属于杂项(Misc)分组,这是默认情况下生成的,没有任何实际的意义.修改域类Transition的四个域属性Event, Condition, Action, Label的属性Category(从属分类)的值为Transition.重新生成运行查看效果,同时你也可以状态State的属性分类.
         2010-2-23 15-23-07

        3.在状态机调试环境中,你会在右边找到LanguageSm Explorer,这和我们的Dsl Explorer是一样的.
         2010-2-23 15-25-25
    我们需要把这里的LanguageSm修改成State Machine Explorer.打开我们的Dsl文件后打开Dsl Explorer,修改Explorer Behavior结点的属性值如下:
         2010-2-23 15-33-03

      我们再来仔细来看一下修改过的State Machine Explorer.
          2010-2-23 15-41-26

        State2的Entry Actions和Exit Actions下面怎么显示的是Entry Action和Exit Action啊,并不是我们类图中的SwitchOn和SwitchOff,也就是说不是我们的Label属性的值,这里还需要设置,找到域类Action,修改域属性Label的属性Is Element Name的值为True.[对于每个域类,最好都设置一个属性的Is Element Name=True,这在显示和序列化中都起到作用].重新生成运行查看效果:
          2010-2-23 15-51-18 
        
         好了,现在可以整体生成查看一下运行效果:
         2010-2-23 16-00-47
         不过运行后你能发现左侧的工具箱中还存在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/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    Dbcp2抛出org.apache.commons.dbcp2.LifetimeExceededException
    DbUtils使用时抛出Cannot get a connection
    Spring注解【非单例】
    Exception in thread java.lang.IllegalThreadStateException
    eclipse选中变量,相同变量高亮。
    git push 403
    java虚拟机能并发的启动多少个线程
    产品的随想
    【转载】学习新东西的唯一方法
    Mysql错误问题记录
  • 原文地址:https://www.cnblogs.com/lonely7345/p/1672326.html
Copyright © 2020-2023  润新知