diff options
Diffstat (limited to 'vendor/oojs/oojs-ui/src/widgets/ItemWidget.js')
-rw-r--r-- | vendor/oojs/oojs-ui/src/widgets/ItemWidget.js | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/vendor/oojs/oojs-ui/src/widgets/ItemWidget.js b/vendor/oojs/oojs-ui/src/widgets/ItemWidget.js new file mode 100644 index 00000000..292514f4 --- /dev/null +++ b/vendor/oojs/oojs-ui/src/widgets/ItemWidget.js @@ -0,0 +1,48 @@ +/** + * Mixin for widgets used as items in widgets that inherit OO.ui.GroupWidget. + * + * Item widgets have a reference to a OO.ui.GroupWidget while they are attached to the group. This + * allows bidirectional communication. + * + * Use together with OO.ui.GroupWidget to make disabled state inheritable. + * + * @private + * @abstract + * @class + * + * @constructor + */ +OO.ui.ItemWidget = function OoUiItemWidget() { + // +}; + +/* Methods */ + +/** + * Check if widget is disabled. + * + * Checks parent if present, making disabled state inheritable. + * + * @return {boolean} Widget is disabled + */ +OO.ui.ItemWidget.prototype.isDisabled = function () { + return this.disabled || + ( this.elementGroup instanceof OO.ui.Widget && this.elementGroup.isDisabled() ); +}; + +/** + * Set group element is in. + * + * @param {OO.ui.GroupElement|null} group Group element, null if none + * @chainable + */ +OO.ui.ItemWidget.prototype.setElementGroup = function ( group ) { + // Parent method + // Note: Calling #setElementGroup this way assumes this is mixed into an OO.ui.Element + OO.ui.Element.prototype.setElementGroup.call( this, group ); + + // Initialize item disabled states + this.updateDisabled(); + + return this; +}; |