Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: Wikipedia: Mediawiki-CVS

[MediaWiki-commits] [Gerrit] LanguageBlock Node - change (mediawiki...VisualEditor)

 

 

Wikipedia mediawiki-cvs RSS feed   Index | Next | Previous | View Threaded


gerrit at wikimedia

Aug 11, 2013, 12:05 PM

Post #1 of 1 (9 views)
Permalink
[MediaWiki-commits] [Gerrit] LanguageBlock Node - change (mediawiki...VisualEditor)

Mooeypoo has uploaded a new change for review.

https://gerrit.wikimedia.org/r/78670


Change subject: LanguageBlock Node
......................................................................

LanguageBlock Node

This is the ce/dm definition for the LanguageBlockNode as part of the
new LanguageBlockInspector. The inspector UI will come up next.

This commit sets up the dm/ce to recognize language <div> blocks with
some langu='xx' dir='yy' definition and visually marks them for the user.
The LanguageBlock Node definition is set up as BranchNode so it can
wrap a block of content that has other nodes in it.

Change-Id: I0e7d3156085970ce3b0cca1f853d2ad7417bd712
---
M VisualEditor.php
A modules/ve/ce/nodes/ve.ce.LanguageBlockNode.js
M modules/ve/ce/styles/ve.ce.Node.css
A modules/ve/dm/nodes/ve.dm.LanguageBlockNode.js
4 files changed, 119 insertions(+), 0 deletions(-)


git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/VisualEditor refs/changes/70/78670/1

diff --git a/VisualEditor.php b/VisualEditor.php
index b067472..e5007a7 100644
--- a/VisualEditor.php
+++ b/VisualEditor.php
@@ -732,6 +732,8 @@
've/ui/widgets/ve.ui.LanguageInputWidget.js',
've/ui/tools/buttons/ve.ui.CodeButtonTool.js',
've/ui/tools/buttons/ve.ui.StrikethroughButtonTool.js',
+ 've/ce/nodes/ve.ce.LanguageBlockNode.js',
+ 've/dm/nodes/ve.dm.LanguageBlockNode.js',
),
'dependencies' => array(
'ext.visualEditor.core',
diff --git a/modules/ve/ce/nodes/ve.ce.LanguageBlockNode.js b/modules/ve/ce/nodes/ve.ce.LanguageBlockNode.js
new file mode 100644
index 0000000..58bea53
--- /dev/null
+++ b/modules/ve/ce/nodes/ve.ce.LanguageBlockNode.js
@@ -0,0 +1,55 @@
+/*!
+ * VisualEditor ContentEditable ListNode class.
+ *
+ * @copyright 2011-2013 VisualEditor Team and others; see AUTHORS.txt
+ * @license The MIT License (MIT); see LICENSE.txt
+ */
+
+/**
+ * ContentEditable language block node.
+ *
+ * @class
+ * @extends ve.ce.BranchNode
+ * @constructor
+ * @param {ve.dm.ListNode} model Model to observe
+ * @param {Object} [config] Config options
+ */
+ve.ce.LanguageBlockNode = function VeCeLanguageBlockNode( model, config ) {
+ // Parent constructor
+ ve.ce.BranchNode.call( this, model, config );
+
+ // Events
+ this.model.connect( this, { 'update': 'onUpdate' } );
+
+ // DOM Changes
+ this.$.addClass( 've-ce-languageBlockNode' );
+};
+
+/* Inheritance */
+
+ve.inheritClass( ve.ce.LanguageBlockNode, ve.ce.BranchNode );
+
+/* Static Properties */
+
+ve.ce.LanguageBlockNode.static.name = 'languageblock';
+
+ve.ce.LanguageBlockNode.static.tagName = 'div';
+
+ve.ce.LanguageBlockNode.static.canBeSplit = true;
+
+/* Methods */
+
+/**
+ * Handle model update events.
+ *
+ * If the style changed since last update the DOM wrapper will be replaced with an appropriate one.
+ *
+ * @method
+ */
+ve.ce.LanguageBlockNode.prototype.onUpdate = function () {
+// this.updateTagName();
+};
+
+/* Registration */
+
+ve.ce.nodeFactory.register( ve.ce.LanguageBlockNode );
diff --git a/modules/ve/ce/styles/ve.ce.Node.css b/modules/ve/ce/styles/ve.ce.Node.css
index 6458fb6..b20e57a 100644
--- a/modules/ve/ce/styles/ve.ce.Node.css
+++ b/modules/ve/ce/styles/ve.ce.Node.css
@@ -192,3 +192,10 @@
border-bottom: dashed #ccc 1px;
background-color: #ebf3f5;
}
+
+/* Language Block Div Node */
+.ve-ce-languageBlockNode {
+ border: dashed #ccc 1px;
+ background-color: #ebf3f5;
+}
+
diff --git a/modules/ve/dm/nodes/ve.dm.LanguageBlockNode.js b/modules/ve/dm/nodes/ve.dm.LanguageBlockNode.js
new file mode 100644
index 0000000..316220b
--- /dev/null
+++ b/modules/ve/dm/nodes/ve.dm.LanguageBlockNode.js
@@ -0,0 +1,55 @@
+/*!
+ * VisualEditor DataModel LanguageBlockNode class.
+ *
+ * @copyright 2011-2013 VisualEditor Team and others; see AUTHORS.txt
+ * @license The MIT License (MIT); see LICENSE.txt
+ */
+
+/**
+ * DataModel language block node.
+ *
+ * @class
+ * @extends ve.dm.BranchNode
+ * @constructor
+ * @param {ve.dm.BranchNode[]} [children] Child nodes to attach
+ * @param {Object} [element] Reference to element in linear model
+ */
+ve.dm.LanguageBlockNode = function VeDmLanguageBlockNode( children, element ) {
+ // Parent constructor
+ ve.dm.BranchNode.call( this, children, element );
+};
+
+/* Inheritance */
+
+ve.inheritClass( ve.dm.LanguageBlockNode, ve.dm.BranchNode );
+
+/* Static Properties */
+
+ve.dm.LanguageBlockNode.static.name = 'languageblock';
+
+ve.dm.LanguageBlockNode.static.matchTagNames = [ 'div' ];
+
+// TODO:
+// change the default from 'en'/'ltr' to the page langauge/dir
+// from the surface.getDir()
+ve.dm.LanguageBlockNode.static.toDataElement = function ( domElements ) {
+ var $node = $( domElements[0] );
+ return {
+ 'type': 'languageblock',
+ 'attributes': {
+ 'lang': $node.attr( 'lang' ) || 'en',
+ 'dir': $node.css( 'direction' ) || 'ltr'
+ }
+ };
+};
+
+ve.dm.LanguageBlockNode.static.toDomElements = function ( dataElement, doc ) {
+ var domElement = doc.createElement( 'div' );
+ ve.setDomAttributes( domElement, dataElement.attributes, [ 'lang', 'dir' ] );
+ return [ domElement ];
+};
+
+
+/* Registration */
+
+ve.dm.modelRegistry.register( ve.dm.LanguageBlockNode );

--
To view, visit https://gerrit.wikimedia.org/r/78670
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I0e7d3156085970ce3b0cca1f853d2ad7417bd712
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Mooeypoo <moriel [at] gmail>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits [at] lists
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Wikipedia mediawiki-cvs RSS feed   Index | Next | Previous | View Threaded
 
 


Interested in having your list archived? Contact Gossamer Threads
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.