Skip to content

Commit e32a35d

Browse files
Menus GUI implementation, styles updates
1 parent 63b2be0 commit e32a35d

18 files changed

+210
-22
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "iknow-entity-browser",
3-
"version": "0.0.6",
3+
"version": "0.0.8",
44
"description": "Visualizer for iKnow entities",
55
"main": "gulpfile.babel.js",
66
"scripts": {
208 Bytes
Binary file not shown.

src/static/fonts/iknowentitybrowsericons.svg

Lines changed: 1 addition & 0 deletions
Loading
208 Bytes
Binary file not shown.
96 Bytes
Binary file not shown.

src/static/index.html

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
<meta charset="UTF-8">
55
<title>iKnow Entity Browser</title>
66
<meta name="author" content="ZitRo">
7+
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
78
<link rel="stylesheet" href="css/index.css"/>
89
<script src="lib/d3.v4.min.js"></script>
910
<script type="text/javascript" src="js/index.js"></script>
@@ -13,8 +14,11 @@
1314
<svg id="graph"></svg>
1415
<div id="table">
1516
<i id="tableToggle" class="ui icon-window-list"></i>
17+
<div id="rightTopIcons">
18+
<i id="settingsToggle" class="ui icon-cog"></i>
19+
</div>
1620
<div class="wrapper">
17-
<div>
21+
<div class="controls">
1822
<i id="exportCSV" class="ui icon-page-export-csv"></i>
1923
</div>
2024
<h1>Selected Nodes</h1>
@@ -44,11 +48,29 @@ <h1>Selected Nodes</h1>
4448
<div class="text">Please, select a node.</div>
4549
</div>
4650
<div class="content">
47-
<h1>WELCOME</h1>
48-
<h3>THIS IS A GAME</h3>
49-
<h5>TEST GAME!</h5>
51+
<!--h1>
52+
<span id="nodeDetails-label">Duck</span>
53+
<span style="color: darkgray">ID=<span id="nodeDetails-id">0</span></span>
54+
</h1-->
55+
<table id="nodeDetails-entitiesTable">
56+
<thead>
57+
<tr>
58+
<th>Entity</th>
59+
<th>ID</th>
60+
<th>Frequency</th>
61+
<th>Score</th>
62+
<th>Spread</th>
63+
</tr>
64+
</thead>
65+
<tbody>
66+
67+
</tbody>
68+
</table>
5069
</div>
5170
</div>
71+
<div id="settings">
72+
<i id="closeSettingsToggle" class="ui icon-close"></i>
73+
</div>
5274
</div>
5375
</body>
5476
</html>

src/static/js/details/index.js

Lines changed: 38 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,24 +3,58 @@ import { onSelectionUpdate } from "../selection";
33

44
let selectedNode = null;
55

6-
onSelectionUpdate((selection) => {
6+
onSelectionUpdate((selection, lastNodeSelected) => {
77

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;
1014
updateHeader();
1115

1216
});
1317

1418
function updateHeader () {
1519

20+
let typeName = ((selectedNode || {}).type || "Node".toString());
21+
1622
d3.select("#nodeDetails .header .text").text(
1723
selectedNode
18-
? `Node "${ selectedNode.label }" (${ selectedNode.type }) selected.`
24+
? `${ typeName[0].toUpperCase() + typeName.slice(1) } "${
25+
selectedNode.label }" selected.`
1926
: "Please, select one node."
2027
);
2128

2229
if (!selectedNode) {
2330
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;
2458
}
2559

2660
}

src/static/js/graph/index.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { updateSelectedNodes } from "../tabular";
22
import { getGraphData } from "../model";
3-
import { updateSelection } from "../selection";
3+
import { updateSelection, setLastSelectedNode } from "../selection";
44

55
export function update () {
66

@@ -76,6 +76,7 @@ export function update () {
7676
node.classed("selected", (p) => p.selected = p.previouslySelected = false)
7777
}
7878
d3.select(this).classed("selected", d.selected = !d.selected); // (!prevSel)
79+
setLastSelectedNode(d.selected ? d : null);
7980
updateSelection();
8081
});
8182

@@ -108,9 +109,10 @@ export function update () {
108109
if (!extent)
109110
return;
110111
node.classed("selected", (d) => {
111-
return d.selected = d.previouslySelected ^
112-
(extent[0][0] <= d.x && d.x < extent[1][0]
112+
let selected = (extent[0][0] <= d.x && d.x < extent[1][0]
113113
&& extent[0][1] <= d.y && d.y < extent[1][1]);
114+
if (selected) setLastSelectedNode(d);
115+
return d.selected = d.previouslySelected ^ selected;
114116
});
115117
})
116118
.on("end.brush", () => {

src/static/js/index.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
import { update } from "./graph";
22
import * as tabular from "./tabular";
33
import * as details from "./details";
4+
import * as settings from "./settings";
45

56
window.init = () => {
67

78
update();
89
tabular.init();
910
details.init();
11+
settings.init();
1012

1113
};

src/static/js/model/index.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,6 @@ export function getGraphData () {
1313

1414
export var uiState = {
1515
tabularToggled: false,
16-
detailsToggled: false
16+
detailsToggled: false,
17+
settingsToggled: false
1718
};

0 commit comments

Comments
 (0)