OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
4 * (C) 2001 Dirk Mueller (mueller@kde.org) | 4 * (C) 2001 Dirk Mueller (mueller@kde.org) |
5 * Copyright (C) 2004, 2005, 2006, 2010 Apple Inc. All rights reserved. | 5 * Copyright (C) 2004, 2005, 2006, 2010 Apple Inc. All rights reserved. |
6 * (C) 2006 Alexey Proskuryakov (ap@nypop.com) | 6 * (C) 2006 Alexey Proskuryakov (ap@nypop.com) |
7 * | 7 * |
8 * This library is free software; you can redistribute it and/or | 8 * This library is free software; you can redistribute it and/or |
9 * modify it under the terms of the GNU Library General Public | 9 * modify it under the terms of the GNU Library General Public |
10 * License as published by the Free Software Foundation; either | 10 * License as published by the Free Software Foundation; either |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
42 HTMLFormElement* form) | 42 HTMLFormElement* form) |
43 : HTMLFormControlElement(fieldsetTag, document, form), | 43 : HTMLFormControlElement(fieldsetTag, document, form), |
44 m_documentVersion(0) {} | 44 m_documentVersion(0) {} |
45 | 45 |
46 HTMLFieldSetElement* HTMLFieldSetElement::create(Document& document, | 46 HTMLFieldSetElement* HTMLFieldSetElement::create(Document& document, |
47 HTMLFormElement* form) { | 47 HTMLFormElement* form) { |
48 return new HTMLFieldSetElement(document, form); | 48 return new HTMLFieldSetElement(document, form); |
49 } | 49 } |
50 | 50 |
51 DEFINE_TRACE(HTMLFieldSetElement) { | 51 DEFINE_TRACE(HTMLFieldSetElement) { |
52 visitor->trace(m_associatedElements); | 52 visitor->trace(m_listedElements); |
53 HTMLFormControlElement::trace(visitor); | 53 HTMLFormControlElement::trace(visitor); |
54 } | 54 } |
55 | 55 |
56 bool HTMLFieldSetElement::matchesValidityPseudoClasses() const { | 56 bool HTMLFieldSetElement::matchesValidityPseudoClasses() const { |
57 return true; | 57 return true; |
58 } | 58 } |
59 | 59 |
60 bool HTMLFieldSetElement::isValidElement() { | 60 bool HTMLFieldSetElement::isValidElement() { |
61 const FormAssociatedElement::List& elements = associatedElements(); | 61 const ListedElement::List& elements = listedElements(); |
62 for (unsigned i = 0; i < elements.size(); ++i) { | 62 for (unsigned i = 0; i < elements.size(); ++i) { |
63 if (elements[i]->isFormControlElement()) { | 63 if (elements[i]->isFormControlElement()) { |
64 HTMLFormControlElement* control = | 64 HTMLFormControlElement* control = |
65 toHTMLFormControlElement(elements[i].get()); | 65 toHTMLFormControlElement(elements[i].get()); |
66 if (!control->checkValidity(0, CheckValidityDispatchNoEvent)) | 66 if (!control->checkValidity(0, CheckValidityDispatchNoEvent)) |
67 return false; | 67 return false; |
68 } | 68 } |
69 } | 69 } |
70 return true; | 70 return true; |
71 } | 71 } |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
115 return ensureCachedCollection<HTMLCollection>(FormControls); | 115 return ensureCachedCollection<HTMLCollection>(FormControls); |
116 } | 116 } |
117 | 117 |
118 void HTMLFieldSetElement::refreshElementsIfNeeded() const { | 118 void HTMLFieldSetElement::refreshElementsIfNeeded() const { |
119 uint64_t docVersion = document().domTreeVersion(); | 119 uint64_t docVersion = document().domTreeVersion(); |
120 if (m_documentVersion == docVersion) | 120 if (m_documentVersion == docVersion) |
121 return; | 121 return; |
122 | 122 |
123 m_documentVersion = docVersion; | 123 m_documentVersion = docVersion; |
124 | 124 |
125 m_associatedElements.clear(); | 125 m_listedElements.clear(); |
126 | 126 |
127 for (HTMLElement& element : Traversal<HTMLElement>::descendantsOf(*this)) { | 127 for (HTMLElement& element : Traversal<HTMLElement>::descendantsOf(*this)) { |
128 if (isHTMLObjectElement(element)) { | 128 if (isHTMLObjectElement(element)) { |
129 m_associatedElements.append(toHTMLObjectElement(&element)); | 129 m_listedElements.append(toHTMLObjectElement(&element)); |
130 continue; | 130 continue; |
131 } | 131 } |
132 | 132 |
133 if (!element.isFormControlElement()) | 133 if (!element.isFormControlElement()) |
134 continue; | 134 continue; |
135 | 135 |
136 m_associatedElements.append(toHTMLFormControlElement(&element)); | 136 m_listedElements.append(toHTMLFormControlElement(&element)); |
137 } | 137 } |
138 } | 138 } |
139 | 139 |
140 const FormAssociatedElement::List& HTMLFieldSetElement::associatedElements() | 140 const ListedElement::List& HTMLFieldSetElement::listedElements() const { |
141 const { | |
142 refreshElementsIfNeeded(); | 141 refreshElementsIfNeeded(); |
143 return m_associatedElements; | 142 return m_listedElements; |
144 } | 143 } |
145 | 144 |
146 int HTMLFieldSetElement::tabIndex() const { | 145 int HTMLFieldSetElement::tabIndex() const { |
147 return HTMLElement::tabIndex(); | 146 return HTMLElement::tabIndex(); |
148 } | 147 } |
149 | 148 |
150 } // namespace blink | 149 } // namespace blink |
OLD | NEW |