jenkins-bot has submitted this change and it was merged. (
https://gerrit.wikimedia.org/r/374799 )
Change subject: Remove unnecessary sub-classes by making target/surface setup
more like parent
......................................................................
Remove unnecessary sub-classes by making target/surface setup more like parent
We can use plain ve.ui.Surfaces, and the #createSurface methods.
Requires us to change mw.cx.dm.Translation to store dm.Document's
instead of dm.Surface's.
Change-Id: I7365670cb290362e1d9c1982c48164279eb60de6
---
M extension.json
M modules/dm/mw.cx.dm.Translation.js
M modules/ui/mw.cx.ui.TranslationView.js
M modules/ve-cx/ui/ve.ui.CXLinkContextItem.js
D modules/ve-cx/ui/ve.ui.CXSourceSurface.js
D modules/ve-cx/ui/ve.ui.CXSurface.js
D modules/ve-cx/ui/ve.ui.CXTargetSurface.js
7 files changed, 26 insertions(+), 148 deletions(-)
Approvals:
Divec: Looks good to me, approved
jenkins-bot: Verified
diff --git a/extension.json b/extension.json
index 6a9ff0c..5410ff4 100644
--- a/extension.json
+++ b/extension.json
@@ -1303,10 +1303,7 @@
"ve-cx/ui/ve.ui.CXTranslationUnitContextItem.js",
"ve-cx/ui/ve.ui.CXLinkContextItem.js",
"ve-cx/ui/ve.ui.CXLinkAnnotationInspector.js",
- "ve-cx/ui/ve.ui.CXLinkAnnotationWidget.js",
- "ve-cx/ui/ve.ui.CXSurface.js",
- "ve-cx/ui/ve.ui.CXSourceSurface.js",
- "ve-cx/ui/ve.ui.CXTargetSurface.js"
+ "ve-cx/ui/ve.ui.CXLinkAnnotationWidget.js"
],
"styles": [
"ve-cx/ce/styles/ve.ce.CXPlaceholderNode.css",
diff --git a/modules/dm/mw.cx.dm.Translation.js
b/modules/dm/mw.cx.dm.Translation.js
index c5faac3..64098a6 100644
--- a/modules/dm/mw.cx.dm.Translation.js
+++ b/modules/dm/mw.cx.dm.Translation.js
@@ -38,17 +38,17 @@
this.topTranslationUnits = [];
this.translationUnitById = {};
- this.sourceSurface = this.constructor.static.createSourceSurface(
- sourceHtml,
- this.sourceWikiPage.getLanguage(),
- this.sourceWikiPage.getDirection()
+ this.sourceDoc = ve.dm.converter.getModelFromDom(
+ this.constructor.static.getSourceDom( sourceHtml, false ),
+ { lang: this.sourceWikiPage.getLanguage(), dir:
this.sourceWikiPage.getDirection() }
);
- this.targetSurface = this.constructor.static.createTargetSurface(
- sourceHtml,
- this.targetWikiPage.getLanguage(),
- this.targetWikiPage.getDirection()
+
+ this.targetDoc = ve.dm.converter.getModelFromDom(
+ this.constructor.static.getSourceDom( sourceHtml, true ),
+ { lang: this.targetWikiPage.getLanguage(), dir:
this.targetWikiPage.getDirection() }
);
- this.buildTranslationUnits(
this.sourceSurface.getDocument().getDocumentNode(), null );
+
+ this.buildTranslationUnits( this.sourceDoc.getDocumentNode(), null );
};
/* Inheritance */
@@ -97,44 +97,6 @@
mw.cx.dm.Translation.prototype.getTargetPage = function () {
return this.targetPage;
-};
-
-/**
- * Create a source surface
- *
- * @param {string} sourceHtml Segmented source HTML
- * @param {string} targetLang Target language code
- * @param {string} targetDir Target language direction
- * @return {ve.dm.Surface} Source surface
- */
-mw.cx.dm.Translation.static.createSourceSurface = function ( sourceHtml,
targetLang, targetDir ) {
- var surface = new ve.dm.Surface(
- ve.dm.converter.getModelFromDom(
- this.getSourceDom( sourceHtml, false ),
- { lang: targetLang, dir: targetDir }
- ),
- { sourceMode: false }
- );
- surface.disable();
- return surface;
-};
-
-/**
- * Create a target surface, with a document consisting of one placeholder for
each section
- *
- * @param {string} sourceHtml Segmented source HTML
- * @param {string} targetLang Target language code
- * @param {string} targetDir Target language direction
- * @return {ve.dm.Surface} Target surface, with document consisting of
placeholders
- */
-mw.cx.dm.Translation.static.createTargetSurface = function ( sourceHtml,
targetLang, targetDir ) {
- return new ve.dm.Surface(
- ve.dm.converter.getModelFromDom(
- this.getSourceDom( sourceHtml, true ),
- { lang: targetLang, dir: targetDir }
- ),
- { sourceMode: false }
- );
};
/* Methods */
@@ -277,7 +239,7 @@
*/
mw.cx.dm.Translation.prototype.buildAnnotationTranslationUnits = function (
range, parentUnit ) {
var i, current, opened, closed, j, jLen, ann, unit,
- data = this.sourceSurface.getDocument().data,
+ data = this.sourceDoc.data,
previous = new ve.dm.AnnotationSet( data.store ),
translationUnitIdBySetIndex = {};
diff --git a/modules/ui/mw.cx.ui.TranslationView.js
b/modules/ui/mw.cx.ui.TranslationView.js
index e25c151..2cdf83e 100644
--- a/modules/ui/mw.cx.ui.TranslationView.js
+++ b/modules/ui/mw.cx.ui.TranslationView.js
@@ -160,16 +160,19 @@
var sourceSurface, targetSurface;
this.translation = translation;
- this.sourceSurface = sourceSurface = new ve.ui.CXSourceSurface(
- this,
- this.translation.sourceSurface,
- this.getSurfaceConfig()
+ this.sourceSurface = sourceSurface = this.createSurface(
+ this.translation.sourceDoc,
+ this.getSurfaceConfig( {
+ classes: [ 've-ui-cxSurface', 've-ui-cxSourceSurface',
'mw-body-content' ]
+ } )
);
- this.targetSurface = targetSurface = new ve.ui.CXTargetSurface(
- this,
- this.translation.targetSurface,
- this.getSurfaceConfig()
+ this.targetSurface = targetSurface = this.createSurface(
+ this.translation.targetDoc,
+ this.getSurfaceConfig( {
+ classes: [ 've-ui-cxSurface', 've-ui-cxTargetSurface',
'mw-body-content' ]
+ } )
);
+ sourceSurface.setDisabled( true );
this.sourceColumn.setTranslation( translation );
this.targetColumn.setTranslation( translation );
this.toolsColumn.setTranslation( translation );
@@ -179,7 +182,7 @@
focus: [ 'onSurfaceViewFocus', targetSurface ]
} );
this.setSurface( targetSurface );
- translation.targetSurface.getDocument().connect( this, {
+ targetSurface.getModel().getDocument().connect( this, {
transact: 'onDocumentTransact'
} );
targetSurface.getView().getDocument().connect( this, {
diff --git a/modules/ve-cx/ui/ve.ui.CXLinkContextItem.js
b/modules/ve-cx/ui/ve.ui.CXLinkContextItem.js
index 828d75b..eaf62dd 100644
--- a/modules/ve-cx/ui/ve.ui.CXLinkContextItem.js
+++ b/modules/ve-cx/ui/ve.ui.CXLinkContextItem.js
@@ -39,16 +39,17 @@
ve.ui.CXLinkContextItem.prototype.renderBody = function () {
var translation, unit, sourceModel;
+ // Parent method
ve.ui.CXLinkContextItem.super.prototype.renderBody.call( this );
- translation =
this.context.getSurface().getTranslationView().getTranslation();
+ translation = ve.init.target.getTranslation();
unit = translation.getTranslationUnit(
this.model.getTranslationUnitId() );
sourceModel = unit.sourceModel;
this.$sourceBody.empty().append( this.constructor.static.generateBody(
// TODO: this ought to be a linkCache pointing at the source
wiki
ve.init.platform.linkCache,
sourceModel,
- translation.sourceSurface.getDocument().getHtmlDocument()
+ translation.sourceDoc.getHtmlDocument()
) );
};
diff --git a/modules/ve-cx/ui/ve.ui.CXSourceSurface.js
b/modules/ve-cx/ui/ve.ui.CXSourceSurface.js
deleted file mode 100644
index d5e4228..0000000
--- a/modules/ve-cx/ui/ve.ui.CXSourceSurface.js
+++ /dev/null
@@ -1,19 +0,0 @@
-/**
- * UI surface for the source side of a translation
- *
- * @class
- * @extends ve.ui.CXSurface
- *
- * @constructor
- * @param {mw.cx.ui.TranslationView} translationView Translation view
- * @param {Object} [config] Configuration options
- */
-ve.ui.CXSourceSurface = function VeUiCXSourceSurface() {
- ve.ui.CXSourceSurface.super.apply( this, arguments );
- this.setDisabled( true );
- this.$element.addClass( 've-ui-cxSourceSurface' );
-};
-
-/* Inheritance */
-
-OO.inheritClass( ve.ui.CXSourceSurface, ve.ui.CXSurface );
diff --git a/modules/ve-cx/ui/ve.ui.CXSurface.js
b/modules/ve-cx/ui/ve.ui.CXSurface.js
deleted file mode 100644
index 07cf60b..0000000
--- a/modules/ve-cx/ui/ve.ui.CXSurface.js
+++ /dev/null
@@ -1,48 +0,0 @@
-/**
- * UI surface for one side of a translation (source or target)
- *
- * @class
- * @extends ve.ui.Surface
- *
- * @constructor
- * @param {mw.cx.ui.TranslationView} translationView Translation view
- * @param {ve.dm.Surface} surfaceModel Model surface
- * @param {Object} [config] Configuration options
- */
-ve.ui.CXSurface = function VeUiCXSurface( translationView, surfaceModel,
config ) {
- this.translationView = translationView;
- // Need to set surfaceModel before calling parent constructor, for
createModel
- this.surfaceModel = surfaceModel;
- // Parent constructor
- ve.ui.CXSurface.super.call( this, surfaceModel.getDocument(), config );
- this.$element.addClass( 've-ui-cxSurface mw-body-content
mw-parser-output' );
-};
-
-/* Inheritance */
-
-OO.inheritClass( ve.ui.CXSurface, ve.ui.Surface );
-
-/* Methods */
-
-/**
- * Hack: Return existing ve.dm.Surface to caller (for ve.ui.Surface
constructor)
- *
- * @return {ve.dm.Surface} Existing ve.dm.Surface
- */
-ve.ui.CXSurface.prototype.createModel = function () {
- return this.surfaceModel;
-};
-
-/**
- * @return {mw.cx.ui.TranslationView} The translation view object
- */
-ve.ui.CXSurface.prototype.getTranslationView = function () {
- return this.translationView;
-};
-
-/**
- * @return {mw.cx.dm.Translation} The translation model object
- */
-ve.ui.CXSurface.prototype.getTranslationModel = function () {
- return this.translationModel;
-};
diff --git a/modules/ve-cx/ui/ve.ui.CXTargetSurface.js
b/modules/ve-cx/ui/ve.ui.CXTargetSurface.js
deleted file mode 100644
index 8e4e38e..0000000
--- a/modules/ve-cx/ui/ve.ui.CXTargetSurface.js
+++ /dev/null
@@ -1,18 +0,0 @@
-/**
- * UI surface for the target side of a translation
- *
- * @class
- * @extends ve.ui.CXSurface
- *
- * @constructor
- * @param {mw.cx.ui.TranslationView} translationView Translation view
- * @param {Object} [config] Configuration options
- */
-ve.ui.CXTargetSurface = function VeUiCXTargetSurface() {
- ve.ui.CXTargetSurface.super.apply( this, arguments );
- this.$element.addClass( 've-ui-cxTargetSurface' );
-};
-
-/* Inheritance */
-
-OO.inheritClass( ve.ui.CXTargetSurface, ve.ui.CXSurface );
--
To view, visit https://gerrit.wikimedia.org/r/374799
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I7365670cb290362e1d9c1982c48164279eb60de6
Gerrit-PatchSet: 2
Gerrit-Project: mediawiki/extensions/ContentTranslation
Gerrit-Branch: master
Gerrit-Owner: Esanders <[email protected]>
Gerrit-Reviewer: Divec <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits