92dc450940
* Adds gerkin feature file for networking visualization * Adds implementation details to networking.md |
||
---|---|---|
.. | ||
animation.yml | ||
button.png | ||
button.yml | ||
buttons.png | ||
buttons.yml | ||
details.panel.png | ||
details.panel.yml | ||
device.detail.png | ||
device.detail.yml | ||
group.png | ||
group.yml | ||
hotkeys.png | ||
hotkeys.yml | ||
keybindings.png | ||
keybindings.yml | ||
link.png | ||
link.yml | ||
messages.yml | ||
mode.png | ||
mode.yml | ||
models.png | ||
models.yml | ||
move.png | ||
move.readonly.png | ||
move.readonly.yml | ||
move.yml | ||
null.png | ||
null.yml | ||
pipeline.png | ||
pipeline.yml | ||
rack.png | ||
rack.yml | ||
README.md | ||
site.png | ||
site.yml | ||
stream.png | ||
stream.yml | ||
test.yml | ||
time.png | ||
time.yml | ||
toolbox.png | ||
toolbox.yml | ||
view.png | ||
view.yml |
Finite State Machine Designs
This directory contains the finite state machine designs that were used to generate the skeleton of the javascript implementations and can be used to check that the implementations still match the designs.
Machine Readable FSM Schema
The machine readable FSM schema contains three top-level elements: name
, states
, and transitions
.
- The
name
element is a string. - The
states
element contains a list ofstate
elements which have attributesid
,label
, andx
, andy
. - The
transitions
element contains a list oftransition
elements which have attributesfrom_state
,to_state
, andlabel
.
Design Diagrams
The diagrams below are visual representations of the finite state machine designs in this directory. The equivalent machine readable representations are linked as well.
Button FSM
- See: button.yml
The button FSM describes how a button works. The key insight here is that a button is not
clicked if the mouse is not over the button on both the MouseDown
and MouseUp
events. Moving
the mouse off the button before MouseUp
is not a click.
Buttons FSM
- See: buttons.yml
The buttons FSM distributes events to the buttons which each have their own FSM.
Hot Keys FSM
- See: hotkeys.yml
The hot keys FSM handles key events and generates new events like NewLink
to implement
hot keys.
Mode FSM
- See: mode.yml
The mode FSM controls the overall mode of the network UI application.
Move FSM
- See: move.yml
The move FSM controls placement of devices as well as editing the device labels.
Time FSM
- See: time.yml
The time FSM controls undo/redo functionality of the network UI.
Toolbox FSM
- See: toolbox.yml
The toolbox FSM controls the drag-and-drop toolboxes and allow placement of new devices, applications, racks, and sites onto the canvas.
View FSM
- See: view.yml
The view FSM controls the panning and scaling of the the virtual canvas through clicking-and-dragging of the background and scrolling the mousewheel.