Skip to content

Commit 4fbe6b7

Browse files
committed
Store highlighted row status
1 parent 4defbc7 commit 4fbe6b7

File tree

2 files changed

+24
-14
lines changed

2 files changed

+24
-14
lines changed

InteractiveHtmlBom/ibom.css

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,14 @@
22
--pcb-edge-color: black;
33
}
44

5-
:root .dark {
6-
--pcb-edge-color: #eee;
7-
}
8-
95
html, body {
106
margin: 0px;
117
height: 100%;
128
font-family: Verdana, sans-serif;
139
}
1410

1511
.dark {
12+
--pcb-edge-color: #eee;
1613
background-color: #252c30;
1714
color: #eee;
1815
}
@@ -150,6 +147,14 @@ canvas:active {
150147
background-color: #3b4749;
151148
}
152149

150+
.bom tr.highlighted:nth-child(n) {
151+
background-color: #cfc;
152+
}
153+
154+
.dark .bom tr.highlighted:nth-child(n) {
155+
background-color: #226022;
156+
}
157+
153158
.bom tr:nth-child(even) {
154159
background-color: #f2f2f2;
155160
}
@@ -162,14 +167,6 @@ canvas:active {
162167
transition: background-color 0.2s;
163168
}
164169

165-
.bom tr:hover {
166-
background-color: #cfc;
167-
}
168-
169-
.dark .bom tr:hover {
170-
background-color: #226022;
171-
}
172-
173170
.bom .numCol {
174171
width: 25px;
175172
}

InteractiveHtmlBom/ibom.js

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ var bomsplit;
66
var canvassplit;
77
var canvaslayout = "default";
88
var bomlayout = "default";
9+
var currentHighlightedRowId;
10+
var highlightHandlers = [];
911
var highlightedRefs = [];
1012
var bomCheckboxes = "";
1113
var storage;
@@ -105,8 +107,16 @@ function createCheckboxChangeHandler(checkbox, references) {
105107
}
106108
}
107109

108-
function createRowMouseEnterHandler(refs) {
110+
function createRowHighlightHandler(rowid, refs) {
109111
return function() {
112+
if (currentHighlightedRowId) {
113+
if (currentHighlightedRowId == rowid) {
114+
return;
115+
}
116+
document.getElementById(currentHighlightedRowId).classList.remove("highlighted");
117+
}
118+
document.getElementById(rowid).classList.add("highlighted");
119+
currentHighlightedRowId = rowid;
110120
highlightedRefs = refs;
111121
drawHighlights();
112122
}
@@ -196,6 +206,7 @@ function populateBomHeader() {
196206
}
197207

198208
function populateBomBody() {
209+
highlightHandlers = [];
199210
var first = true;
200211
switch (canvaslayout) {
201212
case 'F':
@@ -255,7 +266,9 @@ function populateBomBody() {
255266
td.textContent = bomentry[3].length;
256267
tr.appendChild(td);
257268
bom.appendChild(tr);
258-
tr.onmouseenter = createRowMouseEnterHandler(references);
269+
var handler = createRowHighlightHandler(tr.id, references);
270+
tr.onmouseenter = handler;
271+
highlightHandlers.push({id: tr.id, handler: handler});
259272
if ((filter || reflookup) && first) {
260273
highlightedRefs = references;
261274
drawHighlights();

0 commit comments

Comments
 (0)