X-Git-Url: https://scm.cri.minesparis.psl.eu/git/ckeditor.git/blobdiff_plain/871bad8291b6dbc29d489d95d185458caab25158..14d450d78a2d67ec1decd64c928151851961dd36:/_source/core/command.js diff --git a/_source/core/command.js b/_source/core/command.js deleted file mode 100644 index c0868f0..0000000 --- a/_source/core/command.js +++ /dev/null @@ -1,209 +0,0 @@ -/* -Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.html or http://ckeditor.com/license -*/ - -/** - * Creates a command class instance. - * @class Represents a command that can be executed on an editor instance. - * @param {CKEDITOR.editor} editor The editor instance this command will be - * related to. - * @param {CKEDITOR.commandDefinition} commandDefinition The command - * definition. - * @augments CKEDITOR.event - * @example - * var command = new CKEDITOR.command( editor, - * { - * exec : function( editor ) - * { - * alert( editor.document.getBody().getHtml() ); - * } - * }); - */ -CKEDITOR.command = function( editor, commandDefinition ) -{ - /** - * Lists UI items that are associated to this command. This list can be - * used to interact with the UI on command execution (by the execution code - * itself, for example). - * @type Array - * @example - * alert( 'Number of UI items associated to this command: ' + command.uiItems.length ); - */ - this.uiItems = []; - - /** - * Executes the command. - * @param {Object} [data] Any data to pass to the command. Depends on the - * command implementation and requirements. - * @returns {Boolean} A boolean indicating that the command has been - * successfully executed. - * @example - * command.exec(); // The command gets executed. - */ - this.exec = function( data ) - { - if ( this.state == CKEDITOR.TRISTATE_DISABLED ) - return false; - - if ( this.editorFocus ) // Give editor focus if necessary (#4355). - editor.focus(); - - return ( commandDefinition.exec.call( this, editor, data ) !== false ); - }; - - CKEDITOR.tools.extend( this, commandDefinition, - // Defaults - /** @lends CKEDITOR.command.prototype */ - { - /** - * The editor modes within which the command can be executed. The - * execution will have no action if the current mode is not listed - * in this property. - * @type Object - * @default { wysiwyg : 1 } - * @see CKEDITOR.editor.prototype.mode - * @example - * // Enable the command in both WYSIWYG and Source modes. - * command.modes = { wysiwyg : 1, source : 1 }; - * @example - * // Enable the command in Source mode only. - * command.modes = { source : 1 }; - */ - modes : { wysiwyg : 1 }, - - /** - * Indicates that the editor will get the focus before executing - * the command. - * @type Boolean - * @default true - * @example - * // Do not force the editor to have focus when executing the command. - * command.editorFocus = false; - */ - editorFocus : 1, - - /** - * Indicates the editor state. Possible values are: - * - * Do not set this property directly, using the {@link #setState} - * method instead. - * @type Number - * @default {@link CKEDITOR.TRISTATE_OFF} - * @example - * if ( command.state == CKEDITOR.TRISTATE_DISABLED ) - * alert( 'This command is disabled' ); - */ - state : CKEDITOR.TRISTATE_OFF - }); - - // Call the CKEDITOR.event constructor to initialize this instance. - CKEDITOR.event.call( this ); -}; - -CKEDITOR.command.prototype = -{ - /** - * Enables the command for execution. The command state (see - * {@link CKEDITOR.command.prototype.state}) available before disabling it - * is restored. - * @example - * command.enable(); - * command.exec(); // Execute the command. - */ - enable : function() - { - if ( this.state == CKEDITOR.TRISTATE_DISABLED ) - this.setState( ( !this.preserveState || ( typeof this.previousState == 'undefined' ) ) ? CKEDITOR.TRISTATE_OFF : this.previousState ); - }, - - /** - * Disables the command for execution. The command state (see - * {@link CKEDITOR.command.prototype.state}) will be set to - * {@link CKEDITOR.TRISTATE_DISABLED}. - * @example - * command.disable(); - * command.exec(); // "false" - Nothing happens. - */ - disable : function() - { - this.setState( CKEDITOR.TRISTATE_DISABLED ); - }, - - /** - * Sets the command state. - * @param {Number} newState The new state. See {@link #state}. - * @returns {Boolean} Returns "true" if the command state changed. - * @example - * command.setState( CKEDITOR.TRISTATE_ON ); - * command.exec(); // Execute the command. - * command.setState( CKEDITOR.TRISTATE_DISABLED ); - * command.exec(); // "false" - Nothing happens. - * command.setState( CKEDITOR.TRISTATE_OFF ); - * command.exec(); // Execute the command. - */ - setState : function( newState ) - { - // Do nothing if there is no state change. - if ( this.state == newState ) - return false; - - this.previousState = this.state; - - // Set the new state. - this.state = newState; - - // Fire the "state" event, so other parts of the code can react to the - // change. - this.fire( 'state' ); - - return true; - }, - - /** - * Toggles the on/off (active/inactive) state of the command. This is - * mainly used internally by context sensitive commands. - * @example - * command.toggleState(); - */ - toggleState : function() - { - if ( this.state == CKEDITOR.TRISTATE_OFF ) - this.setState( CKEDITOR.TRISTATE_ON ); - else if ( this.state == CKEDITOR.TRISTATE_ON ) - this.setState( CKEDITOR.TRISTATE_OFF ); - } -}; - -CKEDITOR.event.implementOn( CKEDITOR.command.prototype, true ); - -/** - * Indicates the previous command state. - * @name CKEDITOR.command.prototype.previousState - * @type Number - * @see #state - * @example - * alert( command.previousState ); - */ - -/** - * Fired when the command state changes. - * @name CKEDITOR.command#state - * @event - * @example - * command.on( 'state' , function( e ) - * { - * // Alerts the new state. - * alert( this.state ); - * }); - */