%PDF- %PDF-
| Direktori : /www/varak.net/wiki.varak.net/extensions/VisualEditor/lib/ve/src/ui/tools/ |
| Current File : /www/varak.net/wiki.varak.net/extensions/VisualEditor/lib/ve/src/ui/tools/ve.ui.FormatTool.js |
/*!
* VisualEditor UserInterface FormatTool classes.
*
* @copyright 2011-2016 VisualEditor Team and others; see http://ve.mit-license.org
*/
/**
* UserInterface format tool.
*
* @abstract
* @class
* @extends ve.ui.Tool
* @constructor
* @param {OO.ui.ToolGroup} toolGroup
* @param {Object} [config] Configuration options
*/
ve.ui.FormatTool = function VeUiFormatTool() {
// Parent constructor
ve.ui.FormatTool.super.apply( this, arguments );
// Properties
this.convertible = false;
};
/* Inheritance */
OO.inheritClass( ve.ui.FormatTool, ve.ui.Tool );
/* Static Properties */
ve.ui.FormatTool.static.deactivateOnSelect = false;
/**
* Format the tool applies.
*
* Object should contain a required `type` and optional `attributes` property.
*
* @abstract
* @static
* @property {Object}
* @inheritable
*/
ve.ui.FormatTool.static.format = null;
/* Methods */
/**
* @inheritdoc
*/
ve.ui.FormatTool.prototype.onUpdateState = function ( fragment ) {
var i, len, nodes, all, cells, selection, format;
// Parent method
ve.ui.FormatTool.super.prototype.onUpdateState.apply( this, arguments );
// Hide and de-activate disabled tools
if ( this.isDisabled() ) {
this.toggle( false );
this.setActive( false );
return;
}
this.toggle( true );
selection = fragment.getSelection();
format = this.constructor.static.format;
if ( selection instanceof ve.dm.LinearSelection ) {
nodes = fragment.getSelectedLeafNodes();
all = !!nodes.length;
for ( i = 0, len = nodes.length; i < len; i++ ) {
if ( !nodes[ i ].hasMatchingAncestor( format.type, format.attributes ) ) {
all = false;
break;
}
}
} else if ( selection instanceof ve.dm.TableSelection ) {
cells = selection.getMatrixCells();
all = true;
for ( i = cells.length - 1; i >= 0; i-- ) {
if ( !cells[ i ].node.matches( format.type, format.attributes ) ) {
all = false;
break;
}
}
}
this.convertible = !all;
this.setActive( all );
};
/**
* UserInterface paragraph tool.
*
* @class
* @extends ve.ui.FormatTool
* @constructor
* @param {OO.ui.ToolGroup} toolGroup
* @param {Object} [config] Configuration options
*/
ve.ui.ParagraphFormatTool = function VeUiParagraphFormatTool() {
ve.ui.ParagraphFormatTool.super.apply( this, arguments );
};
OO.inheritClass( ve.ui.ParagraphFormatTool, ve.ui.FormatTool );
ve.ui.ParagraphFormatTool.static.name = 'paragraph';
ve.ui.ParagraphFormatTool.static.group = 'format';
ve.ui.ParagraphFormatTool.static.title =
OO.ui.deferMsg( 'visualeditor-formatdropdown-format-paragraph' );
ve.ui.ParagraphFormatTool.static.format = { type: 'paragraph' };
ve.ui.ParagraphFormatTool.static.commandName = 'paragraph';
ve.ui.toolFactory.register( ve.ui.ParagraphFormatTool );
/**
* UserInterface heading 1 tool.
*
* @class
* @extends ve.ui.FormatTool
* @constructor
* @param {OO.ui.ToolGroup} toolGroup
* @param {Object} [config] Configuration options
*/
ve.ui.Heading1FormatTool = function VeUiHeading1FormatTool() {
ve.ui.Heading1FormatTool.super.apply( this, arguments );
};
OO.inheritClass( ve.ui.Heading1FormatTool, ve.ui.FormatTool );
ve.ui.Heading1FormatTool.static.name = 'heading1';
ve.ui.Heading1FormatTool.static.group = 'format';
ve.ui.Heading1FormatTool.static.title =
OO.ui.deferMsg( 'visualeditor-formatdropdown-format-heading1' );
ve.ui.Heading1FormatTool.static.format = { type: 'heading', attributes: { level: 1 } };
ve.ui.Heading1FormatTool.static.commandName = 'heading1';
ve.ui.toolFactory.register( ve.ui.Heading1FormatTool );
/**
* UserInterface heading 2 tool.
*
* @class
* @extends ve.ui.FormatTool
* @constructor
* @param {OO.ui.ToolGroup} toolGroup
* @param {Object} [config] Configuration options
*/
ve.ui.Heading2FormatTool = function VeUiHeading2FormatTool() {
ve.ui.Heading2FormatTool.super.apply( this, arguments );
};
OO.inheritClass( ve.ui.Heading2FormatTool, ve.ui.FormatTool );
ve.ui.Heading2FormatTool.static.name = 'heading2';
ve.ui.Heading2FormatTool.static.group = 'format';
ve.ui.Heading2FormatTool.static.title =
OO.ui.deferMsg( 'visualeditor-formatdropdown-format-heading2' );
ve.ui.Heading2FormatTool.static.format = { type: 'heading', attributes: { level: 2 } };
ve.ui.Heading2FormatTool.static.commandName = 'heading2';
ve.ui.toolFactory.register( ve.ui.Heading2FormatTool );
/**
* UserInterface heading 3 tool.
*
* @class
* @extends ve.ui.FormatTool
* @constructor
* @param {OO.ui.ToolGroup} toolGroup
* @param {Object} [config] Configuration options
*/
ve.ui.Heading3FormatTool = function VeUiHeading3FormatTool() {
ve.ui.Heading3FormatTool.super.apply( this, arguments );
};
OO.inheritClass( ve.ui.Heading3FormatTool, ve.ui.FormatTool );
ve.ui.Heading3FormatTool.static.name = 'heading3';
ve.ui.Heading3FormatTool.static.group = 'format';
ve.ui.Heading3FormatTool.static.title =
OO.ui.deferMsg( 'visualeditor-formatdropdown-format-heading3' );
ve.ui.Heading3FormatTool.static.format = { type: 'heading', attributes: { level: 3 } };
ve.ui.Heading3FormatTool.static.commandName = 'heading3';
ve.ui.toolFactory.register( ve.ui.Heading3FormatTool );
/**
* UserInterface heading 4 tool.
*
* @class
* @extends ve.ui.FormatTool
* @constructor
* @param {OO.ui.ToolGroup} toolGroup
* @param {Object} [config] Configuration options
*/
ve.ui.Heading4FormatTool = function VeUiHeading4FormatTool() {
ve.ui.Heading4FormatTool.super.apply( this, arguments );
};
OO.inheritClass( ve.ui.Heading4FormatTool, ve.ui.FormatTool );
ve.ui.Heading4FormatTool.static.name = 'heading4';
ve.ui.Heading4FormatTool.static.group = 'format';
ve.ui.Heading4FormatTool.static.title =
OO.ui.deferMsg( 'visualeditor-formatdropdown-format-heading4' );
ve.ui.Heading4FormatTool.static.format = { type: 'heading', attributes: { level: 4 } };
ve.ui.Heading4FormatTool.static.commandName = 'heading4';
ve.ui.toolFactory.register( ve.ui.Heading4FormatTool );
/**
* UserInterface heading 5 tool.
*
* @class
* @extends ve.ui.FormatTool
* @constructor
* @param {OO.ui.ToolGroup} toolGroup
* @param {Object} [config] Configuration options
*/
ve.ui.Heading5FormatTool = function VeUiHeading5FormatTool() {
ve.ui.Heading5FormatTool.super.apply( this, arguments );
};
OO.inheritClass( ve.ui.Heading5FormatTool, ve.ui.FormatTool );
ve.ui.Heading5FormatTool.static.name = 'heading5';
ve.ui.Heading5FormatTool.static.group = 'format';
ve.ui.Heading5FormatTool.static.title =
OO.ui.deferMsg( 'visualeditor-formatdropdown-format-heading5' );
ve.ui.Heading5FormatTool.static.format = { type: 'heading', attributes: { level: 5 } };
ve.ui.Heading5FormatTool.static.commandName = 'heading5';
ve.ui.toolFactory.register( ve.ui.Heading5FormatTool );
/**
* UserInterface heading 6 tool.
*
* @class
* @extends ve.ui.FormatTool
* @constructor
* @param {OO.ui.ToolGroup} toolGroup
* @param {Object} [config] Configuration options
*/
ve.ui.Heading6FormatTool = function VeUiHeading6FormatTool() {
ve.ui.Heading6FormatTool.super.apply( this, arguments );
};
OO.inheritClass( ve.ui.Heading6FormatTool, ve.ui.FormatTool );
ve.ui.Heading6FormatTool.static.name = 'heading6';
ve.ui.Heading6FormatTool.static.group = 'format';
ve.ui.Heading6FormatTool.static.title =
OO.ui.deferMsg( 'visualeditor-formatdropdown-format-heading6' );
ve.ui.Heading6FormatTool.static.format = { type: 'heading', attributes: { level: 6 } };
ve.ui.Heading6FormatTool.static.commandName = 'heading6';
ve.ui.toolFactory.register( ve.ui.Heading6FormatTool );
/**
* UserInterface preformatted tool.
*
* @class
* @extends ve.ui.FormatTool
* @constructor
* @param {OO.ui.ToolGroup} toolGroup
* @param {Object} [config] Configuration options
*/
ve.ui.PreformattedFormatTool = function VeUiPreformattedFormatTool() {
ve.ui.PreformattedFormatTool.super.apply( this, arguments );
};
OO.inheritClass( ve.ui.PreformattedFormatTool, ve.ui.FormatTool );
ve.ui.PreformattedFormatTool.static.name = 'preformatted';
ve.ui.PreformattedFormatTool.static.group = 'format';
ve.ui.PreformattedFormatTool.static.title =
OO.ui.deferMsg( 'visualeditor-formatdropdown-format-preformatted' );
ve.ui.PreformattedFormatTool.static.format = { type: 'preformatted' };
ve.ui.PreformattedFormatTool.static.commandName = 'preformatted';
ve.ui.toolFactory.register( ve.ui.PreformattedFormatTool );
/**
* UserInterface blockquote tool.
*
* @class
* @extends ve.ui.FormatTool
* @constructor
* @param {OO.ui.ToolGroup} toolGroup
* @param {Object} [config] Configuration options
*/
ve.ui.BlockquoteFormatTool = function VeUiBlockquoteFormatTool() {
ve.ui.BlockquoteFormatTool.super.apply( this, arguments );
};
OO.inheritClass( ve.ui.BlockquoteFormatTool, ve.ui.FormatTool );
ve.ui.BlockquoteFormatTool.static.name = 'blockquote';
ve.ui.BlockquoteFormatTool.static.group = 'format';
ve.ui.BlockquoteFormatTool.static.title =
OO.ui.deferMsg( 'visualeditor-formatdropdown-format-blockquote' );
ve.ui.BlockquoteFormatTool.static.format = { type: 'blockquote' };
ve.ui.BlockquoteFormatTool.static.commandName = 'blockquote';
ve.ui.toolFactory.register( ve.ui.BlockquoteFormatTool );
/**
* UserInterface table cell header tool.
*
* @class
* @extends ve.ui.FormatTool
* @constructor
* @param {OO.ui.ToolGroup} toolGroup
* @param {Object} [config] Configuration options
*/
ve.ui.TableCellHeaderFormatTool = function VeUiTableCellHeaderFormatTool() {
ve.ui.TableCellHeaderFormatTool.super.apply( this, arguments );
};
OO.inheritClass( ve.ui.TableCellHeaderFormatTool, ve.ui.FormatTool );
ve.ui.TableCellHeaderFormatTool.static.name = 'tableCellHeader';
ve.ui.TableCellHeaderFormatTool.static.group = 'format';
ve.ui.TableCellHeaderFormatTool.static.title =
OO.ui.deferMsg( 'visualeditor-table-format-header' );
ve.ui.TableCellHeaderFormatTool.static.format = { type: 'tableCell', attributes: { style: 'header' } };
ve.ui.TableCellHeaderFormatTool.static.commandName = 'tableCellHeader';
ve.ui.toolFactory.register( ve.ui.TableCellHeaderFormatTool );
/**
* UserInterface table cell data tool.
*
* @class
* @extends ve.ui.FormatTool
* @constructor
* @param {OO.ui.ToolGroup} toolGroup
* @param {Object} [config] Configuration options
*/
ve.ui.TableCellDataFormatTool = function VeUiTableCellDataFormatTool() {
ve.ui.TableCellDataFormatTool.super.apply( this, arguments );
};
OO.inheritClass( ve.ui.TableCellDataFormatTool, ve.ui.FormatTool );
ve.ui.TableCellDataFormatTool.static.name = 'tableCellData';
ve.ui.TableCellDataFormatTool.static.group = 'format';
ve.ui.TableCellDataFormatTool.static.title =
OO.ui.deferMsg( 'visualeditor-table-format-data' );
ve.ui.TableCellDataFormatTool.static.format = { type: 'tableCell', attributes: { style: 'data' } };
ve.ui.TableCellDataFormatTool.static.commandName = 'tableCellData';
ve.ui.toolFactory.register( ve.ui.TableCellDataFormatTool );