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

Visual Studio DSL 入門實戰(九):狀態機圖形符號建立與映射完整教學

     編輯:關於.NET

承接上章完成狀態機領域模型定義,本章將詳細示範如何在 DSL 設計器中為域類 State 與域關係 Transition 建立視覺化圖形符號:隔間形狀展示進入/退出動作、裝飾器控制名稱與狀態類型圖示 (初始/結束)、連接器標籤顯示,並配置工具箱圖示,打造完整可視化的狀態機設計介面。

一、State 域類圖形符號:隔間形狀

  1. 開啟 DslDefinition.dsl,刪除預設 ExampleShape。
  2. 從工具箱拖曳 Compartment Shape (隔間形狀) 至 Diagram Elements 區域,命名為 StateShape。
  3. 美化外觀:Geometry = RoundedRectangle、FillColor = LightBlue。
  4. 建立映射:拖曳 Diagram Element Map 從域類 State 指向 StateShape。DSL Details 視窗顯示映射細節(父元素路徑等)。

StateShape 與 State 映射細節

新增進入/退出動作隔間

  1. 右鍵 StateShape → Add Compartment,新增兩個隔間:
    EntryActions:Title =「進入操作」、TitleFillColor = LightBlue。
    ExitActions:Title =「退出操作」。
  2. 於 DSL Details 映射隔間顯示元素集合:
    EntryActions:從 State 沿 StateHasEntryActions 關係選取 EntryAction,顯示屬性設為 Label。
    ExitActions:同理映射 StateHasExitActions → ExitAction,顯示 Label。

隔間映射設定

新增裝飾器控制視覺效果

  1. 展開/收合裝飾器:右鍵 StateShape → Add Expand Collapse Decorator,Position = InnerTopRight。
  2. 名稱文字裝飾器:新增 Text Decorator 命名 NameDecorator,Position = InnerTopCenter。於 DSL Details 映射至域類 State 的 Name 屬性。

NameDecorator 映射設定

動態圖示:初始/結束狀態視覺化

  1. 匯入圖示資源:將 Start.emf、Stop.emf 放入專案 Resources 資料夾 (來源:VS SDK 安裝路徑 VisualStudioIntegration\Tools\DSLTools\SolutionTemplates\TaskFlow\Dsl\Resources\)。
  2. 新增兩個 Icon Decorator:StartIconDecorator (Default Icon = Start.emf)、StopIconDecorator (Default Icon = Stop.emf),Position 預設 InnerTopLeft。
  3. DSL Details 設定可見性篩選:
    StartIconDecorator:Visibility Filter 勾選,Kind 屬性值 = Initial。
    StopIconDecorator:Visibility Filter 勾選,Kind 屬性值 = Final。

圖示裝飾器可見性篩選設定

二、Transition 域關係圖形符號:連接器

  1. 重命名預設 ExampleConnector 為 TransitionConnector,建立映射至域關係 Transition。
  2. 新增 Text Decorator 命名 LabelTextDecorator,Position = TargetTop (標籤顯示於連接線目標端頂部)。
  3. DSL Details 映射 LabelTextDecorator 至域類 Transition 的 Label 屬性。

TransitionConnector 標籤映射

三、工具箱圖示配置

  1. 匯入工具箱圖示 Tasktool.bmp (State)、FlowTool.bmp (Transition) 至專案 Resources。
  2. DSL Explorer 定位 Editor / Toolbox Tabs / LanguageSm / Tools,重命名 ExampleElement → State、ExampleRelationship → Transition,分別指定對應 Toolbox Icon。

四、建置驗證運行

  1. 儲存 DSL 定義,點擊「轉換所有範本」。
  2. 啟動偵錯 (F5) 開啟實驗環境,測試狀態機設計器:

狀態機設計器運行畫面

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

本文配套原始碼下載

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