Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(294)

Side by Side Diff: client/html/src/XMLDocumentWrappingImplementation.dart

Issue 9474030: Revert "Add some sweet XML classes." (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « client/html/src/XMLDocument.dart ('k') | client/html/src/XMLElement.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
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
3 // BSD-style license that can be found in the LICENSE file.
4
5 class XMLDocumentWrappingImplementation extends DocumentWrappingImplementation
6 implements XMLDocument {
7 // This really just wants to extend both DocumentWrappingImplementation and
8 // XMLElementWrappingImplementation, but since that's not possible we delegate
9 // to the latter.
10 XMLElement documentEl;
11
12 XMLDocumentWrappingImplementation._wrap(documentPtr, ptr) :
13 super._wrap(documentPtr, ptr) {
14 // We want to wrap the pointer in an XMLElement to use its implementation of
15 // various Element methods, but DOMWrapperBase complains if
16 // dartObjectLocalStorage is already set.
17 ptr.dartObjectLocalStorage = null;
18 this.documentEl = new XMLElementWrappingImplementation._wrap(ptr);
19 ptr.dartObjectLocalStorage = this;
20 }
21
22 factory XMLDocumentWrappingImplementation.xml(String xml) {
23 final parser = new dom.DOMParser();
24 final xmlDoc = LevelDom.wrapDocument(
25 parser.parseFromString(xml, 'text/xml'));
26 // When XML parsing fails, the browser creates a document containing a
27 // PARSERERROR element. We want to throw an exception when parsing fails,
28 // but we don't want false positives if the user intends to create a
29 // PARSERERROR element for some reason, so we check for that in the input.
30 //
31 // TODO(nweiz): This is pretty hacky, it would be nice to this some other
32 // way if we can find one.
33 if (!xml.toLowerCase().contains('<parsererror') &&
34 xmlDoc.query('parsererror') != null) {
35 throw new IllegalArgumentException('Error parsing XML: "$xml"');
36 }
37 return xmlDoc;
38 }
39
40 Node get parent() => null;
41
42 Node _insertAdjacentNode(String where, Node node) {
43 switch (where.toLowerCase()) {
44 case "beforebegin":
45 return null;
46 case "afterend":
47 return null;
48 case "afterbegin":
49 this.insertBefore(node, nodes.first);
50 return node;
51 case "beforeend":
52 this.nodes.add(node);
53 return node;
54 default:
55 throw new IllegalArgumentException("Invalid position ${where}");
56 }
57 }
58
59 XMLElement insertAdjacentElement([String where = null,
60 XMLElement element = null]) => this._insertAdjacentNode(where, element);
61
62 void insertAdjacentText([String where = null, String text = null]) {
63 this._insertAdjacentNode(where, new Text(text));
64 }
65
66 void insertAdjacentHTML(
67 [String position_OR_where = null, String text = null]) {
68 this._insertAdjacentNode(
69 position_OR_where, new DocumentFragment.xml(text));
70 }
71
72 XMLElement get activeElement() => null;
73
74 void set body(Element value) {
75 throw new UnsupportedOperationException("XML documents don't have a body.");
76 }
77
78 String get cookie() {
79 throw new UnsupportedOperationException(
80 "XML documents don't support cookies.");
81 }
82
83 void set cookie(String value) {
84 throw new UnsupportedOperationException(
85 "XML documents don't support cookies.");
86 }
87
88 String get manifest() => "";
89
90 void set manifest(String value) {
91 throw new UnsupportedOperationException(
92 "Manifest can't be set for XML documents.");
93 }
94
95 Set<String> get classes() => documentEl.classes;
96
97 ElementList get elements() => documentEl.elements;
98
99 // TODO: The type of value should be Collection<Element>. See http://b/5392897
100 void set elements(value) { documentEl.elements = value; }
101
102 String get outerHTML() => documentEl.outerHTML;
103
104 String get innerHTML() => documentEl.innerHTML;
105
106 void set innerHTML(String xml) { documentEl.innerHTML = xml; }
107
108 String get contentEditable() => documentEl.contentEditable;
109
110 void set contentEditable(String value) { documentEl.contentEditable = value; }
111
112 bool get isContentEditable() => documentEl.isContentEditable;
113
114 bool get draggable() => documentEl.draggable;
115
116 void set draggable(bool value) { documentEl.draggable = value; }
117
118 bool get spellcheck() => documentEl.spellcheck;
119
120 void set spellcheck(bool value) { documentEl.spellcheck = value; }
121
122 bool get hidden() => documentEl.hidden;
123
124 void set hidden(bool value) { documentEl.hidden = value; }
125
126 int get tabIndex() => documentEl.tabIndex;
127
128 void set tabIndex(int value) { documentEl.tabIndex = value; }
129
130 String get id() => documentEl.id;
131
132 void set id(String value) { documentEl.id = value; }
133
134 String get title() => documentEl.title;
135
136 void set title(String value) { documentEl.title = value; }
137
138 String get webkitdropzone() => documentEl.webkitdropzone;
139
140 void set webkitdropzone(String value) { documentEl.webkitdropzone = value; }
141
142 String get lang() => documentEl.lang;
143
144 void set lang(String value) { documentEl.lang = value; }
145
146 String get dir() => documentEl.dir;
147
148 void set dir(String value) { documentEl.dir = value; }
149 }
OLDNEW
« no previous file with comments | « client/html/src/XMLDocument.dart ('k') | client/html/src/XMLElement.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698