return false;
}
- var canvasDOM = this.generateCanvasDOM(wlxmlDocument.root);
+ this.wlxmlListener.listenTo(wlxmlDocument);
+ this.wlxmlDocument = wlxmlDocument;
+ this.reloadRoot();
+ this.setupEventHandling();
+ },
+ reloadRoot: function() {
+ var canvasDOM = this.generateCanvasDOM(this.wlxmlDocument.root);
this.wrapper.empty();
this.wrapper.append(canvasDOM);
this.d = this.wrapper.children(0);
- this.setupEventHandling();
-
- this.wlxmlListener.listenTo(wlxmlDocument);
- this.wlxmlDocument = wlxmlDocument;
},
generateCanvasDOM: function(wlxmlNode) {
var expect = chai.expect;
var getCanvasFromXML = function(xml) {
- return canvas.fromXMLDocument(wlxml.WLXMLDocumentFromXML(xml));
+ return canvas.fromXMLDocument(getDocumentFromXML(xml));
};
+var getDocumentFromXML = function(xml) {
+ return wlxml.WLXMLDocumentFromXML(xml);
+}
+
var wait = function(callback, timeout) {
return window.setTimeout(callback, timeout || 0.5);
};
});
});
+describe('Handling changes to the document', function() {
+ it('replaces the whole canvas content when document root node replaced', function() {
+ var doc = getDocumentFromXML('<section></section>'),
+ c = canvas.fromXMLDocument(doc);
+
+ var header = doc.root.replaceWith({tagName: 'header'});
+ expect(c.doc().data('wlxmlNode').sameNode(header)).to.be.true;
+ });
+});
+
describe('Cursor', function() {
var getSelection;
canvasNode.setWlxmlTag(event.meta.newTagName);
},
nodeAdded: function(event) {
+ if(event.meta.node.isRoot()) {
+ this.canvas.reloadRoot();
+ return;
+ }
var parentElement = utils.findCanvasElement(event.meta.node.parent()),
nodeIndex = event.meta.node.getIndex(),
referenceElement, referenceAction;