12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- /**
- * @fileOverview
- *
- * KityMinder UI 注册及加载机制
- *
- * @author: techird
- * @copyright: Baidu FEX, 2014
- */
- (function() {
- var uiQueue = [];
- /* 注册一个新的 UI 交互 */
- KityMinder.registerUI = function(id, deps, ui) {
- if (typeof(deps) == 'function') {
- ui = deps;
- deps = null;
- }
- uiQueue.push({
- id: id,
- ui: ui,
- deps: deps
- });
- };
- kity.extendClass(Minder, {
- /* 为实例注册 UI 交互 */
- initUI: function() {
- var ui = this._ui = {};
- var minder = this;
- uiQueue.forEach(function(uiDeal) {
- var deps = uiDeal.deps;
- if (deps) deps = deps.map(function(dep) {
- return minder.getUI(dep);
- });
- ui[uiDeal.id] = uiDeal.ui.apply(null, [minder].concat(deps || []));
- });
- // 阻止非脑图事件冒泡
- $('#content-wrapper').delegate('#panel, #tab-container, .fui-dialog, #main-menu', 'keydown keyup', function(e) {
- e.stopPropagation();
- });
- // 阻止非脑图事件冒泡
- $('#content-wrapper').delegate('input', 'mousedown mousemove mouseup contextmenu', function(e) {
- e.stopPropagation();
- });
- minder.getPaper().addClass('loading-target');
- this.fire('interactchange');
- this.fire('uiready');
- },
- /* 获得实例的 UI 实例 */
- getUI: function(id) {
- return this._ui[id];
- }
- });
- $.ajaxSetup({ cache: false });
- $.extend($, {
- pajax: function() {
- var jqXHR = $.ajax.apply($, arguments);
- return new Promise(function(resolve, reject) {
- jqXHR.done(resolve);
- jqXHR.fail(function(jqXHR, textStatus, errorThrown) {
- var e = new Error(textStatus);
- e.getDetail = function() {
- try {
- return 'jQuery XHR Error: \n' + JSON.stringify(errorThrown);
- } catch (e) {
- return errorThrown;
- }
- };
- reject(e);
- });
- });
- }
- });
- // preload css images
- $(function() {
- var list = ["kmcat_warn.png", "kmcat_sad.png", "icons.png", "template_large.png", "history.png", "feedback.png", "iconpriority.png", "iconprogress.png", "template.png", "layout.png", "next-level.png", "prev-level.png"];
- list.forEach(function(item) {
- (new Image()).src = 'ui/theme/default/images/' + item;
- });
- });
- })();
|