return function(sandbox) {
- var canvas = canvas3.fromXMLDocument(null);
+ var canvasElements = [];
+
+ sandbox.getPlugins().forEach(function(plugin) {
+ canvasElements = canvasElements.concat(plugin.canvasElements || []);
+ });
+
+ var canvas = canvas3.fromXMLDocument(null, canvasElements, {
+ user: sandbox.getConfig().user
+ });
var canvasWrapper = $(template);
var shownAlready = false;
var scrollbarPosition = 0,
},
setDocument: function(wlxmlDocument) {
canvas.loadWlxmlDocument(wlxmlDocument);
- canvasWrapper.find('#rng-module-documentCanvas-content').empty().append(canvas.view());
- },
- highlightElement: function(node) {
- canvas.toggleElementHighlight(node, true);
- },
- dimElement: function(node) {
- canvas.toggleElementHighlight(node, false);
- },
- jumpToElement: function(node) {
- canvas.setCurrentElement(node);
+ canvasWrapper.find('#rng-module-documentCanvas-contentWrapper').empty().append(canvas.view());
},
onAfterActionExecuted: function(action, ret) {
- if(ret && ret instanceof canvas.wlxmlDocument.CaretFragment && ret.isValid()) {
+ if(ret && ret.isValid && ret.isValid()) {
logger.debug('The action returned a valid fragment');
- canvas.setCurrentElement(ret.node, {caretTo: ret.offset});
- return;
+ return canvas.select(ret);
}
+
logger.debug('No valid fragment returned from the action');
(actionHandlers[action.getPluginName()] || []).forEach(function(handler) {