| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 part of $LIBRARYNAME; | 5 part of $LIBRARYNAME; |
| 6 | 6 |
| 7 class _ChildrenElementList extends ListBase<Element> | 7 class _ChildrenElementList extends ListBase<Element> |
| 8 implements NodeListWrapper { | 8 implements NodeListWrapper { |
| 9 // Raw Element. | 9 // Raw Element. |
| 10 final Element _element; | 10 final Element _element; |
| (...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 256 // Wrapper over an immutable NodeList to make it implement ElementList. | 256 // Wrapper over an immutable NodeList to make it implement ElementList. |
| 257 // | 257 // |
| 258 // Clients are {`Document`, `DocumentFragment`}.`querySelectorAll` which are | 258 // Clients are {`Document`, `DocumentFragment`}.`querySelectorAll` which are |
| 259 // declared to return `ElementList`. This provides all the static analysis | 259 // declared to return `ElementList`. This provides all the static analysis |
| 260 // benefit so there is no need for this class have a constrained type parameter. | 260 // benefit so there is no need for this class have a constrained type parameter. |
| 261 // | 261 // |
| 262 class _FrozenElementList extends ListBase | 262 class _FrozenElementList extends ListBase |
| 263 implements ElementList, NodeListWrapper { | 263 implements ElementList, NodeListWrapper { |
| 264 final List<Node> _nodeList; | 264 final List<Node> _nodeList; |
| 265 | 265 |
| 266 $if JSINTEROP |
| 267 var dartClass_instance; |
| 268 |
| 269 _FrozenElementList._wrap(this._nodeList) { |
| 270 this.dartClass_instance = this._nodeList; |
| 271 } |
| 272 $else |
| 266 _FrozenElementList._wrap(this._nodeList); | 273 _FrozenElementList._wrap(this._nodeList); |
| 274 $endif |
| 267 | 275 |
| 268 int get length => _nodeList.length; | 276 int get length => _nodeList.length; |
| 269 | 277 |
| 270 Element operator [](int index) => _nodeList[index]; | 278 Element operator [](int index) => _nodeList[index]; |
| 271 | 279 |
| 272 void operator []=(int index, Element value) { | 280 void operator []=(int index, Element value) { |
| 273 throw new UnsupportedError('Cannot modify list'); | 281 throw new UnsupportedError('Cannot modify list'); |
| 274 } | 282 } |
| 275 | 283 |
| 276 void set length(int newLength) { | 284 void set length(int newLength) { |
| (...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 565 * | 573 * |
| 566 * This collection can be used to add and remove elements from the document. | 574 * This collection can be used to add and remove elements from the document. |
| 567 * | 575 * |
| 568 * var item = new DivElement(); | 576 * var item = new DivElement(); |
| 569 * item.text = 'Something'; | 577 * item.text = 'Something'; |
| 570 * document.body.children.add(item) // Item is now displayed on the page. | 578 * document.body.children.add(item) // Item is now displayed on the page. |
| 571 * for (var element in document.body.children) { | 579 * for (var element in document.body.children) { |
| 572 * element.style.background = 'red'; // Turns every child of body red. | 580 * element.style.background = 'red'; // Turns every child of body red. |
| 573 * } | 581 * } |
| 574 */ | 582 */ |
| 583 $if DART2JS |
| 575 List<Element> get children => new _ChildrenElementList._wrap(this); | 584 List<Element> get children => new _ChildrenElementList._wrap(this); |
| 585 $else |
| 586 $if JSINTEROP |
| 587 List<Element> get children => new FilteredElementList(this); |
| 588 $else |
| 589 List<Element> get children => new _ChildrenElementList._wrap(this); |
| 590 $endif |
| 591 $endif |
| 576 | 592 |
| 577 void set children(List<Element> value) { | 593 void set children(List<Element> value) { |
| 578 // Copy list first since we don't want liveness during iteration. | 594 // Copy list first since we don't want liveness during iteration. |
| 579 List copy = new List.from(value); | 595 List copy = new List.from(value); |
| 580 var children = this.children; | 596 var children = this.children; |
| 581 children.clear(); | 597 children.clear(); |
| 582 children.addAll(copy); | 598 children.addAll(copy); |
| 583 } | 599 } |
| 584 | 600 |
| 585 /** | 601 /** |
| 586 * Finds all descendent elements of this element that match the specified | 602 * Finds all descendent elements of this element that match the specified |
| 587 * group of selectors. | 603 * group of selectors. |
| 588 * | 604 * |
| 589 * [selectors] should be a string using CSS selector syntax. | 605 * [selectors] should be a string using CSS selector syntax. |
| 590 * | 606 * |
| 591 * var items = element.querySelectorAll('.itemClassName'); | 607 * var items = element.querySelectorAll('.itemClassName'); |
| 592 * | 608 * |
| 593 * For details about CSS selector syntax, see the | 609 * For details about CSS selector syntax, see the |
| 594 * [CSS selector specification](http://www.w3.org/TR/css3-selectors/). | 610 * [CSS selector specification](http://www.w3.org/TR/css3-selectors/). |
| 595 */ | 611 */ |
| 596 @DomName('Element.querySelectorAll') | 612 @DomName('Element.querySelectorAll') |
| 597 ElementList<Element> querySelectorAll(String selectors) => | 613 ElementList<Element> querySelectorAll(String selectors) => |
| 614 $if JSINTEROP |
| 615 _querySelectorAll(selectors); |
| 616 $else |
| 598 new _FrozenElementList._wrap(_querySelectorAll(selectors)); | 617 new _FrozenElementList._wrap(_querySelectorAll(selectors)); |
| 618 $endif |
| 599 | 619 |
| 600 /** | 620 /** |
| 601 * Alias for [querySelector]. Note this function is deprecated because its | 621 * Alias for [querySelector]. Note this function is deprecated because its |
| 602 * semantics will be changing in the future. | 622 * semantics will be changing in the future. |
| 603 */ | 623 */ |
| 604 @deprecated | 624 @deprecated |
| 605 @DomName('Element.querySelector') | 625 @DomName('Element.querySelector') |
| 606 @Experimental() | 626 @Experimental() |
| 607 Element query(String relativeSelectors) => querySelector(relativeSelectors); | 627 Element query(String relativeSelectors) => querySelector(relativeSelectors); |
| 608 | 628 |
| (...skipping 871 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1480 @DocsEditable() | 1500 @DocsEditable() |
| 1481 void set scrollTop(int value) { | 1501 void set scrollTop(int value) { |
| 1482 JS("void", "#.scrollTop = #", this, value.round()); | 1502 JS("void", "#.scrollTop = #", this, value.round()); |
| 1483 } | 1503 } |
| 1484 | 1504 |
| 1485 @DomName('Element.scrollWidth') | 1505 @DomName('Element.scrollWidth') |
| 1486 @DocsEditable() | 1506 @DocsEditable() |
| 1487 int get scrollWidth => JS('num', '#.scrollWidth', this).round(); | 1507 int get scrollWidth => JS('num', '#.scrollWidth', this).round(); |
| 1488 | 1508 |
| 1489 $else | 1509 $else |
| 1510 $if JSINTEROP |
| 1490 @DomName('Element.offsetHeight') | 1511 @DomName('Element.offsetHeight') |
| 1491 @DocsEditable() | 1512 @DocsEditable() |
| 1492 int get offsetHeight => _blink.BlinkElement.offsetHeight_Getter(this).round(); | 1513 int get offsetHeight => _blink.BlinkElement.instance.offsetHeight_Getter_(unwr
ap_jso(this)).round(); |
| 1493 | 1514 |
| 1494 @DomName('Element.offsetLeft') | 1515 @DomName('Element.offsetLeft') |
| 1495 @DocsEditable() | 1516 @DocsEditable() |
| 1496 int get offsetLeft => _blink.BlinkElement.offsetLeft_Getter(this).round(); | 1517 int get offsetLeft => _blink.BlinkElement.instance.offsetLeft_Getter_(unwrap_j
so(this)).round(); |
| 1497 | 1518 |
| 1498 @DomName('Element.offsetTop') | 1519 @DomName('Element.offsetTop') |
| 1499 @DocsEditable() | 1520 @DocsEditable() |
| 1500 int get offsetTop => _blink.BlinkElement.offsetTop_Getter(this).round(); | 1521 int get offsetTop => _blink.BlinkElement.instance.offsetTop_Getter_(unwrap_jso
(this)).round(); |
| 1501 | 1522 |
| 1502 @DomName('Element.offsetWidth') | 1523 @DomName('Element.offsetWidth') |
| 1503 @DocsEditable() | 1524 @DocsEditable() |
| 1504 int get offsetWidth => _blink.BlinkElement.offsetWidth_Getter(this).round(); | 1525 int get offsetWidth => _blink.BlinkElement.instance.offsetWidth_Getter_(unwrap
_jso(this)).round(); |
| 1505 | 1526 |
| 1506 @DomName('Element.clientHeight') | 1527 @DomName('Element.clientHeight') |
| 1507 @DocsEditable() | 1528 @DocsEditable() |
| 1508 int get clientHeight => _blink.BlinkElement.clientHeight_Getter(this).round(); | 1529 int get clientHeight => _blink.BlinkElement.instance.clientHeight_Getter_(unwr
ap_jso(this)).round(); |
| 1509 | 1530 |
| 1510 @DomName('Element.clientLeft') | 1531 @DomName('Element.clientLeft') |
| 1511 @DocsEditable() | 1532 @DocsEditable() |
| 1512 int get clientLeft => _blink.BlinkElement.clientLeft_Getter(this).round(); | 1533 int get clientLeft => _blink.BlinkElement.instance.clientLeft_Getter_(unwrap_j
so(this)).round(); |
| 1513 | 1534 |
| 1514 @DomName('Element.clientTop') | 1535 @DomName('Element.clientTop') |
| 1515 @DocsEditable() | 1536 @DocsEditable() |
| 1516 int get clientTop => _blink.BlinkElement.clientTop_Getter(this).round(); | 1537 int get clientTop => _blink.BlinkElement.instance.clientTop_Getter_(unwrap_jso
(this)).round(); |
| 1517 | 1538 |
| 1518 @DomName('Element.clientWidth') | 1539 @DomName('Element.clientWidth') |
| 1519 @DocsEditable() | 1540 @DocsEditable() |
| 1520 int get clientWidth => _blink.BlinkElement.clientWidth_Getter(this).round(); | 1541 int get clientWidth => _blink.BlinkElement.instance.clientWidth_Getter_(unwrap
_jso(this)).round(); |
| 1521 | 1542 |
| 1522 @DomName('Element.scrollHeight') | 1543 @DomName('Element.scrollHeight') |
| 1523 @DocsEditable() | 1544 @DocsEditable() |
| 1524 int get scrollHeight => _blink.BlinkElement.scrollHeight_Getter(this).round(); | 1545 int get scrollHeight => _blink.BlinkElement.instance.scrollHeight_Getter_(unwr
ap_jso(this)).round(); |
| 1525 | 1546 |
| 1526 @DomName('Element.scrollLeft') | 1547 @DomName('Element.scrollLeft') |
| 1527 @DocsEditable() | 1548 @DocsEditable() |
| 1528 int get scrollLeft => _blink.BlinkElement.scrollLeft_Getter(this).round(); | 1549 int get scrollLeft => _blink.BlinkElement.instance.scrollLeft_Getter_(unwrap_j
so(this)).round(); |
| 1529 | 1550 |
| 1530 @DomName('Element.scrollLeft') | 1551 @DomName('Element.scrollLeft') |
| 1531 @DocsEditable() | 1552 @DocsEditable() |
| 1532 void set scrollLeft(int value) => _blink.BlinkElement.scrollLeft_Setter(this,
value.round()); | 1553 void set scrollLeft(int value) => _blink.BlinkElement.instance.scrollLeft_Sett
er_(unwrap_jso(this), value.round()); |
| 1533 | 1554 |
| 1534 @DomName('Element.scrollTop') | 1555 @DomName('Element.scrollTop') |
| 1535 @DocsEditable() | 1556 @DocsEditable() |
| 1536 int get scrollTop => _blink.BlinkElement.scrollTop_Getter(this).round(); | 1557 int get scrollTop => _blink.BlinkElement.instance.scrollTop_Getter_(unwrap_jso
(this)).round(); |
| 1537 | 1558 |
| 1538 @DomName('Element.scrollTop') | 1559 @DomName('Element.scrollTop') |
| 1539 @DocsEditable() | 1560 @DocsEditable() |
| 1540 void set scrollTop(int value) => _blink.BlinkElement.scrollTop_Setter(this, va
lue.round()); | 1561 void set scrollTop(int value) => _blink.BlinkElement.instance.scrollTop_Setter
_(unwrap_jso(this), value.round()); |
| 1541 | 1562 |
| 1542 @DomName('Element.scrollWidth') | 1563 @DomName('Element.scrollWidth') |
| 1543 @DocsEditable() | 1564 @DocsEditable() |
| 1544 int get scrollWidth => _blink.BlinkElement.scrollWidth_Getter(this).round(); | 1565 int get scrollWidth => _blink.BlinkElement.instance.scrollWidth_Getter_(unwrap
_jso(this)).round(); |
| 1566 $else |
| 1567 @DomName('Element.offsetHeight') |
| 1568 @DocsEditable() |
| 1569 int get offsetHeight => _blink.BlinkElement.offsetHeight_Getter_(this).round()
; |
| 1570 |
| 1571 @DomName('Element.offsetLeft') |
| 1572 @DocsEditable() |
| 1573 int get offsetLeft => _blink.BlinkElement.offsetLeft_Getter_(this).round(); |
| 1574 |
| 1575 @DomName('Element.offsetTop') |
| 1576 @DocsEditable() |
| 1577 int get offsetTop => _blink.BlinkElement.offsetTop_Getter_(thi)).round(); |
| 1578 |
| 1579 @DomName('Element.offsetWidth') |
| 1580 @DocsEditable() |
| 1581 int get offsetWidth => _blink.BlinkElement.offsetWidth_Getter_(this).round(); |
| 1582 |
| 1583 @DomName('Element.clientHeight') |
| 1584 @DocsEditable() |
| 1585 int get clientHeight => _blink.BlinkElement.clientHeight_Getter_(this).round()
; |
| 1586 |
| 1587 @DomName('Element.clientLeft') |
| 1588 @DocsEditable() |
| 1589 int get clientLeft => _blink.BlinkElement.clientLeft_Getter_(this).round(); |
| 1590 |
| 1591 @DomName('Element.clientTop') |
| 1592 @DocsEditable() |
| 1593 int get clientTop => _blink.BlinkElement.clientTop_Getter_(this).round(); |
| 1594 |
| 1595 @DomName('Element.clientWidth') |
| 1596 @DocsEditable() |
| 1597 int get clientWidth => _blink.BlinkElement.clientWidth_Getter_(this).round(); |
| 1598 |
| 1599 @DomName('Element.scrollHeight') |
| 1600 @DocsEditable() |
| 1601 int get scrollHeight => _blink.BlinkElement.scrollHeight_Getter_(this).round()
; |
| 1602 |
| 1603 @DomName('Element.scrollLeft') |
| 1604 @DocsEditable() |
| 1605 int get scrollLeft => _blink.BlinkElement.scrollLeft_Getter_(this).round(); |
| 1606 |
| 1607 @DomName('Element.scrollLeft') |
| 1608 @DocsEditable() |
| 1609 void set scrollLeft(int value) => _blink.BlinkElement.scrollLeft_Setter_(this,
value.round()); |
| 1610 |
| 1611 @DomName('Element.scrollTop') |
| 1612 @DocsEditable() |
| 1613 int get scrollTop => _blink.BlinkElement.scrollTop_Getter_(this).round(); |
| 1614 |
| 1615 @DomName('Element.scrollTop') |
| 1616 @DocsEditable() |
| 1617 void set scrollTop(int value) => _blink.BlinkElement.scrollTop_Setter_(this, v
alue.round()); |
| 1618 |
| 1619 @DomName('Element.scrollWidth') |
| 1620 @DocsEditable() |
| 1621 int get scrollWidth => _blink.BlinkElement.scrollWidth_Getter_(this).round(); |
| 1622 $endif |
| 1545 $endif | 1623 $endif |
| 1546 | 1624 |
| 1547 $!MEMBERS | 1625 $!MEMBERS |
| 1548 } | 1626 } |
| 1549 | 1627 |
| 1550 | 1628 |
| 1551 class _ElementFactoryProvider { | 1629 class _ElementFactoryProvider { |
| 1552 | 1630 |
| 1553 @DomName('Document.createElement') | 1631 @DomName('Document.createElement') |
| 1554 $if DART2JS | 1632 $if DART2JS |
| (...skipping 27 matching lines...) Expand all Loading... |
| 1582 const ScrollAlignment._internal(this._value); | 1660 const ScrollAlignment._internal(this._value); |
| 1583 toString() => 'ScrollAlignment.$_value'; | 1661 toString() => 'ScrollAlignment.$_value'; |
| 1584 | 1662 |
| 1585 /// Attempt to align the element to the top of the scrollable area. | 1663 /// Attempt to align the element to the top of the scrollable area. |
| 1586 static const TOP = const ScrollAlignment._internal('TOP'); | 1664 static const TOP = const ScrollAlignment._internal('TOP'); |
| 1587 /// Attempt to center the element in the scrollable area. | 1665 /// Attempt to center the element in the scrollable area. |
| 1588 static const CENTER = const ScrollAlignment._internal('CENTER'); | 1666 static const CENTER = const ScrollAlignment._internal('CENTER'); |
| 1589 /// Attempt to align the element to the bottom of the scrollable area. | 1667 /// Attempt to align the element to the bottom of the scrollable area. |
| 1590 static const BOTTOM = const ScrollAlignment._internal('BOTTOM'); | 1668 static const BOTTOM = const ScrollAlignment._internal('BOTTOM'); |
| 1591 } | 1669 } |
| OLD | NEW |