Adds search field and jump-to a device UI.

Adds a search field in the network UI and a jump-to level menu. This
allows users to quickly find a device on the canvas or jump to a
certain mode/zoom-level.

Adds animation to smooth out the transition from the current viewport
to a viewport centered on the searched for device or zoom-level.

* Adds animation FSM and changes the 0 hot key to use it
* Adds jump to animation
* Adds search bar type ahead
* Adds jump animation to search and jump-to menus
* Adds keybinding FSM
* Updates the dropdown when devices are added/edit/removed
* Highlights the searched for host
This commit is contained in:
Ben Thomasson
2018-02-06 11:43:04 -05:00
parent 00a9283e32
commit 6f3bf4fd1b
27 changed files with 661 additions and 170 deletions
+29
View File
@@ -0,0 +1,29 @@
diagram_id: 58
name: animation_fsm
states:
- id: 4
label: Cancelled
x: 590
y: 602
- id: 3
label: Completed
x: 225
y: 604
- id: 2
label: Running
x: 418
y: 362
- id: 1
label: Start
x: 454
y: 158
transitions:
- from_state: Running
label: onAnimationCancelled
to_state: Cancelled
- from_state: Running
label: onAnimationCompleted
to_state: Completed
- from_state: Start
label: start
to_state: Running
Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

+25
View File
@@ -0,0 +1,25 @@
diagram_id: 60
name: diagram
states:
- id: 3
label: Enabled
x: 842
y: 533
- id: 2
label: Start
x: 839
y: 270
- id: 6
label: Disabled
x: 1231
y: 532
transitions:
- from_state: Start
label: start
to_state: Enabled
- from_state: Disabled
label: onBindDocument
to_state: Enabled
- from_state: Enabled
label: onUnbindDocument
to_state: Disabled
+1 -1
View File
@@ -26,7 +26,7 @@ var transition = null;
var i = 0;
while(next_state !== undefined) {
state = implementation[next_state];
transition_iter = Iterator(state.constructor.prototype)
transition_iter = Iterator(state.constructor.prototype);
next_transition = transition_iter.next();
while (next_transition !== undefined) {
transition = state.constructor.prototype[next_transition];
@@ -20,19 +20,19 @@ var next_message = message_iter.next();
var next_field = null;
var message = null;
var message_instance = null;
var field = null;
var fields = null;
var i = 0;
// var field = null;
// var i = 0;
while(next_message !== undefined) {
message = implementation[next_message];
try {
message_instance = new message()
message_instance = new message();
} catch(err) {
next_message = message_iter.next();
continue;
}
fields = [];
field_iter = Iterator(message_instance)
field_iter = Iterator(message_instance);
next_field = field_iter.next();
while (next_field !== undefined) {
fields.push(next_field);