diff options
Diffstat (limited to 'vendor/oojs/oojs-ui/src/widgets/GroupWidget.js')
-rw-r--r-- | vendor/oojs/oojs-ui/src/widgets/GroupWidget.js | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/vendor/oojs/oojs-ui/src/widgets/GroupWidget.js b/vendor/oojs/oojs-ui/src/widgets/GroupWidget.js new file mode 100644 index 00000000..7d9be905 --- /dev/null +++ b/vendor/oojs/oojs-ui/src/widgets/GroupWidget.js @@ -0,0 +1,48 @@ +/** + * Mixin for OO.ui.Widget subclasses to provide OO.ui.GroupElement. + * + * Use together with OO.ui.ItemWidget to make disabled state inheritable. + * + * @private + * @abstract + * @class + * @extends OO.ui.GroupElement + * + * @constructor + * @param {Object} [config] Configuration options + */ +OO.ui.GroupWidget = function OoUiGroupWidget( config ) { + // Parent constructor + OO.ui.GroupWidget.super.call( this, config ); +}; + +/* Setup */ + +OO.inheritClass( OO.ui.GroupWidget, OO.ui.GroupElement ); + +/* Methods */ + +/** + * Set the disabled state of the widget. + * + * This will also update the disabled state of child widgets. + * + * @param {boolean} disabled Disable widget + * @chainable + */ +OO.ui.GroupWidget.prototype.setDisabled = function ( disabled ) { + var i, len; + + // Parent method + // Note: Calling #setDisabled this way assumes this is mixed into an OO.ui.Widget + OO.ui.Widget.prototype.setDisabled.call( this, disabled ); + + // During construction, #setDisabled is called before the OO.ui.GroupElement constructor + if ( this.items ) { + for ( i = 0, len = this.items.length; i < len; i++ ) { + this.items[ i ].updateDisabled(); + } + } + + return this; +}; |