Add error dialog for map error during loading.

This commit is contained in:
Paulo Gustavo Veiga 2012-03-07 21:17:19 -03:00
parent 4de8eb17ec
commit 8a4dee47f2
5 changed files with 94 additions and 70 deletions

View File

@ -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);
};
};

View File

@ -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() {

View File

@ -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 @@
</div>
<!--<div style="position: absolute;align:left;background: gray;width: 100px;height: 300px;z-index: 100" id="dragPanel">-->
<!--<div id="dragIcon" style="">-->
<!--<img src="images/logo-small.png"/>-->
<!--</div>-->
<!--<div id="dragIcon" style="">-->
<!--<img src="images/logo-small.png"/>-->
<!--</div>-->
<!--</div>-->
<!--<script type="text/javascript">-->
<!--$("dragIcon").addEvent('mousedown', function(event) {-->
<!--event.preventDefault();-->
<!--$("dragIcon").addEvent('mousedown', function(event) {-->
<!--event.preventDefault();-->
<!--var options = {imageUrl:"images/logo-small.png",-->
<!--imageWidth:80,-->
<!--imageHeight:43,-->
<!--metadata: "{'media':'video,'url':'http://www.youtube.com/watch?v=P3FrXftyuzw&feature=g-vrec&context=G2b4ab69RVAAAAAAAAAA'}"-->
<!--};-->
<!--designer.addDraggedNode(event, options);-->
<!--});-->
<!--var options = {imageUrl:"images/logo-small.png",-->
<!--imageWidth:80,-->
<!--imageHeight:43,-->
<!--metadata: "{'media':'video,'url':'http://www.youtube.com/watch?v=P3FrXftyuzw&feature=g-vrec&context=G2b4ab69RVAAAAAAAAAA'}"-->
<!--};-->
<!--designer.addDraggedNode(event, options);-->
<!--});-->
<!--</script>-->
<div id="mindplot"></div>

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

View File

@ -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");