%PDF- %PDF-
Direktori : /www/varak.net/wiki.varak.net/extensions/VisualEditor/lib/ve/src/ui/ |
Current File : /www/varak.net/wiki.varak.net/extensions/VisualEditor/lib/ve/src/ui/ve.ui.NodeWindow.js |
/*! * VisualEditor user interface NodeWindow class. * * @copyright 2011-2016 VisualEditor Team and others; see http://ve.mit-license.org */ /** * Mixin for window for working with a node. * * @class * @abstract * * @constructor * @param {Object} [config] Configuration options */ ve.ui.NodeWindow = function VeUiNodeWindow() { // Properties this.selectedNode = null; }; /* Inheritance */ OO.initClass( ve.ui.NodeWindow ); /* Static Properties */ /** * Node classes compatible with this dialog. * * @static * @property {Function} * @inheritable */ ve.ui.NodeWindow.static.modelClasses = []; /* Methods */ /** * Get the selected node. * * Should only be called after setup and before teardown. * If no node is selected or the selected node is incompatible, null will be returned. * * @param {Object} [data] Window opening data * @return {ve.dm.Node|null} Selected node */ ve.ui.NodeWindow.prototype.getSelectedNode = function () { var i, len, modelClasses = this.constructor.static.modelClasses, selectedNode = this.getFragment().getSelectedNode(); for ( i = 0, len = modelClasses.length; i < len; i++ ) { if ( selectedNode instanceof modelClasses[ i ] ) { return selectedNode; } } return null; }; /** * @inheritdoc OO.ui.Window */ ve.ui.NodeWindow.prototype.getSetupProcess = function ( data, process ) { return process.next( function () { this.selectedNode = this.getSelectedNode( data ); }, this ); }; /** * @inheritdoc OO.ui.Window */ ve.ui.NodeWindow.prototype.getTeardownProcess = function ( data, process ) { return process.first( function () { this.selectedNode = null; }, this ); };