@@ -229,7 +229,7 @@ class Graph extends React.Component {
229
229
230
230
d3_select ( window ) . on ( "resize" , this . resizeSVG . bind ( this ) ) ;
231
231
this . div . on ( "click" , this . handleClickDiv . bind ( this ) ) ;
232
- d3_select ( document ) . on ( "keyup " , this . handleKeyUpDocument . bind ( this ) ) ;
232
+ d3_select ( document ) . on ( "keydown " , this . handleKeyDownDocument . bind ( this ) ) ;
233
233
this . div . on ( "mousemove" , this . handleMouseMoveDiv . bind ( this ) ) ;
234
234
this . div . on ( "contextmenu" , this . handleRightClickDiv . bind ( this ) ) ;
235
235
this . svg . on ( "mousedown" , this . handleMouseDownSvg . bind ( this ) ) ;
@@ -250,41 +250,52 @@ class Graph extends React.Component {
250
250
this . unSelectComponents ( ) ;
251
251
}
252
252
253
- handleKeyUpDocument ( d , i , nodes ) {
253
+ handleKeyDownDocument ( d , i , nodes ) {
254
254
var event = d3_event ;
255
255
if ( event . target . nodeName !== 'BODY' ) {
256
256
return ;
257
257
}
258
- event . preventDefault ( ) ;
259
258
if ( event . key === 'Escape' ) {
260
259
this . graphviz . removeDrawnEdge ( ) ;
261
260
this . unSelectComponents ( ) ;
262
261
}
263
- if ( event . key === 'Delete' ) {
262
+ else if ( event . key === 'Delete' ) {
264
263
this . deleteSelectedComponents . call ( this ) ;
265
264
this . graphviz . removeDrawnEdge ( ) ;
266
265
}
267
- if ( event . ctrlKey && event . key === 'c' ) {
266
+ else if ( event . ctrlKey && event . key === 'c' ) {
268
267
let nodes = this . selectedComponents . filter ( '.node' ) ;
269
268
if ( nodes . size ( ) > 0 ) {
270
269
let nodeName = nodes . selectWithoutDataPropagation ( "title" ) . text ( ) ;
271
270
this . latestNodeAttributes = this . dotGraph . getNodeAttributes ( nodeName ) ;
272
271
}
273
272
}
274
- if ( event . ctrlKey && event . key === 'v' ) {
273
+ else if ( event . ctrlKey && event . key === 'v' ) {
275
274
this . insertNodeWithLatestAttributes ( ) ;
276
275
}
277
- if ( event . ctrlKey && event . key === 'x' ) {
276
+ else if ( event . ctrlKey && event . key === 'x' ) {
278
277
let nodes = this . selectedComponents . filter ( '.node' ) ;
279
278
if ( nodes . size ( ) > 0 ) {
280
279
let nodeName = nodes . selectWithoutDataPropagation ( "title" ) . text ( ) ;
281
280
this . latestNodeAttributes = this . dotGraph . getNodeAttributes ( nodeName ) ;
282
281
}
283
282
this . deleteSelectedComponents . call ( this ) ;
284
283
}
285
- if ( event . key === '?' ) {
284
+ else if ( event . key === 'a' ) {
285
+ let components = this . graph0 . selectAll ( '.node,.edge' ) ;
286
+ this . selectComponents ( components ) ;
287
+ }
288
+ else if ( event . key === 'A' ) {
289
+ let components = this . graph0 . selectAll ( '.edge' ) ;
290
+ this . selectComponents ( components ) ;
291
+ }
292
+ else if ( event . key === '?' ) {
286
293
this . props . onHelp ( ) ;
287
294
}
295
+ else {
296
+ return ;
297
+ }
298
+ event . preventDefault ( ) ;
288
299
this . isDrawingEdge = false ;
289
300
}
290
301
0 commit comments