Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/SimpleStateMachine/SimpleStateMachineNodeEditor

🔗WPF node editor based on ReactiveUI
https://github.com/SimpleStateMachine/SimpleStateMachineNodeEditor

csharp finite-state-machine net-core net-core-3-1 node-editor nodeeditor reactiveui scheme simple-state-machine simplestatemachine state state-machine statemachine visualization wpf

Last synced: 3 months ago
JSON representation

🔗WPF node editor based on ReactiveUI

Awesome Lists containing this project

README

        

[![](https://img.shields.io/github/v/release/SimpleStateMachine/SimpleStateMachineNodeEditor)](https://github.com/SimpleStateMachine/SimpleStateMachineNodeEditor/releases) [![](https://img.shields.io/github/stars/SimpleStateMachine/SimpleStateMachineNodeEditor)](https://github.com/SimpleStateMachine/SimpleStateMachineNodeEditor) [![](https://img.shields.io/github/license/SimpleStateMachine/SimpleStateMachineNodeEditor)](https://github.com/SimpleStateMachine/SimpleStateMachineNodeEditor) [![](https://img.shields.io/github/languages/code-size/SimpleStateMachine/SimpleStateMachineNodeEditor)](https://github.com/SimpleStateMachine/SimpleStateMachineNodeEditor)
[![]( https://img.shields.io/github/last-commit/SimpleStateMachine/SimpleStateMachineNodeEditor/ToAvaloniaUI)](https://github.com/SimpleStateMachine/SimpleStateMachineNodeEditor) [![](https://img.shields.io/badge/chat-slack-blueviolet.svg)](https://join.slack.com/t/simplestatemachine/shared_invite/zt-fnfhvvsx-fTejcpPn~PPb2ojdG_MQBg) [![](https://img.shields.io/badge/chat-telegram-blue.svg)](https://t.me/joinchat/HMLJFkv9do6aDV188rhd0w)
[![Build Status](https://dev.azure.com/GMIKE/SimpleStateMachineNodeEditor/_apis/build/status/SimpleStateMachine.SimpleStateMachineNodeEditor?branchName=master)](https://dev.azure.com/GMIKE/SimpleStateMachineNodeEditor/_build/latest?definitionId=1&branchName=master)

# SimpleStateMachineNodeEditor

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

## Give a Star! :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🔗](https://github.com/SimpleStateMachine/SimpleStateMachineNodeEditor)

**2.** Load scheme in your project using [library📚](https://github.com/SimpleStateMachine/SimpleStateMachineLibrary)

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

## Features💡
### Custom Window with Visual Studio design
[![](https://github.com/SimpleStateMachine/SimpleStateMachineNodeEditor/blob/gh-pages/img/Custom%20window.jpg)](https://github.com/SimpleStateMachine/SimpleStateMachineNodeEditor)
### Two themes
[![](https://github.com/SimpleStateMachine/SimpleStateMachineNodeEditor/blob/gh-pages/img/Themes.jpg)](https://github.com/SimpleStateMachine/SimpleStateMachineNodeEditor)
### 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
[![](https://github.com/SimpleStateMachine/SimpleStateMachineNodeEditor/blob/gh-pages/img/adding.gif)](https://github.com/SimpleStateMachine/SimpleStateMachineNodeEditor)
### Undo and redo
[![](https://github.com/SimpleStateMachine/SimpleStateMachineNodeEditor/blob/gh-pages/img/undo%20and%20redo.gif)](https://github.com/SimpleStateMachine/SimpleStateMachineNodeEditor)
### Collapsing and moving
[![](https://github.com/SimpleStateMachine/SimpleStateMachineNodeEditor/blob/gh-pages/img/collapsing%20and%20moving.gif)](https://github.com/SimpleStateMachine/SimpleStateMachineNodeEditor)
### Scaling
[![](https://github.com/SimpleStateMachine/SimpleStateMachineNodeEditor/blob/gh-pages/img/Scaling.gif)](https://github.com/SimpleStateMachine/SimpleStateMachineNodeEditor)
### Selection
[![](https://github.com/SimpleStateMachine/SimpleStateMachineNodeEditor/blob/gh-pages/img/selection.gif)](https://github.com/SimpleStateMachine/SimpleStateMachineNodeEditor)
### Naming for states and transitions
[![](https://github.com/SimpleStateMachine/SimpleStateMachineNodeEditor/blob/gh-pages/img/naming%20for%20states%20and%20transitions.gif)](https://github.com/SimpleStateMachine/SimpleStateMachineNodeEditor)
### Moving transitions
[![](https://github.com/SimpleStateMachine/SimpleStateMachineNodeEditor/blob/gh-pages/img/moving%20transitions.gif)](https://github.com/SimpleStateMachine/SimpleStateMachineNodeEditor)
### Deleting transitions
[![](https://github.com/SimpleStateMachine/SimpleStateMachineNodeEditor/blob/gh-pages/img/deleting%20transitions.gif)](https://github.com/SimpleStateMachine/SimpleStateMachineNodeEditor)
### Import/Export scheme from/to xml
```xml















```
### Save work space as PNG/JPEG
[![](https://github.com/SimpleStateMachine/SimpleStateMachineNodeEditor/blob/gh-pages/img/jpg.jpg)](https://github.com/SimpleStateMachine/SimpleStateMachineNodeEditor)

## Getting Started📂

**1.** Download the [latest release archive](https://github.com/SimpleStateMachine/SimpleStateMachineNodeEditor/releases)

**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](https://github.com/SimpleStateMachine/SimpleStateMachineNodeEditor/issues).

But if you just have questions about how to use:

- [Slack channel](https://join.slack.com/t/simplestatemachine/shared_invite/zt-fnfhvvsx-fTejcpPn~PPb2ojdG_MQBg)
- [Telegram channel](https://t.me/joinchat/HMLJFkv9do6aDV188rhd0w)

## License📑

Copyright (c) SimpleStateMachine

Licensed under the [MIT](LICENSE) license.