@@ -3,24 +3,58 @@ import { onSelectionUpdate } from "../selection";
3
3
4
4
let selectedNode = null ;
5
5
6
- onSelectionUpdate ( ( selection ) => {
6
+ onSelectionUpdate ( ( selection , lastNodeSelected ) => {
7
7
8
- d3 . select ( "#nodeDetailsToggle" ) . classed ( "disabled" , selection . length !== 1 ) ;
9
- selectedNode = selection . length === 1 ? selection [ 0 ] : null ;
8
+ d3 . select ( "#nodeDetailsToggle" ) . classed ( "disabled" , selection . length === 0 ) ;
9
+ selectedNode = lastNodeSelected
10
+ ? lastNodeSelected
11
+ : selection . length > 0
12
+ ? selection [ selection . length - 1 ]
13
+ : null ;
10
14
updateHeader ( ) ;
11
15
12
16
} ) ;
13
17
14
18
function updateHeader ( ) {
15
19
20
+ let typeName = ( ( selectedNode || { } ) . type || "Node" . toString ( ) ) ;
21
+
16
22
d3 . select ( "#nodeDetails .header .text" ) . text (
17
23
selectedNode
18
- ? `Node "${ selectedNode . label } " (${ selectedNode . type } ) selected.`
24
+ ? `${ typeName [ 0 ] . toUpperCase ( ) + typeName . slice ( 1 ) } "${
25
+ selectedNode . label } " selected.`
19
26
: "Please, select one node."
20
27
) ;
21
28
22
29
if ( ! selectedNode ) {
23
30
d3 . select ( "#nodeDetails" ) . classed ( "active" , model . uiState . detailsToggled = false ) ;
31
+ } else {
32
+ updateData ( ) ;
33
+ }
34
+
35
+ }
36
+
37
+ function updateData ( ) {
38
+
39
+ if ( ! selectedNode )
40
+ return ;
41
+
42
+ let tableElement = document . querySelector ( "#nodeDetails-entitiesTable tbody" ) ;
43
+ // labelElement = document.querySelector("#nodeDetails-label"),
44
+ // idElement = document.querySelector("#nodeDetails-id");
45
+
46
+ // idElement.textContent = selectedNode.id;
47
+ // labelElement.textContent = selectedNode.label;
48
+
49
+ tableElement . textContent = "" ;
50
+ for ( let i = 0 ; i < ( selectedNode . entities || [ ] ) . length ; i ++ ) {
51
+ let row = tableElement . insertRow ( i ) ,
52
+ entity = selectedNode . entities [ i ] ;
53
+ row . insertCell ( 0 ) . textContent = entity . value ;
54
+ row . insertCell ( 1 ) . textContent = entity . id ;
55
+ row . insertCell ( 2 ) . textContent = entity . frequency ;
56
+ row . insertCell ( 3 ) . textContent = entity . score ;
57
+ row . insertCell ( 4 ) . textContent = entity . spread ;
24
58
}
25
59
26
60
}
0 commit comments