kityminder
Version:
63 lines (48 loc) • 1.48 kB
JavaScript
/**
* @fileOverview
*
* 完成加载一个脑图文件的流程
*
* @author: techird
* @copyright: Baidu FEX, 2014
*/
KityMinder.registerUI('widget/fileloader', function(minder) {
var doc = minder.getUI('doc');
var $container = $(minder.getRenderTarget());
var supports = minder.getSupportedProtocols();
function getProtocolByExtension(extension) {
for (var protocol in supports) {
if (supports[protocol].fileExtension == extension) return supports[protocol];
}
return false;
}
function load(file) {
var protocol = getProtocolByExtension(file.extension);
return doc.load({
source: file.source,
title: file.filename,
content: file.data.content,
protocol: protocol.name
}).then(function(json) {
$container.removeClass('loading');
return {
file: file,
json: json
};
});
}
function error(err) {
var notice = minder.getUI('widget/notice');
notice.error('err_localfile_read', err);
$container.removeClass('loading');
}
return {
load: function(filePromise, source) {
$container.addClass('loading');
return Promise.resolve(filePromise).then(load)['catch'](error);
},
support: function(file) {
return getProtocolByExtension(file.extension);
}
};
});