Update wmts-hidpi, add nicer-api-docs
This commit is contained in:
@@ -0,0 +1,197 @@
|
||||
// Copyright 2007 The Closure Library Authors. All Rights Reserved.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS-IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
/**
|
||||
* @fileoverview A simple, sample component.
|
||||
*
|
||||
*/
|
||||
goog.provide('goog.demos.SampleComponent');
|
||||
|
||||
goog.require('goog.dom');
|
||||
goog.require('goog.dom.classes');
|
||||
goog.require('goog.events.EventType');
|
||||
goog.require('goog.events.KeyCodes');
|
||||
goog.require('goog.events.KeyHandler');
|
||||
goog.require('goog.ui.Component');
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* A simple box that changes colour when clicked. This class demonstrates the
|
||||
* goog.ui.Component API, and is keyboard accessible, as per
|
||||
* http://wiki/Main/ClosureKeyboardAccessible
|
||||
*
|
||||
* @param {string=} opt_label A label to display. Defaults to "Click Me" if none
|
||||
* provided.
|
||||
* @param {goog.dom.DomHelper=} opt_domHelper DOM helper to use.
|
||||
*
|
||||
* @extends {goog.ui.Component}
|
||||
* @constructor
|
||||
*/
|
||||
goog.demos.SampleComponent = function(opt_label, opt_domHelper) {
|
||||
goog.base(this, opt_domHelper);
|
||||
|
||||
/**
|
||||
* The label to display.
|
||||
* @type {string}
|
||||
* @private
|
||||
*/
|
||||
this.initialLabel_ = opt_label || 'Click Me';
|
||||
|
||||
/**
|
||||
* The current color.
|
||||
* @type {string}
|
||||
* @private
|
||||
*/
|
||||
this.color_ = 'red';
|
||||
|
||||
/**
|
||||
* Keyboard handler for this object. This object is created once the
|
||||
* component's DOM element is known.
|
||||
*
|
||||
* @type {goog.events.KeyHandler?}
|
||||
* @private
|
||||
*/
|
||||
this.kh_ = null;
|
||||
};
|
||||
goog.inherits(goog.demos.SampleComponent, goog.ui.Component);
|
||||
|
||||
|
||||
/**
|
||||
* Changes the color of the element.
|
||||
* @private
|
||||
*/
|
||||
goog.demos.SampleComponent.prototype.changeColor_ = function() {
|
||||
if (this.color_ == 'red') {
|
||||
this.color_ = 'green';
|
||||
} else if (this.color_ == 'green') {
|
||||
this.color_ = 'blue';
|
||||
} else {
|
||||
this.color_ = 'red';
|
||||
}
|
||||
this.getElement().style.backgroundColor = this.color_;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Creates an initial DOM representation for the component.
|
||||
* @override
|
||||
*/
|
||||
goog.demos.SampleComponent.prototype.createDom = function() {
|
||||
this.decorateInternal(this.dom_.createElement('div'));
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Decorates an existing HTML DIV element as a SampleComponent.
|
||||
*
|
||||
* @param {Element} element The DIV element to decorate. The element's
|
||||
* text, if any will be used as the component's label.
|
||||
* @override
|
||||
*/
|
||||
goog.demos.SampleComponent.prototype.decorateInternal = function(element) {
|
||||
goog.base(this, 'decorateInternal', element);
|
||||
if (!this.getLabelText()) {
|
||||
this.setLabelText(this.initialLabel_);
|
||||
}
|
||||
|
||||
var elem = this.getElement();
|
||||
goog.dom.classes.add(elem, goog.getCssName('goog-sample-component'));
|
||||
elem.style.backgroundColor = this.color_;
|
||||
elem.tabIndex = 0;
|
||||
|
||||
this.kh_ = new goog.events.KeyHandler(elem);
|
||||
this.getHandler().listen(this.kh_, goog.events.KeyHandler.EventType.KEY,
|
||||
this.onKey_);
|
||||
};
|
||||
|
||||
|
||||
/** @override */
|
||||
goog.demos.SampleComponent.prototype.disposeInternal = function() {
|
||||
goog.base(this, 'disposeInternal');
|
||||
if (this.kh_) {
|
||||
this.kh_.dispose();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Called when component's element is known to be in the document.
|
||||
* @override
|
||||
*/
|
||||
goog.demos.SampleComponent.prototype.enterDocument = function() {
|
||||
goog.base(this, 'enterDocument');
|
||||
this.getHandler().listen(this.getElement(), goog.events.EventType.CLICK,
|
||||
this.onDivClicked_);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Called when component's element is known to have been removed from the
|
||||
* document.
|
||||
* @override
|
||||
*/
|
||||
goog.demos.SampleComponent.prototype.exitDocument = function() {
|
||||
goog.base(this, 'exitDocument');
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Gets the current label text.
|
||||
*
|
||||
* @return {string} The current text set into the label, or empty string if
|
||||
* none set.
|
||||
*/
|
||||
goog.demos.SampleComponent.prototype.getLabelText = function() {
|
||||
if (!this.getElement()) {
|
||||
return '';
|
||||
}
|
||||
return goog.dom.getTextContent(this.getElement());
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Handles DIV element clicks, causing the DIV's colour to change.
|
||||
* @param {goog.events.Event} event The click event.
|
||||
* @private
|
||||
*/
|
||||
goog.demos.SampleComponent.prototype.onDivClicked_ = function(event) {
|
||||
this.changeColor_();
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Fired when user presses a key while the DIV has focus. If the user presses
|
||||
* space or enter, the color will be changed.
|
||||
* @param {goog.events.Event} event The key event.
|
||||
* @private
|
||||
*/
|
||||
goog.demos.SampleComponent.prototype.onKey_ = function(event) {
|
||||
var keyCodes = goog.events.KeyCodes;
|
||||
if (event.keyCode == keyCodes.SPACE || event.keyCode == keyCodes.ENTER) {
|
||||
this.changeColor_();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Sets the current label text. Has no effect if component is not rendered.
|
||||
*
|
||||
* @param {string} text The text to set as the label.
|
||||
*/
|
||||
goog.demos.SampleComponent.prototype.setLabelText = function(text) {
|
||||
if (this.getElement()) {
|
||||
goog.dom.setTextContent(this.getElement(), text);
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user