首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

Visual Studio DSL 入門實戰(十):狀態機設計器完善與細節優化

     編輯:關於.NET

接續前幾章建立狀態機 DSL 核心模型與圖形符號,本章著重於設計器體驗細節的打磨:工具箱標籤文字修改、屬性分類整理、Explorer 名稱調整、動態圖示顯示邏輯(初始/結束狀態圖示),以及實驗環境重置技巧,打造更專業、直覺的領域專用語言設計工具。

一、修改工具箱標籤文字

預設工具箱分頁標籤顯示為自動生成的「LanguageSm」,需改為「StateMachine」:

  1. 開啟 DslDefinition.dsl,展開 DSL Explorer。
  2. 定位節點:LanguageSm / Editor / Toolbox Tabs / LanguageSm。
  3. 修改該節點屬性視窗中的 Tab Text 為 StateMachine。

修改工具箱標籤文字

二、整理屬性視窗分類

執行時發現 Transition 的所有屬性歸類在「雜項」,缺乏語意。將域類 Transition 的四個域屬性 Event、Condition、Action、Label 的 Category (從屬分類) 屬性設為 Transition;同理可調整 State 的屬性分類。重新建置執行,屬性視窗即以分類呈現:

屬性分類調整後效果

三、修改 Explorer 顯示名稱

除錯環境右側的「LanguageSm Explorer」同樣需改名:

  1. 開啟 DSL Explorer,選取 Explorer Behavior 節點。
  2. 修改屬性:Title 設為 State Machine Explorer。

修改 Explorer 標題屬性

調整後效果:

修改後的 State Machine Explorer

四、修正 Action 顯示名稱邏輯

觀察發現 State2 的「Entry Actions」與「Exit Actions」隔間下顯示的是「Entry Action」、「Exit Action」而非我們定義的 Label 值 (如 SwitchOn/SwitchOff)。原因在於域類 Action 的 Label 屬性未設為元素名稱。

  1. 選取域類 Action。
  2. 將域屬性 Label 的 Is Element Name 設為 True。
  3. 最佳實務:每個域類建議指定一個屬性 Is Element Name = True,於顯示與序列化時作為識別鍵值。

重新建置執行,隔間正確顯示自訂 Label 值:

Action Label 顯示修正後效果

五、整體執行效果驗證

完整狀態機設計器運行畫面:

完善後的狀態機設計器整體畫面

六、工具箱殘留標籤清理與實驗環境重置

運行後工具箱可能仍殘留舊的「LanguageSm」分頁,兩種解決方式:

  1. 右鍵該分頁選擇「刪除此選項卡」。
  2. 使用 VS SDK 工具重置實驗環境:
    開始 / 所有程式 / Microsoft Visual Studio 2008 SDK / Tools / Reset the Microsoft Visual Studio 2008 SP1 Experimental hive
    此功能可清除實驗蜂巢註冊資訊,讓 DSL 重新註冊,開發期常用。

出處:https://lonely7345.cnblogs.com/

本文配套原始碼下載

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved