Simon Van Mierlo před 8 roky
rodič
revize
43b62abf2d
2 změnil soubory, kde provedl 38 přidání a 11 odebrání
  1. 22 0
      client/client.js
  2. 16 11
      client/selection_utils.js

+ 22 - 0
client/client.js

@@ -507,6 +507,28 @@ function _highlight(args/*asid[,followCrossFormalismLinks,timeout]*/)
 	}
 }
 
+function _highlightState(args/*asid[,followCrossFormalismLinks,timeout]*/)
+{
+    var uri		= __asid2csuri(args['asid']),
+        fcfl		= args['followCrossFormalismLinks'],
+        timeout	= args['timeout'];
+    __highlight(uri,fcfl,timeout);
+}
+
+/* unhighlight any highlighted nodes - sadaf */
+function _unhighlight()
+{
+    __unhighlight();
+}
+
+/* unhighlight any highlighted nodes - sadaf */
+function _unhighlightState(args/*asid*/)
+{
+    //var uri		= __asid2csuri(args['asid']);
+    //__icons[uri]['icon'].unhighlight();
+	__unhighlight(__asid2csuri(args['asid']));
+}
+
 
 /* interface to WindowManagement.spawnClient() 'USER' API function */
 function _loadModelInNewWindow(args/*fname[,callback-url]*/)

+ 16 - 11
client/selection_utils.js

@@ -20,7 +20,7 @@ with AToMPM.  If not, see <http://www.gnu.org/licenses/>.
 *******************************************************************************/
 
 var __selectionOverlay;
-var __highlighted;
+var __highlighted = [];
 var __selection;
 
 function __isSelected(it)
@@ -186,13 +186,13 @@ function __flash(uri,color,timeout)
 		'turnOff' :: a function that unhighlights 'uri' and nodes from step 2. if 
 						 any... the try/catch blocks ensure safety against deletion of
 						 highlighted icons */
-function __highlight(uri,followCrossFormalismLinks,timeout)
+function __highlight(uri,followCrossFormalismLinks,timeout,color)
 {
 	if( ! isHighlighted(uri) )
 	{
-		__unhighlight();
+		__unhighlight(uri);
 
-		__icons[uri]['icon'].highlight({'color':'DarkTurquoise','fill':true});
+		__icons[uri]['icon'].highlight({'color':color || 'DarkTurquoise','fill':true});
 
 		if( followCrossFormalismLinks != undefined )
 		{
@@ -209,7 +209,7 @@ function __highlight(uri,followCrossFormalismLinks,timeout)
 		if( timeout != undefined )
 			var tid = window.setTimeout(__unhighlight,timeout);
 
-		__highlighted = 
+		__highlighted.push( 
 			{'uri':uri,
 			 'turnOff':
 				 function() 
@@ -225,23 +225,28 @@ function __highlight(uri,followCrossFormalismLinks,timeout)
 							} );
 					 if( timeout != undefined )
 						 window.clearTimeout(tid);
-				 }};
+				 }});
 	}
 }
 
 
 function isHighlighted(uri)
 {
-	return __highlighted != undefined && uri == __highlighted['uri'];
+	return __highlighted.length > 0 && __highlighted.filter(function(hl) {return uri == hl['uri']}).length == 1;
 }
 
 
-function __unhighlight()
+function __unhighlight(uri)
 {
-	if( __highlighted )
+	if( __highlighted.length > 0 )
 	{
-		__highlighted.turnOff();
-		__highlighted = undefined;
+		__highlighted.filter(function(hl) {return !uri || uri == hl['uri']}).forEach(function(hl) {hl.turnOff()})
+		if (!uri) {
+			__highlighted = [];
+		} else {
+			__highlighted = __highlighted.filter(function(hl) {return uri != hl['uri']})
+		}
+		
 	}
 }