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

Unified Diff: third_party/google_input_tools/third_party/closure_library/closure/goog/ui/component.js

Issue 1257313003: Update Google Input Tools (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Free up grd resources. Created 5 years, 5 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 side-by-side diff with in-line comments
Download patch
Index: third_party/google_input_tools/third_party/closure_library/closure/goog/ui/component.js
diff --git a/third_party/google_input_tools/third_party/closure_library/closure/goog/ui/component.js b/third_party/google_input_tools/third_party/closure_library/closure/goog/ui/component.js
index fd8656b6e98048deaadda8ce6fdce68ab82b7e1a..4256fb56c8b59c55f1eac010a7bf359a511be301 100644
--- a/third_party/google_input_tools/third_party/closure_library/closure/goog/ui/component.js
+++ b/third_party/google_input_tools/third_party/closure_library/closure/goog/ui/component.js
@@ -16,6 +16,7 @@
* @fileoverview Abstract class for all UI components. This defines the standard
* design pattern that all UI components should follow.
*
+ * @author attila@google.com (Attila Bodis)
* @see ../demos/samplecomponent.html
* @see http://code.google.com/p/closure-library/wiki/IntroToComponents
*/
@@ -29,6 +30,7 @@ goog.require('goog.array');
goog.require('goog.asserts');
goog.require('goog.dom');
goog.require('goog.dom.NodeType');
+goog.require('goog.dom.TagName');
goog.require('goog.events.EventHandler');
goog.require('goog.events.EventTarget');
goog.require('goog.object');
@@ -109,7 +111,7 @@ goog.ui.Component = function(opt_domHelper) {
* Array of child components. Lazily initialized on first use. Must be kept
* in sync with {@code childIndex_}. This property is strictly private and
* must not be accessed directly outside of this class!
- * @private {Array.<goog.ui.Component>?}
+ * @private {Array<goog.ui.Component>?}
*/
this.children_ = null;
@@ -542,16 +544,19 @@ goog.ui.Component.prototype.getRequiredElementByClass = function(className) {
/**
* Returns the event handler for this component, lazily created the first time
* this method is called.
- * @return {!goog.events.EventHandler.<T>} Event handler for this component.
+ * @return {!goog.events.EventHandler<T>} Event handler for this component.
* @protected
- * @this T
+ * @this {T}
* @template T
*/
goog.ui.Component.prototype.getHandler = function() {
- if (!this.googUiComponentHandler_) {
- this.googUiComponentHandler_ = new goog.events.EventHandler(this);
+ // TODO(user): templated "this" values currently result in "this" being
+ // "unknown" in the body of the function.
+ var self = /** @type {goog.ui.Component} */ (this);
+ if (!self.googUiComponentHandler_) {
+ self.googUiComponentHandler_ = new goog.events.EventHandler(self);
}
- return this.googUiComponentHandler_;
+ return self.googUiComponentHandler_;
};
@@ -628,7 +633,7 @@ goog.ui.Component.prototype.isInDocument = function() {
* implementation is to set this.element_ = div.
*/
goog.ui.Component.prototype.createDom = function() {
- this.element_ = this.dom_.createElement('div');
+ this.element_ = this.dom_.createElement(goog.dom.TagName.DIV);
};
@@ -1037,11 +1042,13 @@ goog.ui.Component.prototype.addChildAt = function(child, index, opt_render) {
goog.array.insertAt(this.children_, child, index);
if (child.inDocument_ && this.inDocument_ && child.getParent() == this) {
- // Changing the position of an existing child, move the DOM node.
+ // Changing the position of an existing child, move the DOM node (if
+ // necessary).
var contentElement = this.getContentElement();
- contentElement.insertBefore(child.getElement(),
- (contentElement.childNodes[index] || null));
-
+ var insertBeforeElement = contentElement.childNodes[index] || null;
+ if (insertBeforeElement != child.getElement()) {
+ contentElement.insertBefore(child.getElement(), insertBeforeElement);
+ }
} else if (opt_render) {
// If this (parent) component doesn't have a DOM yet, call createDom now
// to make sure we render the child component's element into the correct
@@ -1096,7 +1103,7 @@ goog.ui.Component.prototype.isRightToLeft = function() {
this.rightToLeft_ = goog.style.isRightToLeft(this.inDocument_ ?
this.element_ : this.dom_.getDocument().body);
}
- return /** @type {boolean} */(this.rightToLeft_);
+ return this.rightToLeft_;
};
@@ -1136,7 +1143,7 @@ goog.ui.Component.prototype.getChildCount = function() {
/**
* Returns an array containing the IDs of the children of this component, or an
* empty array if the component has no children.
- * @return {!Array.<string>} Child component IDs.
+ * @return {!Array<string>} Child component IDs.
*/
goog.ui.Component.prototype.getChildIds = function() {
var ids = [];
@@ -1252,7 +1259,7 @@ goog.ui.Component.prototype.removeChild = function(child, opt_unrender) {
throw Error(goog.ui.Component.Error.NOT_OUR_CHILD);
}
- return /** @type {goog.ui.Component} */(child);
+ return /** @type {!goog.ui.Component} */(child);
};
@@ -1280,7 +1287,7 @@ goog.ui.Component.prototype.removeChildAt = function(index, opt_unrender) {
* @see goog.ui.Component#removeChild
* @param {boolean=} opt_unrender If true, calls {@link #exitDocument} on the
* removed child components, and detaches their DOM from the document.
- * @return {!Array.<goog.ui.Component>} The removed components if any.
+ * @return {!Array<goog.ui.Component>} The removed components if any.
*/
goog.ui.Component.prototype.removeChildren = function(opt_unrender) {
var removedChildren = [];

Powered by Google App Engine
This is Rietveld 408576698