@@ -6,28 +6,44 @@ const {
6
6
getOwner
7
7
} = Ember ;
8
8
9
- const STORAGE_KEY = `${ config . storageVersion } _graph-data` ;
9
+ const DATA_STORAGE_KEY = `${ config . storageVersion } _graph-data` ;
10
+ const SELECTED_NODE_STORAGE_KEY = `${ config . storageVersion } _selected-node-id` ;
10
11
11
12
export default Ember . Service . extend ( {
12
13
init ( ) {
13
14
this . _super ( ...arguments ) ;
14
15
15
- let data = sessionStorage . getItem ( STORAGE_KEY ) ;
16
+ let data = sessionStorage . getItem ( DATA_STORAGE_KEY ) ;
16
17
if ( data ) {
17
18
this . setGraph ( JSON . parse ( data ) ) ;
18
19
}
20
+
21
+ let selectedNodeId = sessionStorage . getItem ( SELECTED_NODE_STORAGE_KEY ) ;
22
+ if ( selectedNodeId && data ) {
23
+ let graph = this . get ( 'graph' ) ;
24
+ for ( let node of graph . dfsIterator ( ) ) {
25
+ if ( node . id === selectedNodeId ) {
26
+ this . set ( 'selectedNode' , node ) ;
27
+ break ;
28
+ }
29
+ }
30
+ }
19
31
} ,
20
32
21
33
setGraph ( data ) {
22
34
let graph = heimdallGraph . loadFromJSON ( data ) ;
23
35
24
- sessionStorage . setItem ( STORAGE_KEY , JSON . stringify ( data ) ) ;
36
+ try {
37
+ sessionStorage . setItem ( DATA_STORAGE_KEY , JSON . stringify ( data ) ) ;
38
+ } catch ( e ) { }
25
39
26
40
this . set ( 'data' , data ) ;
27
41
this . set ( 'graph' , graph ) ;
28
42
} ,
29
43
30
44
selectNode ( node ) {
45
+ sessionStorage . setItem ( SELECTED_NODE_STORAGE_KEY , node . id ) ;
46
+
31
47
this . set ( 'selectedNode' , node ) ;
32
48
getOwner ( this ) . lookup ( 'router:main' ) . transitionTo ( 'selected-node' ) ;
33
49
}
0 commit comments