Mooeypoo has uploaded a new change for review. https://gerrit.wikimedia.org/r/70560
Change subject: [WIP] Language Inspector Prototype ...................................................................... [WIP] Language Inspector Prototype Please ignore this for the moment; this will be the language inspector but for the moment I'm trying to set up the files and go over the code as per the example of the link inspector. It's far from being ready for any sort of meaningful review just yet (though suggestions are comments are always welcome!) Change-Id: I239eef5124e29369ea9c5d8c0f49b2f6a61bc053 --- A modules/ve/ce/annotations/ve.ce.LanguageAnnotation.js A modules/ve/dm/annotations/ve.dm.LanguageAnnotation.js A modules/ve/ui/inspectors/ve.ui.LanguageInspector.js A modules/ve/ui/widgets/ve.ui.LanguageWidget.js 4 files changed, 101 insertions(+), 0 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/VisualEditor refs/changes/60/70560/1 diff --git a/modules/ve/ce/annotations/ve.ce.LanguageAnnotation.js b/modules/ve/ce/annotations/ve.ce.LanguageAnnotation.js new file mode 100644 index 0000000..9d1e5f7 --- /dev/null +++ b/modules/ve/ce/annotations/ve.ce.LanguageAnnotation.js @@ -0,0 +1,38 @@ +/*! + * VisualEditor ContentEditable LanguageAnnotation class. + * + * @copyright 2011-2013 VisualEditor Team and others; see AUTHORS.txt + * @license The MIT License (MIT); see LICENSE.txt + */ + +/** + * ContentEditable language annotation. + * + * @class + * @extends ve.ce.Annotation + * @constructor + * @param {ve.dm.LinkAnnotation} model Model to observe + * @param {Object} [config] Config options + */ +ve.ce.LanguageAnnotation = function VeCeLanguageAnnotation( model, config ) { + // Parent constructor + ve.ce.Annotation.call( this, model, config ); + + // DOM changes + this.$.addClass( 've-ce-LanguageAnnotation' ); + this.$.attr( 'lang', model.getAttribute( 'lang' ) ); +}; + +/* Inheritance */ + +ve.inheritClass( ve.ce.LanguageAnnotation, ve.ce.Annotation ); + +/* Static Properties */ + +ve.ce.LanguageAnnotation.static.name = 'language'; + +ve.ce.LanguageAnnotation.static.tagName = 'span'; + +/* Registration */ + +ve.ce.annotationFactory.register( ve.ce.LanguageAnnotation ); diff --git a/modules/ve/dm/annotations/ve.dm.LanguageAnnotation.js b/modules/ve/dm/annotations/ve.dm.LanguageAnnotation.js new file mode 100644 index 0000000..d333dd2 --- /dev/null +++ b/modules/ve/dm/annotations/ve.dm.LanguageAnnotation.js @@ -0,0 +1,61 @@ +/*! + * VisualEditor DataModel LanguageAnnotation class. + * + * @copyright 2011-2013 VisualEditor Team and others; see AUTHORS.txt + * @license The MIT License (MIT); see LICENSE.txt + */ + +/** + * DataModel language annotation. + * + * Represents `<span>` tags with 'lang' property. + * + * @class + * @extends ve.dm.Annotation + * @constructor + * @param {Object} element + */ +ve.dm.LanguageAnnotation = function VeDmLanguageAnnotation( element ) { + // Parent constructor + ve.dm.Annotation.call( this, element ); +}; + +/* Inheritance */ + +ve.inheritClass( ve.dm.LanguageAnnotation, ve.dm.Annotation ); + +/* Static Properties */ + +ve.dm.LanguageAnnotation.static.name = 'language'; + +ve.dm.LanguageAnnotation.static.matchTagNames = ['span']; + +ve.dm.LanguageAnnotation.static.applyToAppendedContent = false; + +ve.dm.LanguageAnnotation.static.toDataElement = function ( domElements ) { + return { + 'type': 'span', + 'attributes': { + 'lang': domElements[0].getAttribute( 'lang' ) + } + }; +}; + +ve.dm.LanguageAnnotation.static.toDomElements = function ( dataElement, doc ) { + var domElement = doc.createElement( 'span' ); + domElement.setAttribute( 'lang', dataElement.attributes.href ); + return [ domElement ]; +}; + +/* Methods */ + +ve.dm.LanguageAnnotation.prototype.getComparableObject = function () { + return { + 'type': this.getType(), + 'lang': this.getAttribute( 'lang' ) + }; +}; + +/* Registration */ + +ve.dm.modelRegistry.register( ve.dm.LanguageAnnotation ); diff --git a/modules/ve/ui/inspectors/ve.ui.LanguageInspector.js b/modules/ve/ui/inspectors/ve.ui.LanguageInspector.js new file mode 100644 index 0000000..e22a6d6 --- /dev/null +++ b/modules/ve/ui/inspectors/ve.ui.LanguageInspector.js @@ -0,0 +1 @@ +/** placeholder file for the moment **/ \ No newline at end of file diff --git a/modules/ve/ui/widgets/ve.ui.LanguageWidget.js b/modules/ve/ui/widgets/ve.ui.LanguageWidget.js new file mode 100644 index 0000000..e22a6d6 --- /dev/null +++ b/modules/ve/ui/widgets/ve.ui.LanguageWidget.js @@ -0,0 +1 @@ +/** placeholder file for the moment **/ \ No newline at end of file -- To view, visit https://gerrit.wikimedia.org/r/70560 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I239eef5124e29369ea9c5d8c0f49b2f6a61bc053 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/VisualEditor Gerrit-Branch: master Gerrit-Owner: Mooeypoo <mor...@gmail.com> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits