Skip to content

Commit c7f8f1a

Browse files
author
Niklas Kiefer
committed
feat(selection-visuals): add marker to related elements
1 parent 372e439 commit c7f8f1a

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

lib/features/selection/SelectionVisuals.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@ import {
22
forEach
33
} from 'min-dash';
44

5+
import {
6+
getType
7+
} from 'lib/util/Elements';
8+
59
var MARKER_HOVER = 'hover',
610
MARKER_SELECTED = 'selected';
711

@@ -22,12 +26,29 @@ export default function SelectionVisuals(events, canvas, selection, styles) {
2226

2327
this._multiSelectionBox = null;
2428

29+
function applyToRelatedElements(e, cls, fn) {
30+
31+
// connections -> mark related labels
32+
if (getType(e) === 'connection') {
33+
forEach(e.labels, function(label) {
34+
fn(label, cls);
35+
});
36+
}
37+
38+
// label -> mark related connection
39+
if (e.labelTarget) {
40+
fn(e.labelTarget, cls);
41+
}
42+
}
43+
2544
function addMarker(e, cls) {
2645
canvas.addMarker(e, cls);
46+
applyToRelatedElements(e, cls, canvas.addMarker.bind(canvas));
2747
}
2848

2949
function removeMarker(e, cls) {
3050
canvas.removeMarker(e, cls);
51+
applyToRelatedElements(e, cls, canvas.removeMarker.bind(canvas));
3152
}
3253

3354
events.on('element.hover', function(event) {

0 commit comments

Comments
 (0)