diff --git a/mindplot/pom.xml b/mindplot/pom.xml
index 17e5f4b5..d8d7f267 100644
--- a/mindplot/pom.xml
+++ b/mindplot/pom.xml
@@ -55,6 +55,9 @@
+
+
+
diff --git a/mindplot/src/main/javascript/BaseCommandDispatcher.js b/mindplot/src/main/javascript/ActionDispatcher.js
similarity index 59%
rename from mindplot/src/main/javascript/BaseCommandDispatcher.js
rename to mindplot/src/main/javascript/ActionDispatcher.js
index 696f89bd..22a3c267 100644
--- a/mindplot/src/main/javascript/BaseCommandDispatcher.js
+++ b/mindplot/src/main/javascript/ActionDispatcher.js
@@ -16,7 +16,8 @@
* limitations under the License.
*/
-mindplot.BaseCommandDispatcher = new Class({
+//noinspection JSUnusedLocalSymbols
+mindplot.ActionDispatcher = new Class({
initialize: function() {
},
@@ -41,19 +42,15 @@ mindplot.BaseCommandDispatcher = new Class({
throw "method must be implemented.";
},
- changeIcon: function(topicId, iconId, iconType) {
+ deleteTopics: function(topicsIds) {
throw "method must be implemented.";
},
- deleteTopic: function(topicsIds) {
+ dragTopic: function(topicId, position, order, parentTopic) {
throw "method must be implemented.";
},
- dragTopic: function(topicId) {
- throw "method must be implemented.";
- },
-
- moveControlPoint: function(trlPointController, point) {
+ moveControlPoint: function(ctrlPoint, point) {
throw "method must be implemented.";
},
@@ -65,8 +62,46 @@ mindplot.BaseCommandDispatcher = new Class({
throw "method must be implemented.";
},
- removeNodeFromTopic: function(topicId) {
+ removeNoteFromTopic: function(topicId) {
throw "method must be implemented.";
+ },
+
+ changeFontFamilyToTopic: function(topicIds, fontFamily) {
+ throw "method must be implemented.";
+ },
+
+ changeFontStyleToTopic: function(topicsIds) {
+ throw "method must be implemented.";
+ },
+
+ changeFontColorToTopic: function(topicsIds, color) {
+ throw "method must be implemented.";
+ },
+
+ changeBackgroundColorToTopic: function(topicsIds, color) {
+ throw "method must be implemented.";
+ },
+
+ changeBorderColorToTopic: function(topicsIds, color) {
+ throw "method must be implemented.";
+ },
+
+ changeShapeToTopic : function(topicsIds, shapeType) {
+ throw "method must be implemented.";
+ },
+
+ changeFontWeightToTopic : function(topicsIds) {
+ throw "method must be implemented.";
+
}
+
});
+mindplot.ActionDispatcher.setInstance = function(dispatcher) {
+ mindplot.ActionDispatcher._instance = dispatcher;
+};
+
+mindplot.ActionDispatcher.getInstance = function() {
+ return mindplot.ActionDispatcher._instance;
+};
+
diff --git a/mindplot/src/main/javascript/BrixActionDispatcher.js b/mindplot/src/main/javascript/BrixActionDispatcher.js
new file mode 100644
index 00000000..63c59009
--- /dev/null
+++ b/mindplot/src/main/javascript/BrixActionDispatcher.js
@@ -0,0 +1,26 @@
+/*
+ * Copyright [2011] [wisemapping]
+ *
+ * Licensed under WiseMapping Public License, Version 1.0 (the "License").
+ * It is basically the Apache License, Version 2.0 (the "License") plus the
+ * "powered by wisemapping" text requirement on every single page;
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the license at
+ *
+ * http://www.wisemapping.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+mindplot.BrixActionDispatcher = new Class({
+ Extends: mindplot.ActionDispatcher,
+ initialize: function(designer) {
+ $assert(designer, "designer can not be null");
+
+ }
+});
+
diff --git a/mindplot/src/main/javascript/ControlPoint.js b/mindplot/src/main/javascript/ControlPoint.js
index cf8c4c2b..59214bee 100644
--- a/mindplot/src/main/javascript/ControlPoint.js
+++ b/mindplot/src/main/javascript/ControlPoint.js
@@ -113,8 +113,10 @@ mindplot.ControlPoint = new Class({
_mouseUp : function(event, point) {
this._workspace.getScreenManager().removeEventListener('mousemove', this._mouseMoveFunction);
this._workspace.getScreenManager().removeEventListener('mouseup', this._mouseUpFunction);
- var command = new mindplot.commands.MoveControlPointCommand(this, point);
- designer._actionRunner.execute(command); //todo:Uggly!! designer is global!!
+
+ var actionDispatcher = mindplot.ActionDispatcher.getInstance();
+ actionDispatcher.moveControlPoint(this, point);
+
this._isBinded = false;
/*event.preventDefault();
event.stop();
diff --git a/mindplot/src/main/javascript/DesignerActionRunner.js b/mindplot/src/main/javascript/DesignerActionRunner.js
index d7a20871..ef4980c6 100644
--- a/mindplot/src/main/javascript/DesignerActionRunner.js
+++ b/mindplot/src/main/javascript/DesignerActionRunner.js
@@ -16,8 +16,10 @@
* limitations under the License.
*/
+// @Todo: Why the whole desginer ?. Must decouple this...
mindplot.DesignerActionRunner = new Class({
initialize: function(designer) {
+ $assert(designer, "designer can not be null");
this._designer = designer;
this._undoManager = new mindplot.DesignerUndoManager();
this._context = new mindplot.CommandContext(this._designer);
@@ -124,11 +126,3 @@ mindplot.CommandContext = new Class({
return this._designer.getSelectedRelationshipLines();
}
});
-
-mindplot.DesignerActionRunner.setInstance = function(actionRunner) {
- mindplot.DesignerActionRunner._instance = actionRunner;
-};
-
-mindplot.DesignerActionRunner.getInstance = function() {
- return mindplot.DesignerActionRunner._instance;
-};
diff --git a/mindplot/src/main/javascript/DragTopic.js b/mindplot/src/main/javascript/DragTopic.js
index 820ec4a3..541f3edd 100644
--- a/mindplot/src/main/javascript/DragTopic.js
+++ b/mindplot/src/main/javascript/DragTopic.js
@@ -1,239 +1,203 @@
/*
-* Copyright [2011] [wisemapping]
-*
-* Licensed under WiseMapping Public License, Version 1.0 (the "License").
-* It is basically the Apache License, Version 2.0 (the "License") plus the
-* "powered by wisemapping" text requirement on every single page;
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the license at
-*
-* http://www.wisemapping.org/license
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
+ * Copyright [2011] [wisemapping]
+ *
+ * Licensed under WiseMapping Public License, Version 1.0 (the "License").
+ * It is basically the Apache License, Version 2.0 (the "License") plus the
+ * "powered by wisemapping" text requirement on every single page;
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the license at
+ *
+ * http://www.wisemapping.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
-mindplot.DragTopic = function(dragShape, draggedNode)
-{
- $assert(dragShape, 'Rect can not be null.');
- $assert(draggedNode, 'draggedNode can not be null.');
+mindplot.DragTopic = new Class({
+ initialize:function(dragShape, draggedNode) {
+ $assert(dragShape, 'Rect can not be null.');
+ $assert(draggedNode, 'draggedNode can not be null.');
- this._elem2d = dragShape;
- this._order = null;
- this._draggedNode = draggedNode;
- this._position = new core.Point();
-};
+ this._elem2d = dragShape;
+ this._order = null;
+ this._draggedNode = draggedNode;
+ this._position = new core.Point();
+ },
-mindplot.DragTopic.initialize = function(workspace)
-{
+ setOrder : function(order) {
+ this._order = order;
+ },
+
+ setPosition : function(x, y) {
+ this._position.setValue(x, y);
+
+ // Elements are positioned in the center.
+ // All topic element must be positioned based on the innerShape.
+ var draggedNode = this._draggedNode;
+ var size = draggedNode.getSize();
+
+ var cx = Math.ceil(x - (size.width / 2));
+ var cy = Math.ceil(y - (size.height / 2));
+
+ // Update visual position.
+ this._elem2d.setPosition(cx, cy);
+ },
+
+ getInnerShape : function() {
+ return this._elem2d;
+ },
+
+ disconnect : function(workspace) {
+ // Clear connection line ...
+ var dragPivot = this._getDragPivot();
+ dragPivot.disconnect(workspace);
+ },
+
+ canBeConnectedTo : function(targetTopic) {
+ $assert(targetTopic, 'parent can not be null');
+
+ var result = true;
+ if (!targetTopic.areChildrenShrinked() && !targetTopic.isCollapsed()) {
+ // Dragged node can not be connected to himself.
+ if (targetTopic == this._draggedNode) {
+ result = false;
+ } else {
+ var draggedNode = this.getDraggedTopic();
+ var topicPosition = this.getPosition();
+
+ var targetTopicModel = targetTopic.getModel();
+ var childTopicModel = draggedNode.getModel();
+
+ result = targetTopicModel.canBeConnected(childTopicModel, topicPosition, 18);
+ }
+ } else {
+ result = false;
+ }
+ return result;
+ },
+
+ connectTo : function(parent) {
+ $assert(parent, 'Parent connection node can not be null.');
+
+ var dragPivot = this._getDragPivot();
+ dragPivot.connectTo(parent);
+ },
+
+ getDraggedTopic : function() {
+ return this._draggedNode;
+ },
+
+
+ removeFromWorkspace : function(workspace) {
+ // Remove drag shadow.
+ workspace.removeChild(this._elem2d);
+
+ // Remove pivot shape. To improve performace it will not be removed. Only the visilility will be changed.
+ var dragPivot = this._getDragPivot();
+ dragPivot.setVisibility(false);
+ },
+
+ addToWorkspace : function(workspace) {
+ workspace.appendChild(this._elem2d);
+ var dragPivot = this._getDragPivot();
+
+ dragPivot.addToWorkspace(workspace);
+ dragPivot.setVisibility(true);
+ },
+
+ _getDragPivot : function() {
+ return mindplot.DragTopic.__getDragPivot();
+ },
+
+ getPosition:function() {
+ return this._position;
+ }
+ ,
+
+ isDragTopic : function() {
+ return true;
+ },
+
+ updateDraggedTopic : function(workspace) {
+ $assert(workspace, 'workspace can not be null');
+
+ var dragPivot = this._getDragPivot();
+ var draggedTopic = this.getDraggedTopic();
+
+ var isDragConnected = this.isConnected();
+ // @Todo: Remove this static ...
+ var actionDispatcher = mindplot.ActionDispatcher.getInstance();
+ var topicId = draggedTopic.getId();
+
+ if (isDragConnected) {
+
+ var targetTopic = this.getConnectedToTopic();
+ if (targetTopic.getType() == mindplot.NodeModel.CENTRAL_TOPIC_TYPE) {
+ // Update topic position ...
+ var dragPivotPosition = dragPivot.getPosition();
+
+ // Must position the dragged topic taking into account the current node size.
+ var pivotSize = dragPivot.getSize();
+ var draggedTopicSize = draggedTopic.getSize();
+ var xOffset = draggedTopicSize.width - pivotSize.width;
+ xOffset = Math.round(xOffset / 2);
+
+ if (dragPivotPosition.x > 0) {
+ dragPivotPosition.x = parseInt(dragPivotPosition.x) + xOffset;
+ }
+ else {
+ dragPivotPosition.x = parseInt(dragPivotPosition.x) - xOffset;
+ }
+ // Set new position ...
+ actionDispatcher.dragTopic(topicId, dragPivotPosition, null, targetTopic);
+
+ } else {
+ // Main topic connections can be positioned only with the order ...
+ actionDispatcher.dragTopic(topicId, null, this._order, targetTopic);
+ }
+ } else {
+
+ // If the node is not connected, positionate based on the original drag topic position.
+ var dragPosition = this.getPosition();
+ actionDispatcher.dragTopic(topicId, dragPosition);
+ }
+ },
+
+ setBoardPosition : function(point) {
+ $assert(point, 'point can not be null');
+ var dragPivot = this._getDragPivot();
+ dragPivot.setPosition(point);
+ },
+
+ getConnectedToTopic : function() {
+ var dragPivot = this._getDragPivot();
+ return dragPivot.getTargetTopic();
+ },
+
+ isConnected : function() {
+ return this.getConnectedToTopic() != null;
+ }
+
+});
+
+mindplot.DragTopic.PIVOT_SIZE = {width:50,height:10};
+
+mindplot.DragTopic.init = function(workspace) {
+
+ $assert(workspace, "workspace can not be null");
var pivot = mindplot.DragTopic.__getDragPivot();
workspace.appendChild(pivot);
-};
+}
-mindplot.DragTopic.prototype.setOrder = function(order)
-{
- this._order = order;
-};
-
-mindplot.DragTopic.prototype.setPosition = function(x, y)
-{
- this._position.setValue(x, y);
-
- // Elements are positioned in the center.
- // All topic element must be positioned based on the innerShape.
- var draggedNode = this._draggedNode;
- var size = draggedNode.getSize();
-
- var cx = Math.ceil(x - (size.width / 2));
- var cy = Math.ceil(y - (size.height / 2));
-
- // Update visual position.
- this._elem2d.setPosition(cx, cy);
-};
-
-mindplot.DragTopic.prototype.getInnerShape = function()
-{
- return this._elem2d;
-};
-
-mindplot.DragTopic.prototype.disconnect = function(workspace)
-{
- // Clear connection line ...
- var dragPivot = this._getDragPivot();
- dragPivot.disconnect(workspace);
-};
-
-mindplot.DragTopic.prototype.canBeConnectedTo = function(targetTopic)
-{
- $assert(targetTopic, 'parent can not be null');
-
- var result = true;
- if (!targetTopic.areChildrenShrinked() && !targetTopic.isCollapsed())
- {
- // Dragged node can not be connected to himself.
- if (targetTopic == this._draggedNode)
- {
- result = false;
- } else
- {
- var draggedNode = this.getDraggedTopic();
- var topicPosition = this.getPosition();
-
- var targetTopicModel = targetTopic.getModel();
- var childTopicModel = draggedNode.getModel();
-
- result = targetTopicModel.canBeConnected(childTopicModel, topicPosition, 18);
- }
- } else
- {
- result = false;
- }
- return result;
-};
-
-mindplot.DragTopic.prototype.connectTo = function(parent)
-{
- $assert(parent, 'Parent connection node can not be null.');
-
- var dragPivot = this._getDragPivot();
- dragPivot.connectTo(parent);
-};
-
-mindplot.DragTopic.prototype.getDraggedTopic = function()
-{
- return this._draggedNode;
-};
-
-
-mindplot.DragTopic.prototype.removeFromWorkspace = function(workspace)
-{
- // Remove drag shadow.
- workspace.removeChild(this._elem2d);
-
- // Remove pivot shape. To improve performace it will not be removed. Only the visilility will be changed.
- var dragPivot = this._getDragPivot();
- dragPivot.setVisibility(false);
-};
-
-mindplot.DragTopic.prototype.addToWorkspace = function(workspace)
-{
- workspace.appendChild(this._elem2d);
- var dragPivot = this._getDragPivot();
-
- dragPivot.addToWorkspace(workspace);
- dragPivot.setVisibility(true);
-};
-
-mindplot.DragTopic.prototype._getDragPivot = function()
-{
- return mindplot.DragTopic.__getDragPivot();
-};
-
-mindplot.DragTopic.__getDragPivot = function()
-{
+mindplot.DragTopic.__getDragPivot = function() {
var result = mindplot.DragTopic._dragPivot;
- if (!$defined(result))
- {
+ if (!$defined(result)) {
result = new mindplot.DragPivot();
mindplot.DragTopic._dragPivot = result;
}
return result;
-};
-
-
-mindplot.DragTopic.prototype.getPosition = function()
-{
- return this._position;
-};
-
-mindplot.DragTopic.prototype.isDragTopic = function()
-{
- return true;
-};
-
-mindplot.DragTopic.prototype.updateDraggedTopic = function(workspace)
-{
- $assert(workspace, 'workspace can not be null');
-
- var dragPivot = this._getDragPivot();
- var draggedTopic = this.getDraggedTopic();
-
- var isDragConnected = this.isConnected();
- var actionRunner = mindplot.DesignerActionRunner.getInstance();
- var topicId = draggedTopic.getId();
- var command = new mindplot.commands.DragTopicCommand(topicId);
-
- if (isDragConnected)
- {
-
- var targetTopic = this.getConnectedToTopic();
- if (targetTopic.getType() == mindplot.NodeModel.CENTRAL_TOPIC_TYPE)
- {
- // Update topic position ...
- var dragPivotPosition = dragPivot.getPosition();
-
- // Must position the dragged topic taking into account the current node size.
- var pivotSize = dragPivot.getSize();
- var draggedTopicSize = draggedTopic.getSize();
- var xOffset = draggedTopicSize.width - pivotSize.width;
- xOffset = Math.round(xOffset / 2);
-
- if (dragPivotPosition.x > 0)
- {
- dragPivotPosition.x = parseInt(dragPivotPosition.x) + xOffset;
- }
- else
- {
- dragPivotPosition.x = parseInt(dragPivotPosition.x) - xOffset;
- }
- // Set new position ...
- command.setPosition(dragPivotPosition);
-
- } else
- {
- // Main topic connections can be positioned only with the order ...
- command.setOrder(this._order);
- }
-
- // Set new parent topic ..
- command.setParetTopic(targetTopic);
- } else {
-
- // If the node is not connected, positionate based on the original drag topic position.
- var dragPosition = this.getPosition();
- command = new mindplot.commands.DragTopicCommand(topicId, dragPosition);
- command.setPosition(dragPosition);
- }
- actionRunner.execute(command);
-};
-
-mindplot.DragTopic.prototype.setBoardPosition = function(point)
-{
- $assert(point, 'point can not be null');
- var dragPivot = this._getDragPivot();
- dragPivot.setPosition(point);
-};
-
-
-mindplot.DragTopic.prototype.getBoardPosition = function(point)
-{
- $assert(point, 'point can not be null');
- var dragPivot = this._getDragPivot();
- return dragPivot.getPosition();
-};
-
-mindplot.DragTopic.prototype.getConnectedToTopic = function()
-{
- var dragPivot = this._getDragPivot();
- return dragPivot.getTargetTopic();
-};
-
-mindplot.DragTopic.prototype.isConnected = function()
-{
- return this.getConnectedToTopic() != null;
-};
-
-mindplot.DragTopic.PIVOT_SIZE = {width:50,height:10};
+}
+
\ No newline at end of file
diff --git a/mindplot/src/main/javascript/ImageIcon.js b/mindplot/src/main/javascript/ImageIcon.js
index 695f924e..48d72fcb 100644
--- a/mindplot/src/main/javascript/ImageIcon.js
+++ b/mindplot/src/main/javascript/ImageIcon.js
@@ -16,8 +16,7 @@
* limitations under the License.
*/
-mindplot.ImageIcon = new Class(
- {
+mindplot.ImageIcon = new Class({
Extends:mindplot.Icon,
initialize:function(iconModel, topic, designer) {
$assert(iconModel, 'iconModel can not be null');
@@ -44,16 +43,15 @@ mindplot.ImageIcon = new Class(
if (!$defined(designer._viewMode) || ($defined(designer._viewMode) && !designer._viewMode)) {
- removeImage.addEvent('click', function(event) {
- var actionRunner = designer._actionRunner;
- var command = new mindplot.commands.RemoveIconFromTopicCommand(this._topic.getId(), iconModel);
- actionRunner.execute(command);
+ removeImage.addEvent('click', function() {
+ var actionDispatcher = mindplot.ActionDispatcher.getInstance();
+ actionDispatcher.removeIconFromTopic(this._topic.getId(), iconModel);
tip.forceClose();
}.bindWithEvent(this));
//Icon
var image = this.getImage();
- image.addEventListener('click', function(event) {
+ image.addEventListener('click', function() {
var iconType = iconModel.getIconType();
var newIconType = this._getNextFamilyIconId(iconType);
iconModel.setIconType(newIconType);
@@ -83,7 +81,7 @@ mindplot.ImageIcon = new Class(
}
},
- _getImageUrl : function(iconId) {
+ _getImageUrl : function(iconId) {
return "../icons/" + iconId + ".png";
},
@@ -99,7 +97,6 @@ mindplot.ImageIcon = new Class(
var result = null;
for (var i = 0; i < familyIcons.length && result == null; i++) {
if (familyIcons[i] == iconId) {
- var nextIconId;
//Is last one?
if (i == (familyIcons.length - 1)) {
result = familyIcons[0];
@@ -164,7 +161,7 @@ mindplot.ImageIcon.prototype.ICON_FAMILIES = [
{"id": "bullet", "icons" : ["bullet_black","bullet_blue","bullet_green","bullet_orange","bullet_red","bullet_pink","bullet_purple"]},
{"id": "tag", "icons" : ["tag_blue","tag_green","tag_orange","tag_red","tag_pink","tag_yellow"]},
{"id": "object", "icons" : ["object_bell","object_clanbomber","object_key","object_pencil","object_phone","object_magnifier","object_clip","object_music","object_star","object_wizard","object_house","object_cake","object_camera","object_palette","object_rainbow"]}
-]
+];
diff --git a/mindplot/src/main/javascript/LinkIcon.js b/mindplot/src/main/javascript/LinkIcon.js
index 3d6c38d2..29b34173 100644
--- a/mindplot/src/main/javascript/LinkIcon.js
+++ b/mindplot/src/main/javascript/LinkIcon.js
@@ -90,8 +90,9 @@ mindplot.LinkIcon = new Class({
removeBtn.setStyle("margin-left", "3px");
removeBtn.addEvent('click', function(event) {
- var command = new mindplot.commands.RemoveLinkFromTopicCommand(this._topic.getId());
- designer._actionRunner.execute(command);
+
+ var actionDispatcher = mindplot.ActionDispatcher.getInstance();
+ actionDispatcher.removeLinkFromTopic(this._topic.getId());
bubbleTip.forceClose();
}.bindWithEvent(this));
@@ -148,7 +149,7 @@ mindplot.LinkIcon = new Class({
});
},
- getUrl : function() {
+ getUrl : function() {
return this._url;
},
diff --git a/mindplot/src/main/javascript/LocalActionDispatcher.js b/mindplot/src/main/javascript/LocalActionDispatcher.js
new file mode 100644
index 00000000..111fc6ec
--- /dev/null
+++ b/mindplot/src/main/javascript/LocalActionDispatcher.js
@@ -0,0 +1,209 @@
+/*
+ * Copyright [2011] [wisemapping]
+ *
+ * Licensed under WiseMapping Public License, Version 1.0 (the "License").
+ * It is basically the Apache License, Version 2.0 (the "License") plus the
+ * "powered by wisemapping" text requirement on every single page;
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the license at
+ *
+ * http://www.wisemapping.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+mindplot.LocalActionDispatcher = new Class({
+ Extends: mindplot.ActionDispatcher,
+ initialize: function(designer) {
+ $assert(designer, "designer can not be null");
+ this._actionRunner = new mindplot.DesignerActionRunner(designer);
+ },
+
+ addIconToTopic: function(topicId, iconType) {
+ var command = new mindplot.commands.AddIconToTopicCommand(topicId, iconType);
+ this.execute(command);
+ },
+
+ addLinkToTopic: function(topicId, url) {
+ var command = new mindplot.commands.AddLinkToTopicCommand(topicId, url);
+ this.execute(command);
+ },
+
+ addTopic:function(model, parentTopicId, animated) {
+ var command = new mindplot.commands.AddTopicCommand(model, parentTopicId, animated);
+ this.execute(command);
+ },
+
+ addNoteToTopic: function(topicId, text) {
+ var command = new mindplot.commands.AddNoteToTopicCommand(topicId, text);
+ this.execute(command);
+ },
+
+ addRelationship: function(model, mindmap) {
+ var command = new mindplot.commands.AddRelationshipCommand(model, mindmap);
+ this.execute(command);
+ },
+
+ deleteTopics: function(topicsIds) {
+ var command = new mindplot.commands.DeleteTopicCommand(topicsIds);
+ this.execute(command);
+ },
+
+ dragTopic: function(topicId, position, order, parentTopic) {
+ var command = new mindplot.commands.DragTopicCommand(topicId, position, order, parentTopic);
+ this.execute(command);
+ },
+
+ moveControlPoint: function(ctrlPoint, point) {
+ var command = new mindplot.commands.MoveControlPointCommand(ctrlPoint, point);
+ this.execute(command);
+ },
+
+ removeIconFromTopic: function(topicId, iconModel) {
+ var command = new mindplot.commands.RemoveIconFromTopicCommand(topicId, iconModel);
+ this.execute(command);
+ },
+ removeLinkFromTopic: function(topicId) {
+ var command = new mindplot.commands.RemoveLinkFromTopicCommand(topicId);
+ this.execute(command);
+ },
+
+ removeNoteFromTopic: function(topicId) {
+ var command = new mindplot.commands.RemoveNoteFromTopicCommand(topicId);
+ this.execute(command);
+ },
+ changeFontStyleToTopic: function(topicsIds) {
+
+ var commandFunc = function(topic) {
+ var result = topic.getFontStyle();
+ var style = (result == "italic") ? "normal" : "italic";
+ topic.setFontStyle(style, true);
+ return result;
+ };
+ var command = new mindplot.commands.GenericFunctionCommand(commandFunc, topicsIds);
+ this._actionRunner.execute(command);
+
+ },
+
+ changeFontFamilyToTopic: function(topicIds, fontFamily) {
+ $assert(topicIds, "topicIds can not be null");
+ $assert(fontFamily, "fontFamily can not be null");
+
+
+ var commandFunc = function(topic, fontFamily) {
+ var result = topic.getFontFamily();
+ topic.setFontFamily(fontFamily, true);
+
+ core.Executor.instance.delay(topic.updateNode, 0, topic);
+ return result;
+ };
+
+ var command = new mindplot.commands.GenericFunctionCommand(commandFunc, topicIds, fontFamily);
+ this.execute(command);
+ },
+
+ changeFontColorToTopic: function(topicsIds, color) {
+ $assert(topicsIds, "topicIds can not be null");
+ $assert(color, "color can not be null");
+
+ var commandFunc = function(topic, color) {
+ var result = topic.getFontColor();
+ topic.setFontColor(color, true);
+ return result;
+ };
+
+ var command = new mindplot.commands.GenericFunctionCommand(commandFunc, topicsIds, color);
+ command.discartDuplicated = "fontColorCommandId";
+ this.execute(command);
+ },
+
+ changeBackgroundColorToTopic: function(topicsIds, color) {
+ $assert(topicsIds, "topicIds can not be null");
+ $assert(color, "color can not be null");
+
+ var commandFunc = function(topic, color) {
+ var result = topic.getBackgroundColor();
+ topic.setBackgroundColor(color);
+ return result;
+ };
+
+ var command = new mindplot.commands.GenericFunctionCommand(commandFunc, topicsIds, color);
+ command.discartDuplicated = "backColor";
+ this.execute(command);
+ },
+
+ changeBorderColorToTopic : function(topicsIds, color) {
+ $assert(topicsIds, "topicIds can not be null");
+ $assert(color, "topicIds can not be null");
+
+ var commandFunc = function(topic, color) {
+ var result = topic.getBorderColor();
+ topic.setBorderColor(color);
+ return result;
+ };
+
+ var command = new mindplot.commands.GenericFunctionCommand(commandFunc, topicsIds, color);
+ command.discartDuplicated = "borderColorCommandId";
+ this.execute(command);
+ },
+
+ changeFontSizeToTopic : function(topicsIds, size) {
+ $assert(topicsIds, "topicIds can not be null");
+ $assert(size, "size can not be null");
+
+ var commandFunc = function(topic, size) {
+ var result = topic.getFontSize();
+ topic.setFontSize(size, true);
+
+ core.Executor.instance.delay(topic.updateNode, 0, topic);
+ return result;
+ };
+
+ var command = new mindplot.commands.GenericFunctionCommand(commandFunc, topicsIds, size);
+ this.execute(command);
+ },
+
+ changeShapeToTopic : function(topicsIds, shapeType) {
+ $assert(topicsIds, "topicsIds can not be null");
+ $assert(shapeType, "shapeType can not be null");
+
+ var commandFunc = function(topic, shapeType) {
+ var result = topic.getShapeType();
+ topic.setShapeType(shapeType, true);
+ return result;
+ };
+
+ var command = new mindplot.commands.GenericFunctionCommand(commandFunc, topicsIds, shapeType);
+ this.execute(command);
+ },
+
+ changeFontWeightToTopic : function(topicsIds) {
+ $assert(topicsIds, "topicsIds can not be null");
+
+ var commandFunc = function(topic) {
+ var result = topic.getFontWeight();
+ var weight = (result == "bold") ? "normal" : "bold";
+ topic.setFontWeight(weight, true);
+
+ core.Executor.instance.delay(topic.updateNode, 0, topic);
+ /*var updated = function() {
+ topic.updateNode();
+ };
+ updated.delay(0);*/
+ return result;
+ };
+
+ var command = new mindplot.commands.GenericFunctionCommand(commandFunc, topicsIds);
+ this.execute(command);
+ },
+
+ execute:function(command) {
+ this._actionRunner.execute(command);
+ }
+
+});
+
diff --git a/mindplot/src/main/javascript/LocalCommandDispatcher.js b/mindplot/src/main/javascript/LocalCommandDispatcher.js
deleted file mode 100644
index 696f89bd..00000000
--- a/mindplot/src/main/javascript/LocalCommandDispatcher.js
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright [2011] [wisemapping]
- *
- * Licensed under WiseMapping Public License, Version 1.0 (the "License").
- * It is basically the Apache License, Version 2.0 (the "License") plus the
- * "powered by wisemapping" text requirement on every single page;
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the license at
- *
- * http://www.wisemapping.org/license
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-mindplot.BaseCommandDispatcher = new Class({
-
- initialize: function() {
- },
-
- addIconToTopic: function(topicId, iconType) {
- throw "method must be implemented.";
- },
-
- addLinkToTopic: function(topicId, url) {
- throw "method must be implemented.";
- },
-
- addNoteToTopic: function(topicId, text) {
- throw "method must be implemented.";
- },
-
- addRelationship: function(model, mindmap) {
- throw "method must be implemented.";
- },
-
- addTopic: function(model, parentTopicId, animated) {
- throw "method must be implemented.";
- },
-
- changeIcon: function(topicId, iconId, iconType) {
- throw "method must be implemented.";
- },
-
- deleteTopic: function(topicsIds) {
- throw "method must be implemented.";
- },
-
- dragTopic: function(topicId) {
- throw "method must be implemented.";
- },
-
- moveControlPoint: function(trlPointController, point) {
- throw "method must be implemented.";
- },
-
- removeIconFromTopic: function(topicId, iconModel) {
- throw "method must be implemented.";
- },
-
- removeLinkFromTopic: function(topicId) {
- throw "method must be implemented.";
- },
-
- removeNodeFromTopic: function(topicId) {
- throw "method must be implemented.";
- }
-});
-
diff --git a/mindplot/src/main/javascript/MindmapDesigner.js b/mindplot/src/main/javascript/MindmapDesigner.js
index 63871ea5..56ce182e 100644
--- a/mindplot/src/main/javascript/MindmapDesigner.js
+++ b/mindplot/src/main/javascript/MindmapDesigner.js
@@ -22,9 +22,11 @@ mindplot.MindmapDesigner = new Class({
$assert(profile.zoom, "zoom must be defined");
$assert(divElement, "divElement must be defined");
- // Undo manager ...
- this._actionRunner = new mindplot.DesignerActionRunner(this);
- mindplot.DesignerActionRunner.setInstance(this._actionRunner);
+ // Dispatcher manager ...
+ // @Todo: Remove this static. Sucks...
+ this._actionDispatcher = new mindplot.LocalActionDispatcher(this);
+ mindplot.ActionDispatcher.setInstance(this._actionDispatcher);
+
// Initial Zoom
this._zoom = profile.zoom;
@@ -39,21 +41,14 @@ mindplot.MindmapDesigner = new Class({
var editorClass = mindplot.TextEditorFactory.getTextEditorFromName(mindplot.EditorOptions.textEditor);
this._editor = new editorClass(this, this._actionRunner);
-
// Init layout managers ...
this._topics = [];
-// var layoutManagerClass = mindplot.layout.LayoutManagerFactory.getManagerByName(mindplot.EditorOptions.LayoutManager);
-// this._layoutManager = new layoutManagerClass(this);
this._layoutManager = new mindplot.layout.OriginalLayoutManager(this);
// Register handlers..
this._registerEvents();
this._relationships = {};
this._events = {};
-
- // Action !
-
-
},
_getTopics : function() {
@@ -112,8 +107,7 @@ mindplot.MindmapDesigner = new Class({
var centralTopicId = centralTopic.getId();
// Execute action ...
- var command = new mindplot.commands.AddTopicCommand(model, centralTopicId, true);
- this._actionRunner.execute(command);
+ this._actionDispatcher.addTopic(model, centralTopicId, true);
}
}.bind(this));
}
@@ -216,8 +210,9 @@ mindplot.MindmapDesigner = new Class({
var parentTopicId = centalTopic.getId();
var childModel = centalTopic.createChildModel(this._layoutManager.needsPrepositioning());
- var command = new mindplot.commands.AddTopicCommand(childModel, parentTopicId, true);
- this._actionRunner.execute(command);
+ // Execute event ...
+ this._actionDispatcher.addTopic(childModel, parentTopicId, true);
+
},
createSiblingForSelectedNode : function() {
@@ -243,9 +238,8 @@ mindplot.MindmapDesigner = new Class({
var parentTopic = topic.getOutgoingConnectedTopic();
var siblingModel = topic.createSiblingModel(this._layoutManager.needsPrepositioning());
var parentTopicId = parentTopic.getId();
- var command = new mindplot.commands.AddTopicCommand(siblingModel, parentTopicId, true);
- this._actionRunner.execute(command);
+ this._actionDispatcher.addTopic(siblingModel, parentTopicId, true);
}
},
@@ -305,8 +299,8 @@ mindplot.MindmapDesigner = new Class({
var mindmap = this.getMindmap();
var model = mindmap.createRelationship(fromNode.getModel().getId(), toNode.getModel().getId());
- var command = new mindplot.commands.AddRelationshipCommand(model, mindmap);
- this._actionRunner.execute(command);
+ this._actionDispatcher.addRelationship(model, mindmap);
+
},
needsSave : function() {
@@ -558,8 +552,7 @@ mindplot.MindmapDesigner = new Class({
var validateError = 'Central topic can not be deleted.';
var selectedObjects = this._getValidSelectedObjectsIds(validateFunc, validateError);
if (selectedObjects.nodes.length > 0 || selectedObjects.relationshipLines.length > 0) {
- var command = new mindplot.commands.DeleteTopicCommand(selectedObjects);
- this._actionRunner.execute(command);
+ this._actionDispatcher.deleteTopics(selectedObjects);
}
},
@@ -568,19 +561,8 @@ mindplot.MindmapDesigner = new Class({
var validSelectedObjects = this._getValidSelectedObjectsIds();
var topicsIds = validSelectedObjects.nodes;
if (topicsIds.length > 0) {
- var commandFunc = function(topic, font) {
- var result = topic.getFontFamily();
- topic.setFontFamily(font, true);
+ this._actionDispatcher.changeFontFamilyToTopic(topicsIds, font);
- core.Executor.instance.delay(topic.updateNode, 0, topic);
- /*var updated = function() {
- topic.updateNode();
- };
- updated.delay(0);*/
- return result;
- }
- var command = new mindplot.commands.GenericFunctionCommand(commandFunc, font, topicsIds);
- this._actionRunner.execute(command);
}
},
@@ -588,14 +570,7 @@ mindplot.MindmapDesigner = new Class({
var validSelectedObjects = this._getValidSelectedObjectsIds();
var topicsIds = validSelectedObjects.nodes;
if (topicsIds.length > 0) {
- var commandFunc = function(topic) {
- var result = topic.getFontStyle();
- var style = (result == "italic") ? "normal" : "italic";
- topic.setFontStyle(style, true);
- return result;
- }
- var command = new mindplot.commands.GenericFunctionCommand(commandFunc, "", topicsIds);
- this._actionRunner.execute(command);
+ this._actionDispatcher.changeFontStyleToTopic(topicsIds);
}
},
@@ -603,14 +578,7 @@ mindplot.MindmapDesigner = new Class({
var validSelectedObjects = this._getValidSelectedObjectsIds();
var topicsIds = validSelectedObjects.nodes;
if (topicsIds.length > 0) {
- var commandFunc = function(topic, color) {
- var result = topic.getFontColor();
- topic.setFontColor(color, true);
- return result;
- }
- var command = new mindplot.commands.GenericFunctionCommand(commandFunc, color, topicsIds);
- command.discartDuplicated = "fontColorCommandId";
- this._actionRunner.execute(command);
+ this._actionDispatcher.changeFontColorToTopic(topicsIds, color);
}
},
@@ -619,20 +587,11 @@ mindplot.MindmapDesigner = new Class({
var validateFunc = function(topic) {
return topic.getShapeType() != mindplot.NodeModel.SHAPE_TYPE_LINE
};
- var validateError = 'Color can not be setted to line topics.';
+ var validateError = 'Color can not be set to line topics.';
var validSelectedObjects = this._getValidSelectedObjectsIds(validateFunc, validateError);
- ;
var topicsIds = validSelectedObjects.nodes;
-
if (topicsIds.length > 0) {
- var commandFunc = function(topic, color) {
- var result = topic.getBackgroundColor();
- topic.setBackgroundColor(color);
- return result;
- }
- var command = new mindplot.commands.GenericFunctionCommand(commandFunc, color, topicsIds);
- command.discartDuplicated = "backColor";
- this._actionRunner.execute(command);
+ this._actionDispatcher.changeBackgroundColorToTopic(topicsIds, color);
}
},
@@ -679,20 +638,12 @@ mindplot.MindmapDesigner = new Class({
var validateFunc = function(topic) {
return topic.getShapeType() != mindplot.NodeModel.SHAPE_TYPE_LINE
};
- var validateError = 'Color can not be setted to line topics.';
+ var validateError = 'Color can not be set to line topics.';
var validSelectedObjects = this._getValidSelectedObjectsIds(validateFunc, validateError);
- ;
var topicsIds = validSelectedObjects.nodes;
if (topicsIds.length > 0) {
- var commandFunc = function(topic, color) {
- var result = topic.getBorderColor();
- topic.setBorderColor(color);
- return result;
- }
- var command = new mindplot.commands.GenericFunctionCommand(commandFunc, color, topicsIds);
- command.discartDuplicated = "borderColorCommandId";
- this._actionRunner.execute(command);
+ this._actionDispatcher.changeBorderColorToTopic(topicsIds, color);
}
},
@@ -700,19 +651,7 @@ mindplot.MindmapDesigner = new Class({
var validSelectedObjects = this._getValidSelectedObjectsIds();
var topicsIds = validSelectedObjects.nodes;
if (topicsIds.length > 0) {
- var commandFunc = function(topic, size) {
- var result = topic.getFontSize();
- topic.setFontSize(size, true);
-
- core.Executor.instance.delay(topic.updateNode, 0, topic);
- /*var updated = function() {
- topic.updateNode();
- };
- updated.delay(0);*/
- return result;
- }
- var command = new mindplot.commands.GenericFunctionCommand(commandFunc, size, topicsIds);
- this._actionRunner.execute(command);
+ this._actionDispatcher.changeFontSizeToTopic(topicsIds, size);
}
},
@@ -725,13 +664,7 @@ mindplot.MindmapDesigner = new Class({
var topicsIds = validSelectedObjects.nodes;
if (topicsIds.length > 0) {
- var commandFunc = function(topic, size) {
- var result = topic.getShapeType();
- topic.setShapeType(size, true);
- return result;
- }
- var command = new mindplot.commands.GenericFunctionCommand(commandFunc, shape, topicsIds);
- this._actionRunner.execute(command);
+ this._actionDispatcher.changeShapeToTopic(topicsIds, shape);
}
},
@@ -740,20 +673,7 @@ mindplot.MindmapDesigner = new Class({
var validSelectedObjects = this._getValidSelectedObjectsIds();
var topicsIds = validSelectedObjects.nodes;
if (topicsIds.length > 0) {
- var commandFunc = function(topic) {
- var result = topic.getFontWeight();
- var weight = (result == "bold") ? "normal" : "bold";
- topic.setFontWeight(weight, true);
-
- core.Executor.instance.delay(topic.updateNode, 0, topic);
- /*var updated = function() {
- topic.updateNode();
- };
- updated.delay(0);*/
- return result;
- }
- var command = new mindplot.commands.GenericFunctionCommand(commandFunc, "", topicsIds);
- this._actionRunner.execute(command);
+ this._actionDispatcher.changeFontWeightToTopic(topicsIds);
}
},
@@ -761,9 +681,7 @@ mindplot.MindmapDesigner = new Class({
var validSelectedObjects = this._getValidSelectedObjectsIds();
var topicsIds = validSelectedObjects.nodes;
if (topicsIds.length > 0) {
-
- var command = new mindplot.commands.AddIconToTopicCommand(topicsIds[0], iconType);
- this._actionRunner.execute(command);
+ this._actionDispatcher.addIconToTopic(topicsIds[0], iconType);
}
},
@@ -771,8 +689,7 @@ mindplot.MindmapDesigner = new Class({
var validSelectedObjects = this._getValidSelectedObjectsIds();
var topicsIds = validSelectedObjects.nodes;
if (topicsIds.length > 0) {
- var command = new mindplot.commands.AddLinkToTopicCommand(topicsIds[0], url);
- this._actionRunner.execute(command);
+ this._actionDispatcher.addLinkToTopic(topicsIds[0], url);
}
},
@@ -784,11 +701,11 @@ mindplot.MindmapDesigner = new Class({
if (!$defined(topic._hasLink)) {
var msg = new Element('div');
var urlText = new Element('div').inject(msg);
- urlText.innerHTML = "URL:"
+ urlText.innerHTML = "URL:";
var formElem = new Element('form', {'action': 'none', 'id':'linkFormId'});
var urlInput = new Element('input', {'type': 'text', 'size':30});
urlInput.inject(formElem);
- formElem.inject(msg)
+ formElem.inject(msg);
var okButtonId = "linkOkButtonId";
formElem.addEvent('submit', function(e) {
@@ -824,8 +741,7 @@ mindplot.MindmapDesigner = new Class({
var validSelectedObjects = this._getValidSelectedObjectsIds();
var topicsIds = validSelectedObjects.nodes;
if (topicsIds.length > 0) {
- var command = new mindplot.commands.AddNoteToTopicCommand(topicsIds[0], text);
- this._actionRunner.execute(command);
+ this._actionDispatcher.addNoteToTopic(topicsIds[0], text);
}
},
diff --git a/mindplot/src/main/javascript/Note.js b/mindplot/src/main/javascript/Note.js
index c7c783f4..b0fc6712 100644
--- a/mindplot/src/main/javascript/Note.js
+++ b/mindplot/src/main/javascript/Note.js
@@ -50,8 +50,9 @@ mindplot.Note = new Class({
removeBtn.setStyle("margin-left", "3px");
removeBtn.addEvent('click', function(event) {
- var command = new mindplot.commands.RemoveNoteFromTopicCommand(this._topic.getId());
- designer._actionRunner.execute(command);
+ var actionDispatcher = mindplot.ActionDispatcher.getInstance();
+ actionDispatcher.removeNoteFromTopic(this._topic.getId());
+
bubbleTip.forceClose();
}.bindWithEvent(this));
diff --git a/mindplot/src/main/javascript/SingleCommandDispatcher.js b/mindplot/src/main/javascript/SingleCommandDispatcher.js
deleted file mode 100644
index 7093aa51..00000000
--- a/mindplot/src/main/javascript/SingleCommandDispatcher.js
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright [2011] [wisemapping]
- *
- * Licensed under WiseMapping Public License, Version 1.0 (the "License").
- * It is basically the Apache License, Version 2.0 (the "License") plus the
- * "powered by wisemapping" text requirement on every single page;
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the license at
- *
- * http://www.wisemapping.org/license
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-mindplot.SingleCommandDispatcher = new Class(
-{
- Extends:mindplot.BaseCommandDispatcher,
- initialize: function() {
-
- },
- addIconToTopic: function() {
- throw "method must be implemented.";
- },
- addLinkToTopic: function() {
- throw "method must be implemented.";
- },
- addNoteToTopic: function() {
- throw "method must be implemented.";
- },addRelationship: function() {
- throw "method must be implemented.";
- },addTopic: function() {
- throw "method must be implemented.";
- },changeIcon: function() {
- throw "method must be implemented.";
- },deleteTopic: function() {
- throw "method must be implemented.";
- },dragTopic: function() {
- throw "method must be implemented.";
- },moveControllPoint: function() {
- throw "method must be implemented.";
- } ,removeIconFromTopic: function() {
- throw "method must be implemented.";
- },removeLinkFromTopic: function() {
- throw "method must be implemented.";
- },removeNodeFromTopic: function() {
- throw "method must be implemented.";
- }
-});
-
diff --git a/mindplot/src/main/javascript/TextEditor.js b/mindplot/src/main/javascript/TextEditor.js
index af05a0f8..7cd542a2 100644
--- a/mindplot/src/main/javascript/TextEditor.js
+++ b/mindplot/src/main/javascript/TextEditor.js
@@ -17,11 +17,10 @@
*/
mindplot.TextEditor = new Class({
- initialize:function(designer, actionRunner) {
+ initialize:function(designer) {
this._designer = designer;
this._screenManager = designer.getWorkSpace().getScreenManager();
this._container = this._screenManager.getContainer();
- this._actionRunner = actionRunner;
this._isVisible = false;
//Create editor ui
diff --git a/mindplot/src/main/javascript/commands/AddTopicCommand.js b/mindplot/src/main/javascript/commands/AddTopicCommand.js
index 78817fa4..e55bccf0 100644
--- a/mindplot/src/main/javascript/commands/AddTopicCommand.js
+++ b/mindplot/src/main/javascript/commands/AddTopicCommand.js
@@ -26,10 +26,11 @@ mindplot.commands.AddTopicCommand = new Class(
this._id = mindplot.Command._nextUUID();
this._animated = $defined(animated) ? animated : false;
},
- execute: function(commandContext) {
- // Add a new topic ...
- var topic = commandContext.createTopic(this._model, !this._animated);
+ execute: function(commandContext) {
+
+ // Add a new topic ...
+ var topic = commandContext.createTopic(this._model, !this._animated);
// Connect to topic ...
if ($defined(this._parentId)) {
@@ -49,6 +50,7 @@ mindplot.commands.AddTopicCommand = new Class(
} else
doneFn.attempt();
},
+
undoExecute: function(commandContext) {
// Finally, delete the topic from the workspace ...
var topicId = this._model.getId();
diff --git a/mindplot/src/main/javascript/commands/ChangeIconFromTopicCommand.js b/mindplot/src/main/javascript/commands/ChangeIconFromTopicCommand.js
deleted file mode 100644
index 4d1c6587..00000000
--- a/mindplot/src/main/javascript/commands/ChangeIconFromTopicCommand.js
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright [2011] [wisemapping]
- *
- * Licensed under WiseMapping Public License, Version 1.0 (the "License").
- * It is basically the Apache License, Version 2.0 (the "License") plus the
- * "powered by wisemapping" text requirement on every single page;
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the license at
- *
- * http://www.wisemapping.org/license
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-mindplot.commands.ChangeIconFromTopicCommand = new Class({
- Extends:mindplot.Command,
- initialize: function(topicId, iconId, iconType) {
- $assert(topicId, 'topicId can not be null');
- $assert(iconId, 'iconId can not be null');
- $assert(iconType, 'iconType can not be null');
- this._selectedObjectsIds = topicId;
- this._iconModel = iconId;
- this._iconType = iconType;
- },
- execute: function(commandContext) {
- var topic = commandContext.findTopics(this._selectedObjectsIds)[0];
- var updated = function() {
- topic.removeIcon(this._iconModel);
- topic.updateNode();
- }.bind(this);
- updated.delay(0);
- },
- undoExecute: function(commandContext) {
- var topic = commandContext.findTopics(this._selectedObjectsIds)[0];
- var updated = function() {
- topic.addIcon(this._iconModel, commandContext._designer);
- topic.updateNode();
- }.bind(this);
- updated.delay(0);
- }
-});
\ No newline at end of file
diff --git a/mindplot/src/main/javascript/commands/DragTopicCommand.js b/mindplot/src/main/javascript/commands/DragTopicCommand.js
index 1206dbf0..7f121285 100644
--- a/mindplot/src/main/javascript/commands/DragTopicCommand.js
+++ b/mindplot/src/main/javascript/commands/DragTopicCommand.js
@@ -18,12 +18,15 @@
mindplot.commands.DragTopicCommand = new Class({
Extends:mindplot.Command,
- initialize: function(topicId) {
- $assert(topicId, "topicId must be defined");
- this._selectedObjectsIds = topicId;
- this._parentTopic = null;
- this._position = null;
- this._order = null;
+ initialize: function(topicIds, position, order, parentTopic) {
+ $assert(topicIds, "topicIds must be defined");
+
+ this._selectedObjectsIds = topicIds;
+ if ($defined(parentTopic))
+ this._parentId = parentTopic.getId();
+
+ this._position = position;
+ this._order = order;
this._id = mindplot.Command._nextUUID();
},
execute: function(commandContext) {
@@ -78,19 +81,9 @@ mindplot.commands.DragTopicCommand = new Class({
undoExecute: function(commandContext) {
this.execute(commandContext);
var selectedRelationships = commandContext.getSelectedRelationshipLines();
- selectedRelationships.forEach(function(relationshipLine, index) {
+ selectedRelationships.forEach(function(relationshipLine) {
relationshipLine.redraw();
});
- },
- setPosition: function(point) {
- this._position = point;
- },
- setParetTopic: function(topic) {
- this._parentId = topic.getId();
-
- },
- setOrder: function(order) {
- this._order = order
}
});
\ No newline at end of file
diff --git a/mindplot/src/main/javascript/commands/GenericFunctionCommand.js b/mindplot/src/main/javascript/commands/GenericFunctionCommand.js
index c17be85d..f9cba3dc 100644
--- a/mindplot/src/main/javascript/commands/GenericFunctionCommand.js
+++ b/mindplot/src/main/javascript/commands/GenericFunctionCommand.js
@@ -18,9 +18,10 @@
mindplot.commands.GenericFunctionCommand = new Class({
Extends:mindplot.Command,
- initialize: function(commandFunc, value, topicsIds) {
+ initialize: function(commandFunc, topicsIds,value) {
$assert(commandFunc, "commandFunc must be defined");
$assert(topicsIds, "topicsIds must be defined");
+
this._value = value;
this._selectedObjectsIds = topicsIds;
this._commandFunc = commandFunc;
diff --git a/mindplot/src/main/javascript/commands/MoveControlPointCommand.js b/mindplot/src/main/javascript/commands/MoveControlPointCommand.js
index a92b2524..ee11efc5 100644
--- a/mindplot/src/main/javascript/commands/MoveControlPointCommand.js
+++ b/mindplot/src/main/javascript/commands/MoveControlPointCommand.js
@@ -19,9 +19,10 @@ mindplot.commands.MoveControlPointCommand = new Class({
Extends:mindplot.Command,
initialize: function(ctrlPointController, point) {
$assert(ctrlPointController, 'line can not be null');
+ $assert(point, 'point can not be null');
+
this._ctrlPointControler = ctrlPointController;
this._line = ctrlPointController._line;
- var model = this._line.getModel();
this._controlPoint = this._ctrlPointControler.getControlPoint(point).clone();
this._oldControlPoint = this._ctrlPointControler.getOriginalCtrlPoint(point).clone();
this._originalEndPoint = this._ctrlPointControler.getOriginalEndPoint(point).clone();
diff --git a/mindplot/src/main/javascript/layout/OriginalLayoutManager.js b/mindplot/src/main/javascript/layout/OriginalLayoutManager.js
index 71e221c7..06248ae4 100644
--- a/mindplot/src/main/javascript/layout/OriginalLayoutManager.js
+++ b/mindplot/src/main/javascript/layout/OriginalLayoutManager.js
@@ -24,12 +24,13 @@ mindplot.layout.OriginalLayoutManager = new Class({
initialize:function(designer, options) {
this.parent(designer, options);
this._dragTopicPositioner = new mindplot.DragTopicPositioner(this);
- // Init dragger manager.
+
+ // Init drag manager.
var workSpace = this.getDesigner().getWorkSpace();
this._dragger = this._buildDragManager(workSpace);
// Add shapes to speed up the loading process ...
- mindplot.DragTopic.initialize(workSpace);
+ mindplot.DragTopic.init(workSpace);
},
prepareNode:function(node, children) {
// Sort children by order to solve adding order in for OriginalLayoutManager...