commit 219cf56f1e3c2de580b92425227bb0ce7aaee401
Author: Pavel Fidranský <fidransky@outlook.com>
Date:   Sun Feb 10 20:20:29 2019 +0100

    re #16: found node is marked with drop shadow instead of background

diff --git a/sources/imiger-core/src/main/webapp/css/components/sidebar.css b/sources/imiger-core/src/main/webapp/css/components/sidebar.css
index 58ac4b0..49b4407 100644
--- a/sources/imiger-core/src/main/webapp/css/components/sidebar.css
+++ b/sources/imiger-core/src/main/webapp/css/components/sidebar.css
@@ -169,7 +169,7 @@
 
 .sidebar .node--found .vertex-name,
 .sidebar .node--found .group-name {
-	background-color: orange;
+	box-shadow: 0 0 16px 2px #ffa500;
 }
 
 .sidebar .node--highlighted .vertex-name {
diff --git a/sources/imiger-core/src/main/webapp/css/components/viewport.css b/sources/imiger-core/src/main/webapp/css/components/viewport.css
index 79373bc..34ad971 100644
--- a/sources/imiger-core/src/main/webapp/css/components/viewport.css
+++ b/sources/imiger-core/src/main/webapp/css/components/viewport.css
@@ -47,10 +47,6 @@
 	stroke-width: 1;
 }
 
-.viewport .node--found > rect {
-	fill: orange;
-}
-
 .viewport .node--dimmed {
 	opacity: 0.5;
 }
diff --git a/sources/imiger-core/src/main/webapp/js/components/node.js b/sources/imiger-core/src/main/webapp/js/components/node.js
index 601b377..774911b 100644
--- a/sources/imiger-core/src/main/webapp/js/components/node.js
+++ b/sources/imiger-core/src/main/webapp/js/components/node.js
@@ -151,9 +151,17 @@ class Node {
 		this._isFound = newValue;
 
 		if (newValue) {
-			this._rootElement.classList.add('node--found');
+			if (this.isExcluded) {
+				this._rootElement.classList.add('node--found');
+			} else {
+				this._rootElement.setAttribute('filter', 'url(#node--found)');
+			}
 		} else {
-			this._rootElement.classList.remove('node--found');
+			if (this.isExcluded) {
+				this._rootElement.classList.remove('node--found');
+			} else {
+				this._rootElement.removeAttribute('filter');
+			}
 		}
 	}
 
diff --git a/sources/imiger-core/src/main/webapp/js/components/viewport.js b/sources/imiger-core/src/main/webapp/js/components/viewport.js
index b699f47..59a79de 100644
--- a/sources/imiger-core/src/main/webapp/js/components/viewport.js
+++ b/sources/imiger-core/src/main/webapp/js/components/viewport.js
@@ -183,6 +183,39 @@ class Viewport {
 					'stop-color': '#5896ff',
 				}),
 			]),
+			// drop shadow for found nodes
+			DOM.s('filter', {
+				id: 'node--found',
+				width: '200%',
+				height: '200%',
+				x: '-50%',
+				y: '-50%',
+			}, [
+				// use feDropShadow once supported in all major browsers
+				DOM.s('feGaussianBlur', {
+					in: 'SourceAlpha',
+					stdDeviation: '16 8',
+				}),
+				DOM.s('feOffset', {
+					dx: 0,
+					dy: 0,
+					result: 'offsetBlur',
+				}),
+				DOM.s('feFlood', {
+					'flood-color': '#ffa500',
+					'flood-opacity': 1,
+				}),
+				DOM.s('feComposite', {
+					in2: 'offsetBlur',
+					operator: 'in',
+				}),
+				DOM.s('feMerge', {}, [
+					DOM.s('feMergeNode'),
+					DOM.s('feMergeNode', {
+						in: 'SourceGraphic',
+					}),
+				]),
+			]),
 		]);
 		graph.appendChild(this._definitions);
 
diff --git a/sources/imiger-core/src/main/webapp/tests/search.robot b/sources/imiger-core/src/main/webapp/tests/search.robot
index 1931419..3a811bc 100644
--- a/sources/imiger-core/src/main/webapp/tests/search.robot
+++ b/sources/imiger-core/src/main/webapp/tests/search.robot
@@ -25,9 +25,9 @@ Search vertex using enter key
 	# check counter of found nodes
 	${found}=		Get Text	${searchCounter}
 	Should Be Equal As Strings	${found}		2
-	# check CSS classes of found nodes
-	Element Should Have Class	${vertex2015}	node--found
-	Element Should Have Class	${vertex2039}	node--found
+	# check found nodes
+	Element Attribute Value Should Be	${vertex2015}	filter	url(#node--found)
+	Element Attribute Value Should Be	${vertex2039}	filter	url(#node--found)
 
 
 Search vertex using button
@@ -36,9 +36,9 @@ Search vertex using button
 	# check counter of found nodes
 	${found}=	Get Text		${searchCounter}
 	Should Be Equal As Strings	${found}		2
-	# check CSS classes of found nodes
-	Element Should Have Class	${vertex2015}	node--found
-	Element Should Have Class	${vertex2039}	node--found
+	# check found nodes
+	Element Attribute Value Should Be	${vertex2015}	filter	url(#node--found)
+	Element Attribute Value Should Be	${vertex2039}	filter	url(#node--found)
 
 
 Reset search using escape key
@@ -50,8 +50,8 @@ Reset search using escape key
 	${found}=	Get Text	${searchCounter}
 	Should Be Equal As Strings	${found}		0
 	# check that no nodes are found
-	Element Should Not Have Class	${vertex2015}	node--found
-	Element Should Not Have Class	${vertex2039}	node--found
+	Element Should Not Have Attribute	${vertex2015}	filter
+	Element Should Not Have Attribute	${vertex2039}	filter
 
 
 Reset search using counter click
@@ -62,5 +62,5 @@ Reset search using counter click
 	${found}=	Get Text	${searchCounter}
 	Should Be Equal As Strings	${found}		0
 	# check that no nodes are found
-	Element Should Not Have Class	${vertex2015}	vertex--found
-	Element Should Not Have Class	${vertex2039}	vertex--found
+	Element Should Not Have Attribute	${vertex2015}	filter
+	Element Should Not Have Attribute	${vertex2039}	filter
