Committed by
Gerrit Code Review
GUI -- Pan/Zoom now activated when either Meta (command) key OR Alt (option) key is pressed.
- cleanup of keyIn() function. - preparation for more control over formatting of Quick Help pane. (oops - filter out _helpFormat entry...) Change-Id: I605589ab992b5ef3a4d2531973a08a31f399b855
Showing
3 changed files
with
45 additions
and
25 deletions
... | @@ -485,19 +485,21 @@ | ... | @@ -485,19 +485,21 @@ |
485 | var event = d3.event, | 485 | var event = d3.event, |
486 | keyCode = event.keyCode, | 486 | keyCode = event.keyCode, |
487 | key = whatKey(keyCode), | 487 | key = whatKey(keyCode), |
488 | - gk = keyHandler.globalKeys[key], | 488 | + kh = keyHandler, |
489 | + gk = kh.globalKeys[key], | ||
489 | gcb = isF(gk) || (isA(gk) && isF(gk[0])), | 490 | gcb = isF(gk) || (isA(gk) && isF(gk[0])), |
490 | - vk = keyHandler.viewKeys[key], | 491 | + vk = kh.viewKeys[key], |
491 | - vcb = isF(vk) || (isA(vk) && isF(vk[0])) || isF(keyHandler.viewFn); | 492 | + vcb = isF(vk) || (isA(vk) && isF(vk[0])) || isF(kh.viewFn), |
493 | + token = current.view.token(); | ||
492 | 494 | ||
493 | // global callback? | 495 | // global callback? |
494 | - if (gcb && gcb(current.view.token(), key, keyCode, event)) { | 496 | + if (gcb && gcb(token, key, keyCode, event)) { |
495 | // if the event was 'handled', we are done | 497 | // if the event was 'handled', we are done |
496 | return; | 498 | return; |
497 | } | 499 | } |
498 | // otherwise, let the view callback have a shot | 500 | // otherwise, let the view callback have a shot |
499 | if (vcb) { | 501 | if (vcb) { |
500 | - vcb(current.view.token(), key, keyCode, event); | 502 | + vcb(token, key, keyCode, event); |
501 | } | 503 | } |
502 | } | 504 | } |
503 | 505 | ... | ... |
... | @@ -138,13 +138,19 @@ | ... | @@ -138,13 +138,19 @@ |
138 | } | 138 | } |
139 | 139 | ||
140 | function aggregateData(bindings) { | 140 | function aggregateData(bindings) { |
141 | - var gmap = d3.map(bindings.globalKeys), | 141 | + var hf = '_helpFormat', |
142 | + gmap = d3.map(bindings.globalKeys), | ||
142 | vmap = d3.map(bindings.viewKeys), | 143 | vmap = d3.map(bindings.viewKeys), |
143 | - gkeys = gmap.keys(), | 144 | + fmt = vmap.get(hf), |
144 | - vkeys = vmap.keys(), | ||
145 | vgest = bindings.viewGestures, | 145 | vgest = bindings.viewGestures, |
146 | + gkeys = gmap.keys(), | ||
147 | + vkeys, | ||
146 | sep = 0; | 148 | sep = 0; |
147 | 149 | ||
150 | + // filter out help format entry | ||
151 | + vmap.remove(hf); | ||
152 | + vkeys = vmap.keys(), | ||
153 | + | ||
148 | gkeys.sort(); | 154 | gkeys.sort(); |
149 | vkeys.sort(); | 155 | vkeys.sort(); |
150 | 156 | ... | ... |
... | @@ -134,26 +134,37 @@ | ... | @@ -134,26 +134,37 @@ |
134 | equals: injectStartupEvents, | 134 | equals: injectStartupEvents, |
135 | dash: injectTestEvent, | 135 | dash: injectTestEvent, |
136 | 136 | ||
137 | - E: [equalizeMasters, 'Equalize mastership roles'], | ||
138 | O: [toggleSummary, 'Toggle ONOS summary pane'], | 137 | O: [toggleSummary, 'Toggle ONOS summary pane'], |
139 | I: [toggleInstances, 'Toggle ONOS instances pane'], | 138 | I: [toggleInstances, 'Toggle ONOS instances pane'], |
140 | D: [toggleDetails, 'Disable / enable details pane'], | 139 | D: [toggleDetails, 'Disable / enable details pane'], |
141 | - B: [toggleBg, 'Toggle background image'], | 140 | + |
142 | H: [toggleHosts, 'Toggle host visibility'], | 141 | H: [toggleHosts, 'Toggle host visibility'], |
143 | M: [toggleOffline, 'Toggle offline visibility'], | 142 | M: [toggleOffline, 'Toggle offline visibility'], |
144 | - L: [cycleLabels, 'Cycle device labels'], | 143 | + B: [toggleBg, 'Toggle background image'], |
145 | P: togglePorts, | 144 | P: togglePorts, |
145 | + | ||
146 | + X: [toggleNodeLock, 'Lock / unlock node positions'], | ||
147 | + Z: [toggleOblique, 'Toggle oblique view (Experimental)'], | ||
148 | + L: [cycleLabels, 'Cycle device labels'], | ||
146 | U: [unpin, 'Unpin node (hover mouse over)'], | 149 | U: [unpin, 'Unpin node (hover mouse over)'], |
147 | R: [resetPanZoom, 'Reset pan / zoom'], | 150 | R: [resetPanZoom, 'Reset pan / zoom'], |
151 | + | ||
148 | V: [showRelatedIntentsAction, 'Show all related intents'], | 152 | V: [showRelatedIntentsAction, 'Show all related intents'], |
149 | rightArrow: [showNextIntentAction, 'Show next related intent'], | 153 | rightArrow: [showNextIntentAction, 'Show next related intent'], |
150 | leftArrow: [showPrevIntentAction, 'Show previous related intent'], | 154 | leftArrow: [showPrevIntentAction, 'Show previous related intent'], |
151 | W: [showSelectedIntentTrafficAction, 'Monitor traffic of selected intent'], | 155 | W: [showSelectedIntentTrafficAction, 'Monitor traffic of selected intent'], |
152 | A: [showAllTrafficAction, 'Monitor all traffic'], | 156 | A: [showAllTrafficAction, 'Monitor all traffic'], |
153 | F: [showDeviceLinkFlowsAction, 'Show device link flows'], | 157 | F: [showDeviceLinkFlowsAction, 'Show device link flows'], |
154 | - X: [toggleNodeLock, 'Lock / unlock node positions'], | 158 | + |
155 | - Z: [toggleOblique, 'Toggle oblique view (Experimental)'], | 159 | + E: [equalizeMasters, 'Equalize mastership roles'], |
156 | - esc: handleEscape | 160 | + |
161 | + esc: handleEscape, | ||
162 | + | ||
163 | + _helpFormat: [ | ||
164 | + ['O', 'I', 'D', '-', 'H', 'M', 'B', 'P' ], | ||
165 | + ['X', 'Z', 'L', 'U', 'R' ], | ||
166 | + ['V', 'rightArrow', 'leftArrow', 'W', 'A', 'F', '-', 'E' ] | ||
167 | + ] | ||
157 | }; | 168 | }; |
158 | 169 | ||
159 | // mouse gestures | 170 | // mouse gestures |
... | @@ -2565,12 +2576,10 @@ | ... | @@ -2565,12 +2576,10 @@ |
2565 | 2576 | ||
2566 | function selectObject(obj, el) { | 2577 | function selectObject(obj, el) { |
2567 | var n, | 2578 | var n, |
2568 | - srcEv = d3.event.sourceEvent, | 2579 | + ev = d3.event.sourceEvent; |
2569 | - meta = srcEv.metaKey, | ||
2570 | - shift = srcEv.shiftKey; | ||
2571 | 2580 | ||
2572 | - // if the meta key is pressed, we are panning/zooming, so ignore | 2581 | + // if the meta or alt key is pressed, we are panning/zooming, so ignore |
2573 | - if (meta) { | 2582 | + if (ev.metaKey || ev.altKey) { |
2574 | return; | 2583 | return; |
2575 | } | 2584 | } |
2576 | 2585 | ||
... | @@ -2585,13 +2594,13 @@ | ... | @@ -2585,13 +2594,13 @@ |
2585 | } | 2594 | } |
2586 | if (!n) return; | 2595 | if (!n) return; |
2587 | 2596 | ||
2588 | - if (shift && n.classed('selected')) { | 2597 | + if (ev.shiftKey && n.classed('selected')) { |
2589 | deselectObject(obj.id); | 2598 | deselectObject(obj.id); |
2590 | updateDetailPane(); | 2599 | updateDetailPane(); |
2591 | return; | 2600 | return; |
2592 | } | 2601 | } |
2593 | 2602 | ||
2594 | - if (!shift) { | 2603 | + if (!ev.shiftKey) { |
2595 | deselectAll(); | 2604 | deselectAll(); |
2596 | } | 2605 | } |
2597 | 2606 | ||
... | @@ -2805,8 +2814,9 @@ | ... | @@ -2805,8 +2814,9 @@ |
2805 | 2814 | ||
2806 | function setupPanZoom() { | 2815 | function setupPanZoom() { |
2807 | function zoomed() { | 2816 | function zoomed() { |
2808 | - // pan zoom active when meta key is pressed... | 2817 | + var ev = d3.event.sourceEvent; |
2809 | - if (d3.event.sourceEvent.metaKey) { | 2818 | + // pan/zoom active when meta or alt key is pressed... |
2819 | + if (ev.metaKey || ev.altKey) { | ||
2810 | panZoom(d3.event.translate, d3.event.scale); | 2820 | panZoom(d3.event.translate, d3.event.scale); |
2811 | } | 2821 | } |
2812 | } | 2822 | } |
... | @@ -2943,8 +2953,10 @@ | ... | @@ -2943,8 +2953,10 @@ |
2943 | 2953 | ||
2944 | // predicate that indicates when dragging is active | 2954 | // predicate that indicates when dragging is active |
2945 | function dragEnabled() { | 2955 | function dragEnabled() { |
2946 | - // meta key pressed means we are zooming/panning (so disable drag) | 2956 | + var ev = d3.event.sourceEvent; |
2947 | - return !nodeLock && !d3.event.sourceEvent.metaKey; | 2957 | + // nodeLock means we aren't allowing nodes to be dragged... |
2958 | + // meta or alt key pressed means we are zooming/panning... | ||
2959 | + return !nodeLock && !(ev.metaKey || ev.altKey); | ||
2948 | } | 2960 | } |
2949 | 2961 | ||
2950 | // predicate that indicates when clicking is active | 2962 | // predicate that indicates when clicking is active | ... | ... |
-
Please register or login to post a comment