From cfaa8f786d497fca47167afe7585bce41d269264 Mon Sep 17 00:00:00 2001 From: Paulo Gustavo Veiga Date: Mon, 24 Sep 2012 15:20:43 -0300 Subject: [PATCH] - Fix setting position on beta maps. --- .../persistence/Beta2PelaMigrator.js | 24 ++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/mindplot/src/main/javascript/persistence/Beta2PelaMigrator.js b/mindplot/src/main/javascript/persistence/Beta2PelaMigrator.js index 5f30e6b8..cf8aaf8b 100644 --- a/mindplot/src/main/javascript/persistence/Beta2PelaMigrator.js +++ b/mindplot/src/main/javascript/persistence/Beta2PelaMigrator.js @@ -16,19 +16,37 @@ * limitations under the License. */ mindplot.persistence.Beta2PelaMigrator = new Class({ - initialize : function(betaSerializer) { + initialize:function (betaSerializer) { this._betaSerializer = betaSerializer; this._pelaSerializer = new mindplot.persistence.XMLSerializer_Pela(); }, - toXML : function(mindmap) { + toXML:function (mindmap) { return this._pelaSerializer.toXML(mindmap); }, - loadFromDom : function(dom, mapId) { + loadFromDom:function (dom, mapId) { $assert($defined(mapId), "mapId can not be null"); var mindmap = this._betaSerializer.loadFromDom(dom, mapId); mindmap.setVersion(mindplot.persistence.ModelCodeName.PELA); + + // Beta does not set position on second level nodes ... + var branches = mindmap.getBranches(); + branches.each(function (model) { + this._fixPosition(model); + }.bind(this)); + return mindmap; + }, + + _fixPosition:function (parentModel) { + var parentPos = parentModel.getPosition(); + var isRight = parentPos.x > 0; + parentModel.getChildren().each(function (child) { + if (!child.getPosition()) { + child.setPosition(parentPos.x + (50 * isRight ? 1 : -1), parentPos.y); + } + this._fixPosition(child); + }.bind(this)); } });