| Index: site/try/src/selection.dart
|
| diff --git a/site/try/src/selection.dart b/site/try/src/selection.dart
|
| deleted file mode 100644
|
| index c0d606eb7d11ff4eb01d1c5e731a914b908cadb3..0000000000000000000000000000000000000000
|
| --- a/site/try/src/selection.dart
|
| +++ /dev/null
|
| @@ -1,103 +0,0 @@
|
| -// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
|
| -// for details. All rights reserved. Use of this source code is governed by a
|
| -// BSD-style license that can be found in the LICENSE file.
|
| -
|
| -library trydart.selection;
|
| -
|
| -import 'dart:html' show
|
| - CharacterData,
|
| - Element,
|
| - Node,
|
| - NodeFilter,
|
| - Selection,
|
| - Text,
|
| - TreeWalker;
|
| -
|
| -import 'shadow_root.dart' show
|
| - WALKER_NEXT,
|
| - WALKER_RETURN,
|
| - walkNodes;
|
| -
|
| -import 'decoration.dart';
|
| -
|
| -class TrySelection {
|
| - final Node root;
|
| - Node anchorNode;
|
| - int anchorOffset;
|
| -
|
| - String text;
|
| - int globalOffset = -1;
|
| -
|
| - TrySelection(this.root, Selection selection)
|
| - : anchorNode = isCollapsed(selection) ? selection.anchorNode : null,
|
| - anchorOffset = isCollapsed(selection) ? selection.anchorOffset : -1;
|
| -
|
| - TrySelection.empty(this.root)
|
| - : anchorNode = null,
|
| - anchorOffset = -1;
|
| -
|
| - Text addNodeFromSubstring(int start,
|
| - int end,
|
| - List<Node> nodes,
|
| - [Decoration decoration]) {
|
| - if (start == end) return null;
|
| -
|
| - Text textNode = new Text(text.substring(start, end));
|
| -
|
| - if (start <= globalOffset && globalOffset <= end) {
|
| - anchorNode = textNode;
|
| - anchorOffset = globalOffset - start;
|
| - }
|
| -
|
| - nodes.add(decoration == null ? textNode : decoration.applyTo(textNode));
|
| -
|
| - return textNode;
|
| - }
|
| -
|
| - void adjust(Selection selection) {
|
| - if (anchorOffset >= 0) {
|
| - selection.collapse(anchorNode, anchorOffset);
|
| - }
|
| - }
|
| -
|
| - void updateText(String newText) {
|
| - text = newText;
|
| - globalOffset = computeGlobalOffset(root, anchorNode, anchorOffset);
|
| - }
|
| -
|
| - TrySelection copyWithRoot(Node root) {
|
| - return new TrySelection.empty(root)
|
| - ..anchorNode = anchorNode
|
| - ..anchorOffset = anchorOffset;
|
| - }
|
| -
|
| - /// Computes the global offset, that is, the offset from [root].
|
| - static int computeGlobalOffset(Node root, Node anchorNode, int anchorOffset) {
|
| - if (anchorOffset == -1) return -1;
|
| -
|
| - int offset = 0;
|
| - bool found = false;
|
| - walkNodes(root, (Node node) {
|
| - if (anchorNode == node) {
|
| - offset += anchorOffset;
|
| - found = true;
|
| - return WALKER_RETURN;
|
| - }
|
| - switch (node.nodeType) {
|
| - case Node.CDATA_SECTION_NODE:
|
| - case Node.TEXT_NODE:
|
| - CharacterData text = node;
|
| - offset += text.data.length;
|
| - break;
|
| - }
|
| - return WALKER_NEXT;
|
| - });
|
| - return found ? offset : -1;
|
| - }
|
| -}
|
| -
|
| -bool isCollapsed(Selection selection) {
|
| - // Firefox and Chrome don't agree on if the selection is collapsed if there
|
| - // is no node selected.
|
| - return selection.isCollapsed && selection.anchorNode != null;
|
| -}
|
|
|