| OLD | NEW | 
|    1 // Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file |    1 // Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file | 
|    2 // for details. All rights reserved. Use of this source code is governed by a |    2 // for details. All rights reserved. Use of this source code is governed by a | 
|    3 // BSD-style license that can be found in the LICENSE file. |    3 // BSD-style license that can be found in the LICENSE file. | 
|    4  |    4  | 
|    5 library script_inset_element; |    5 library script_inset_element; | 
|    6  |    6  | 
|    7 import 'dart:async'; |    7 import 'dart:async'; | 
|    8 import 'dart:html'; |    8 import 'dart:html'; | 
|    9 import 'observatory_element.dart'; |    9 import 'observatory_element.dart'; | 
|   10 import 'service_ref.dart'; |   10 import 'service_ref.dart'; | 
| (...skipping 372 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  383   var annotations = []; |  383   var annotations = []; | 
|  384   var annotationsCursor; |  384   var annotationsCursor; | 
|  385  |  385  | 
|  386   StreamSubscription scriptChangeSubscription; |  386   StreamSubscription scriptChangeSubscription; | 
|  387  |  387  | 
|  388   String makeLineId(int line) { |  388   String makeLineId(int line) { | 
|  389     return 'line-$line'; |  389     return 'line-$line'; | 
|  390   } |  390   } | 
|  391  |  391  | 
|  392   void _scrollToCurrentPos() { |  392   void _scrollToCurrentPos() { | 
|  393     var line = querySelector('#${makeLineId(_currentLine)}'); |  393     var line = shadowRoot.getElementById(makeLineId(_currentLine)); | 
|  394     if (line != null) { |  394     if (line != null) { | 
|  395       line.scrollIntoView(); |  395       line.scrollIntoView(); | 
|  396     } |  396     } | 
|  397   } |  397   } | 
|  398  |  398  | 
|  399   void detached() { |  399   void detached() { | 
|  400     if (scriptChangeSubscription != null) { |  400     if (scriptChangeSubscription != null) { | 
|  401       // Don't leak. If only Dart and Javascript exposed weak references... |  401       // Don't leak. If only Dart and Javascript exposed weak references... | 
|  402       scriptChangeSubscription.cancel(); |  402       scriptChangeSubscription.cancel(); | 
|  403       scriptChangeSubscription = null; |  403       scriptChangeSubscription = null; | 
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  462       return; |  462       return; | 
|  463     } |  463     } | 
|  464  |  464  | 
|  465     if (scriptChangeSubscription == null) { |  465     if (scriptChangeSubscription == null) { | 
|  466       scriptChangeSubscription = script.changes.listen((_) => update()); |  466       scriptChangeSubscription = script.changes.listen((_) => update()); | 
|  467     } |  467     } | 
|  468  |  468  | 
|  469     computeAnnotations(); |  469     computeAnnotations(); | 
|  470  |  470  | 
|  471     var table = linesTable(); |  471     var table = linesTable(); | 
 |  472     var firstBuild = false; | 
|  472     if (container == null) { |  473     if (container == null) { | 
|  473       // Indirect to avoid deleting the style element. |  474       // Indirect to avoid deleting the style element. | 
|  474       container = new DivElement(); |  475       container = new DivElement(); | 
|  475       shadowRoot.append(container); |  476       shadowRoot.append(container); | 
 |  477       firstBuild = true; | 
|  476     } |  478     } | 
|  477     container.children.clear(); |  479     container.children.clear(); | 
|  478     container.children.add(table); |  480     container.children.add(table); | 
|  479     makeCssClassUncopyable(table, "noCopy"); |  481     makeCssClassUncopyable(table, "noCopy"); | 
 |  482     if (firstBuild) { | 
 |  483       _scrollToCurrentPos(); | 
 |  484     } | 
|  480   } |  485   } | 
|  481  |  486  | 
|  482   void computeAnnotations() { |  487   void computeAnnotations() { | 
|  483     _startLine = (startPos != null |  488     _startLine = (startPos != null | 
|  484                   ? script.tokenToLine(startPos) |  489                   ? script.tokenToLine(startPos) | 
|  485                   : 1 + script.lineOffset); |  490                   : 1 + script.lineOffset); | 
|  486     _currentLine = (currentPos != null |  491     _currentLine = (currentPos != null | 
|  487                     ? script.tokenToLine(currentPos) |  492                     ? script.tokenToLine(currentPos) | 
|  488                     : null); |  493                     : null); | 
|  489     _currentCol = (currentPos != null |  494     _currentCol = (currentPos != null | 
| (...skipping 437 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  927 class SourceInsetElement extends PolymerElement { |  932 class SourceInsetElement extends PolymerElement { | 
|  928   SourceInsetElement.created() : super.created(); |  933   SourceInsetElement.created() : super.created(); | 
|  929  |  934  | 
|  930   @published SourceLocation location; |  935   @published SourceLocation location; | 
|  931   @published String height = null; |  936   @published String height = null; | 
|  932   @published int currentPos; |  937   @published int currentPos; | 
|  933   @published bool inDebuggerContext = false; |  938   @published bool inDebuggerContext = false; | 
|  934   @published ObservableList variables; |  939   @published ObservableList variables; | 
|  935 } |  940 } | 
|  936  |  941  | 
| OLD | NEW |