Add getter/setter for collapsed & collapsible

This commit is contained in:
Antoine Abt
2014-06-23 12:11:34 +02:00
parent 6744713a54
commit 4f087f1b84

View File

@@ -53,9 +53,17 @@ ol.control.Attribution = function(opt_options) {
*/
this.collapsed_ = goog.isDef(options.collapsed) ? options.collapsed : true;
var collapsible = goog.isDef(options.collapsible) ?
/**
* @private
* @type {boolean}
*/
this.collapsible_ = goog.isDef(options.collapsible) ?
options.collapsible : true;
if (!this.collapsible_) {
this.collapsed_ = false;
}
var className = goog.isDef(options.className) ?
options.className : 'ol-attribution';
@@ -78,7 +86,7 @@ ol.control.Attribution = function(opt_options) {
*/
this.label_ = goog.isDef(options.label) ? options.label : 'i';
var label = goog.dom.createDom(goog.dom.TagName.SPAN, {},
(collapsible && !this.collapsed_) ?
(this.collapsible_ && !this.collapsed_) ?
this.collapseLabel_ : this.label_);
@@ -109,8 +117,8 @@ ol.control.Attribution = function(opt_options) {
var element = goog.dom.createDom(goog.dom.TagName.DIV, {
'class': className + ' ' + ol.css.CLASS_UNSELECTABLE + ' ' +
ol.css.CLASS_CONTROL +
(this.collapsed_ && collapsible ? ' ol-collapsed' : '') +
(collapsible ? '' : ' ol-uncollapsible')
(this.collapsed_ && this.collapsible_ ? ' ol-collapsed' : '') +
(this.collapsible_ ? '' : ' ol-uncollapsible')
}, this.ulElement_, button);
goog.base(this, {
@@ -344,3 +352,49 @@ ol.control.Attribution.prototype.handleToggle_ = function() {
(this.collapsed_) ? this.collapseLabel_ : this.label_);
this.collapsed_ = !this.collapsed_;
};
/**
* @return {boolean} True is the widget is collapsible.
* @todo api
*/
ol.control.Attribution.prototype.getCollapsible = function() {
return this.collapsible_;
};
/**
* @param {boolean} collapsible True is the widget is collapsible.
* @todo api
*/
ol.control.Attribution.prototype.setCollapsible = function(collapsible) {
if (this.collapsible_ === collapsible) {
return;
}
this.collapsible_ = collapsible;
goog.dom.classes.toggle(this.element, 'ol-uncollapsible');
if (!collapsible && this.collapsed_) {
this.handleToggle_();
}
};
/**
* @param {boolean} collapsed True is the widget is collapsed.
* @todo api
*/
ol.control.Attribution.prototype.setCollapsed = function(collapsed) {
if (!this.collapsible_ || this.collapsed_ === collapsed) {
return;
}
this.handleToggle_();
};
/**
* @return {boolean} True is the widget is collapsed.
* @todo api
*/
ol.control.Attribution.prototype.getCollapsed = function() {
return this.collapsed_;
};