- Fix setting position on beta maps.

This commit is contained in:
Paulo Gustavo Veiga 2012-09-24 15:20:43 -03:00
parent 0dafb4b31b
commit cfaa8f786d

View File

@ -16,19 +16,37 @@
* limitations under the License. * limitations under the License.
*/ */
mindplot.persistence.Beta2PelaMigrator = new Class({ mindplot.persistence.Beta2PelaMigrator = new Class({
initialize : function(betaSerializer) { initialize:function (betaSerializer) {
this._betaSerializer = betaSerializer; this._betaSerializer = betaSerializer;
this._pelaSerializer = new mindplot.persistence.XMLSerializer_Pela(); this._pelaSerializer = new mindplot.persistence.XMLSerializer_Pela();
}, },
toXML : function(mindmap) { toXML:function (mindmap) {
return this._pelaSerializer.toXML(mindmap); return this._pelaSerializer.toXML(mindmap);
}, },
loadFromDom : function(dom, mapId) { loadFromDom:function (dom, mapId) {
$assert($defined(mapId), "mapId can not be null"); $assert($defined(mapId), "mapId can not be null");
var mindmap = this._betaSerializer.loadFromDom(dom, mapId); var mindmap = this._betaSerializer.loadFromDom(dom, mapId);
mindmap.setVersion(mindplot.persistence.ModelCodeName.PELA); 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; 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));
} }
}); });