/SimpleStateMachineNodeEditor

🔗WPF node editor based on ReactiveUI

Primary LanguageC#MIT LicenseMIT

Build Status

SimpleStateMachineNodeEditor

SimpleStateMachineNodeEditor is a WPF node-editor for visual work and editoring state-machine

Give a Star! ⭐

If you like or are using this project please give it a star. Thanks!

Why SimpleStateMachine?

Create state machine in three steps :

1. Create scheme in this node editor🔗

2. Load scheme in your project using library📚

3. Describe your app logic and run the state machin🚘

Features💡

Custom Window with Visual Studio design

Two themes

Two representations for State machine

  • Scheme of nodes
  • Table of transitions

Validating

  • for unique name for Node/Transition
  • for exists Nodes without connects

Adding nodes and connections

Undo and redo

Collapsing and moving

Scaling

Selection

Naming for states and transitions

Moving transitions

Deleting transitions

Import/Export scheme from/to xml

<?xml version="1.0" encoding="utf-8"?>
<StateMachine>
  <States>
    <State Name="Start"/>
    <State Name="State 1"/>
    <State Name="State 2"/>
  </States>
  <StartState Name="Start" />
  <Transitions>
    <Transition Name="Transition 2" From="State 2" To="State 1" />
    <Transition Name="Transition 1" From="Start" To="State 2" />
  </Transitions>
   <Visualization>
    <State Name="Start" Position="37, 80" IsCollapse="False" />
    <State Name="State 1" Position="471, 195.54" IsCollapse="False" />
    <State Name="State 2" Position="276, 83.03999999999999" IsCollapse="False" />
  </Visualization>
</StateMachine>

Save work space as PNG/JPEG

Getting Started📂

1. Download the latest release archive

2. Unzip the downloaded file

3. Run the exe file

Shortcuts📎

  • Ctrl +A = Select All Nodes
  • Ctrl + S = Save
  • Ctrl + Shift + S = Save As
  • Ctrl + Shift + O = Open
  • Ctrl + Shift + N = New
  • Alt + F4 = Exit
  • Ctrl + Shift + Alt + P = Export to PNG
  • Ctrl + Shift + Alt + J = Export to JPEG
  • Ctrl + Z = Undo
  • Ctrl + Y = Redo
  • Ctrl + N = Add Node
  • Ctrl + LMB on Canvas = Start Select
  • Ctrl + LMB on Connector = Create Loop
  • LMB on Node = Select one Node
  • Ctrl + LMB on Node = Select/UnSelect Node
  • Ctrl + LMB on Transition = Select/UnSelect Transition
  • Shift + LMB on Transition = Multiple selection
  • LMB on Connector = Start create Connect
  • Alt + LMB on Connector = Move Connector in Node
  • Alt + LMB on Canvas = Start Cut
  • Delete = Delete Selected Elements
  • C + Delete = Delete Selected Connector
  • N + Delete = Delete Selected Nodes

FAQ❔

If you think you have found a bug, create a github issue.

But if you just have questions about how to use:

License📑

Copyright (c) SimpleStateMachine

Licensed under the MIT license.