diff --git a/core-js/src/main/javascript/Utils.js b/core-js/src/main/javascript/Utils.js index ff870beb..ed986bd0 100644 --- a/core-js/src/main/javascript/Utils.js +++ b/core-js/src/main/javascript/Utils.js @@ -138,45 +138,4 @@ core.Utils.calculateDefaultControlPoints = function(srcPos, tarPos) { var y2 = m * (x2 - tarPos.x) + tarPos.y; return [new core.Point(-srcPos.x + x1, -srcPos.y + y1),new core.Point(-tarPos.x + x2, -tarPos.y + y2)]; -}; - -core.Utils.animatePosition = function (elems, doneFn, designer) { - var _moveEffect = null; - var i = 10; - var step = 10; - var moveEffect = function () { - if (i > 0) { - var keys = elems.keys(); - for (var j = 0; j < keys.length; j++) { - var id = keys[j]; - var mod = elems.get(id); - var allTopics = designer.getModel().getTopics(); - var currentTopic = allTopics.filter(function(node) { - return node.getId() == id; - })[0]; - var xStep = (mod.originalPos.x - mod.newPos.x) / step; - var yStep = (mod.originalPos.y - mod.newPos.y) / step; - var newPos = currentTopic.getPosition().clone(); - newPos.x += xStep; - newPos.y += yStep; - currentTopic.setPosition(newPos, false); - } - } else { - $clear(_moveEffect); - var keys = elems.keys(); - for (var j = 0; j < keys.length; j++) { - var id = keys[j]; - var mod = elems.get(id); - var allTopics = designer.getModel().getTopics(); - var currentTopic = allTopics.filter(function(node) { - return node.getId() == id; - })[0]; - currentTopic.setPosition(mod.originalPos, false); - } - if ($defined(doneFn)) - doneFn.attempt(); - } - i--; - }; - _moveEffect = moveEffect.periodical(10); -}; +}; \ No newline at end of file diff --git a/mindplot/src/main/javascript/Designer.js b/mindplot/src/main/javascript/Designer.js index ac5db35a..9f78f3e0 100644 --- a/mindplot/src/main/javascript/Designer.js +++ b/mindplot/src/main/javascript/Designer.js @@ -447,7 +447,7 @@ mindplot.Designer = new Class({ $assert(mindmapModel, "mindmapModel can not be null"); this._mindmap = mindmapModel; -// try { + try { // Init layout manager ... var size = {width:25,height:25}; var layoutManager = new mindplot.layout.LayoutManager(mindmapModel.getCentralTopic().getId(), size); @@ -484,9 +484,9 @@ mindplot.Designer = new Class({ mindplot.EventBus.instance.fireEvent(mindplot.EventBus.events.DoLayout); this.fireEvent('loadSuccess'); -// } catch(e) { -// this.fireEvent('loadError', e); -// } + } catch(e) { + this.fireEvent('loadError', e); + } }, getMindmap : function() { diff --git a/wise-editor/src/main/webapp/html/editor.html b/wise-editor/src/main/webapp/html/editor.html index 38622a98..491bc7b9 100644 --- a/wise-editor/src/main/webapp/html/editor.html +++ b/wise-editor/src/main/webapp/html/editor.html @@ -29,13 +29,7 @@ // Load map from XML file persisted on disk... var persistence = mindplot.PersistenceManager.getInstance(); - var mindmap; -// try { - mindmap = persistence.load(mapId); -// } catch(e) { - // If the map could not be loaded, create a new empty map... -// mindmap = mindplot.model.Mindmap.buildEmpty(mapId); -// } + var mindmap = mindmap = persistence.load(mapId); designer.loadMap(mindmap); }); @@ -135,22 +129,22 @@ - - - + + + - - + + - - - - - - - + + + + + + +
diff --git a/wise-editor/src/main/webapp/images/alert-sign.png b/wise-editor/src/main/webapp/images/alert-sign.png new file mode 100644 index 00000000..8d3e5df0 Binary files /dev/null and b/wise-editor/src/main/webapp/images/alert-sign.png differ diff --git a/wise-editor/src/main/webapp/js/editor.js b/wise-editor/src/main/webapp/js/editor.js index 2f6e8ccb..3c9c3b00 100644 --- a/wise-editor/src/main/webapp/js/editor.js +++ b/wise-editor/src/main/webapp/js/editor.js @@ -33,6 +33,7 @@ function buildDesigner(options) { designer.addEvent('loadError', function(e) { window.waitDialog.close(); window.waitDialog.destroy(); + errorDialog.show(); console.log(e); }); @@ -40,11 +41,11 @@ function buildDesigner(options) { // Configure default persistence manager ... var persistence; if (options.persistenceManager) { - if(options.persistenceManager instanceof String) { - persistence = eval("new " + options.persistenceManager + "()"); + if (options.persistenceManager instanceof String) { + persistence = eval("new " + options.persistenceManager + "()"); } else { - persistence = options.persistenceManager; + persistence = options.persistenceManager; } } else { @@ -54,7 +55,7 @@ function buildDesigner(options) { // Register toolbar event ... if ($('toolbar')) { - var menu = new mindplot.widget.Menu(designer, 'toolbar',""); + var menu = new mindplot.widget.Menu(designer, 'toolbar', ""); // If a node has focus, focus can be move to another node using the keys. designer._cleanScreen = function() { @@ -110,6 +111,70 @@ editor.WaitDialog = new Class({ autoOpen:true, useEscKey:false, title:'Loading ...', + onInitialize: function(wrapper) { + wrapper.setStyle('opacity', 0); + this.fx = new Fx.Morph(wrapper, { + duration: 100, + transition: Fx.Transitions.Bounce.easeOut + }); + this.overlay = new Overlay(this.options.inject, { + duration: this.options.duration + }); + if (this.options.closeOnOverlayClick) this.overlay.addEvent('click', this.close.bind(this)); + }, + + onBeforeOpen: function() { + this.overlay.open(); + this.fx.start({ + 'margin-top': [-200, -100], + opacity: [0, 1] + }).chain(function() { + this.fireEvent('show'); + }.bind(this)); + }, + + onBeforeClose: function() { + this.fx.start({ + 'margin-top': [-100, 0], + opacity: 0, + duration: 200 + }).chain(function() { + this.fireEvent('hide'); + }.bind(this)); + this.overlay.close(); + }} + ); + this.setContent(panel); + }, + + _buildPanel : function () { + var result = new Element('div'); + result.setStyles({ + 'text-align':'center', + width: '400px' + }); + var img = new Element('img', {'src': 'images/ajax-loader.gif'}); + img.inject(result); + return result; + }, + + show : function() { + this.open(); + } + +}); + + +editor.FatalErrorDialog = new Class({ + Extends:MooDialog, + initialize : function() { + var panel = this._buildPanel(); + this.parent({ + closeButton:false, + destroyOnClose:true, + autoOpen:true, + useEscKey:false, + title:'Outch!!. An unexpected error has occurred', onInitialize: function(wrapper) { wrapper.setStyle('opacity', 0); this.fx = new Fx.Morph(wrapper, { @@ -155,8 +220,12 @@ editor.WaitDialog = new Class({ 'text-align':'center', width: '400px' }); - var img = new Element('img', {'src': 'images/ajax-loader.gif'}); + var p = new Element('p', {'text': 'We\'re sorry, an error has occurred and we can not process your request. Please try again, or go to the home page.'}); + p.inject(result); + + var img = new Element('img', {'src': 'images/alert-sign.png'}); img.inject(result); + return result; }, @@ -166,6 +235,7 @@ editor.WaitDialog = new Class({ }); + editor.Help = { buildHelp:function(panel) { var container = new Element('div'); @@ -236,6 +306,7 @@ editor.Help = { // Show loading dialog ... waitDialog = new editor.WaitDialog(); waitDialog.show(); +errorDialog = new editor.FatalErrorDialog(); // Loading libraries ... Asset.javascript("js/mindplot-min.js");