From 53768b54001a0bac78d0d78f0e2e2bb9cfc38680 Mon Sep 17 00:00:00 2001 From: Paulo Gustavo Veiga Date: Mon, 5 Nov 2012 00:11:14 -0300 Subject: [PATCH] Workaround for change text event. --- .../javascript/StandaloneActionDispatcher.js | 19 +---------------- .../commands/GenericFunctionCommand.js | 21 ++++++++++++------- 2 files changed, 15 insertions(+), 25 deletions(-) diff --git a/mindplot/src/main/javascript/StandaloneActionDispatcher.js b/mindplot/src/main/javascript/StandaloneActionDispatcher.js index 8cc62279..7b5df982 100644 --- a/mindplot/src/main/javascript/StandaloneActionDispatcher.js +++ b/mindplot/src/main/javascript/StandaloneActionDispatcher.js @@ -54,7 +54,6 @@ mindplot.StandaloneActionDispatcher = new Class({ }; var command = new mindplot.commands.GenericFunctionCommand(commandFunc, topicId, position); - command.desc = "move topic"; this.execute(command); }, @@ -72,7 +71,6 @@ mindplot.StandaloneActionDispatcher = new Class({ return result; }; var command = new mindplot.commands.GenericFunctionCommand(commandFunc, topicsIds); - command.desc = "changeFontStyleToTopic"; this.execute(command); }, @@ -85,9 +83,9 @@ mindplot.StandaloneActionDispatcher = new Class({ topic.setText(value); return result; }; + command.commandType = "changeTextToTopic"; var command = new mindplot.commands.GenericFunctionCommand(commandFunc, topicsIds, text); - command.desc = "changeTextToTopic"; this.execute(command); }, @@ -105,8 +103,6 @@ mindplot.StandaloneActionDispatcher = new Class({ }; var command = new mindplot.commands.GenericFunctionCommand(commandFunc, topicIds, fontFamily); - command.desc = "changeFontFamilyToTopic"; - this.execute(command); }, @@ -122,7 +118,6 @@ mindplot.StandaloneActionDispatcher = new Class({ var command = new mindplot.commands.GenericFunctionCommand(commandFunc, topicsIds, color); command.discardDuplicated = "fontColorCommandId"; - command.desc = "changeFontColorToTopic"; this.execute(command); }, @@ -138,8 +133,6 @@ mindplot.StandaloneActionDispatcher = new Class({ var command = new mindplot.commands.GenericFunctionCommand(commandFunc, topicsIds, color); command.discardDuplicated = "backColor"; - command.desc = "changeBackgroundColorToTopic"; - this.execute(command); }, @@ -155,8 +148,6 @@ mindplot.StandaloneActionDispatcher = new Class({ var command = new mindplot.commands.GenericFunctionCommand(commandFunc, topicsIds, color); command.discardDuplicated = "borderColorCommandId"; - command.desc = "changeBorderColorToTopic"; - this.execute(command); }, @@ -173,8 +164,6 @@ mindplot.StandaloneActionDispatcher = new Class({ }; var command = new mindplot.commands.GenericFunctionCommand(commandFunc, topicsIds, size); - command.desc = "changeFontSizeToTopic"; - this.execute(command); }, @@ -189,8 +178,6 @@ mindplot.StandaloneActionDispatcher = new Class({ }; var command = new mindplot.commands.GenericFunctionCommand(commandFunc, topicsIds, shapeType); - command.desc = "changeShapeTypeToTopic"; - this.execute(command); }, @@ -207,8 +194,6 @@ mindplot.StandaloneActionDispatcher = new Class({ }; var command = new mindplot.commands.GenericFunctionCommand(commandFunc, topicsIds); - command.desc = "changeFontWeightToTopic"; - this.execute(command); }, @@ -221,8 +206,6 @@ mindplot.StandaloneActionDispatcher = new Class({ }; var command = new mindplot.commands.GenericFunctionCommand(commandFunc, topicsIds, collapse); - command.desc = "shrinkBranch"; - this.execute(command, false); }, diff --git a/mindplot/src/main/javascript/commands/GenericFunctionCommand.js b/mindplot/src/main/javascript/commands/GenericFunctionCommand.js index 149fce73..492fad4a 100644 --- a/mindplot/src/main/javascript/commands/GenericFunctionCommand.js +++ b/mindplot/src/main/javascript/commands/GenericFunctionCommand.js @@ -32,19 +32,26 @@ mindplot.commands.GenericFunctionCommand = new Class({ execute:function (commandContext) { if (!this.applied) { - // @Todo: Debug hack. Remove - var topics; + var topics = null; try { topics = commandContext.findTopics(this._topicsId); } catch (e) { - throw new Error(e + "," + this._commandFunc + "," + this._commandFunc.desc); + if (this._commandFunc.commandType != "changeTextToTopic") { + // Workaround: For some reason, there is a combination of events that involves + // making some modification and firing out out focus. This is causing + // that a remove node try to be removed. In some other life, I will come with the solution. + throw e; + } } - topics.each(function (topic) { - var oldValue = this._commandFunc(topic, this._value); - this._oldValues.push(oldValue); - }.bind(this)); + if (topics != null) { + topics.each(function (topic) { + var oldValue = this._commandFunc(topic, this._value); + this._oldValues.push(oldValue); + }.bind(this)); + } this.applied = true; + } else { throw "Command can not be applied two times in a row."; }