mirror of
https://bitbucket.org/wisemapping/wisemapping-open-source.git
synced 2024-11-09 00:43:23 +01:00
Start working on ActionDispatcher migration.
This commit is contained in:
parent
6a4a0f68fc
commit
63cda0a170
@ -55,6 +55,9 @@
|
|||||||
<filelist dir="${basedir}/src/main/javascript/" files="Mindmap.js"/>
|
<filelist dir="${basedir}/src/main/javascript/" files="Mindmap.js"/>
|
||||||
<filelist dir="${basedir}/src/main/javascript/" files="NodeModel.js"/>
|
<filelist dir="${basedir}/src/main/javascript/" files="NodeModel.js"/>
|
||||||
<filelist dir="${basedir}/src/main/javascript/" files="RelationshipModel.js"/>
|
<filelist dir="${basedir}/src/main/javascript/" files="RelationshipModel.js"/>
|
||||||
|
<filelist dir="${basedir}/src/main/javascript/" files="ActionDispatcher.js"/>
|
||||||
|
<filelist dir="${basedir}/src/main/javascript/" files="BrixActionDispatcher.js"/>
|
||||||
|
<filelist dir="${basedir}/src/main/javascript/" files="LocalActionDispatcher.js"/>
|
||||||
<filelist dir="${basedir}/src/main/javascript/" files="MindmapDesigner.js"/>
|
<filelist dir="${basedir}/src/main/javascript/" files="MindmapDesigner.js"/>
|
||||||
<filelist dir="${basedir}/src/main/javascript/" files="ScreenManager.js"/>
|
<filelist dir="${basedir}/src/main/javascript/" files="ScreenManager.js"/>
|
||||||
<filelist dir="${basedir}/src/main/javascript/" files="Workspace.js"/>
|
<filelist dir="${basedir}/src/main/javascript/" files="Workspace.js"/>
|
||||||
|
@ -16,7 +16,8 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
mindplot.BaseCommandDispatcher = new Class({
|
//noinspection JSUnusedLocalSymbols
|
||||||
|
mindplot.ActionDispatcher = new Class({
|
||||||
|
|
||||||
initialize: function() {
|
initialize: function() {
|
||||||
},
|
},
|
||||||
@ -41,19 +42,15 @@ mindplot.BaseCommandDispatcher = new Class({
|
|||||||
throw "method must be implemented.";
|
throw "method must be implemented.";
|
||||||
},
|
},
|
||||||
|
|
||||||
changeIcon: function(topicId, iconId, iconType) {
|
deleteTopics: function(topicsIds) {
|
||||||
throw "method must be implemented.";
|
throw "method must be implemented.";
|
||||||
},
|
},
|
||||||
|
|
||||||
deleteTopic: function(topicsIds) {
|
dragTopic: function(topicId, position, order, parentTopic) {
|
||||||
throw "method must be implemented.";
|
throw "method must be implemented.";
|
||||||
},
|
},
|
||||||
|
|
||||||
dragTopic: function(topicId) {
|
moveControlPoint: function(ctrlPoint, point) {
|
||||||
throw "method must be implemented.";
|
|
||||||
},
|
|
||||||
|
|
||||||
moveControlPoint: function(trlPointController, point) {
|
|
||||||
throw "method must be implemented.";
|
throw "method must be implemented.";
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -65,8 +62,46 @@ mindplot.BaseCommandDispatcher = new Class({
|
|||||||
throw "method must be implemented.";
|
throw "method must be implemented.";
|
||||||
},
|
},
|
||||||
|
|
||||||
removeNodeFromTopic: function(topicId) {
|
removeNoteFromTopic: function(topicId) {
|
||||||
throw "method must be implemented.";
|
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;
|
||||||
|
};
|
||||||
|
|
26
mindplot/src/main/javascript/BrixActionDispatcher.js
Normal file
26
mindplot/src/main/javascript/BrixActionDispatcher.js
Normal file
@ -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");
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
@ -113,8 +113,10 @@ mindplot.ControlPoint = new Class({
|
|||||||
_mouseUp : function(event, point) {
|
_mouseUp : function(event, point) {
|
||||||
this._workspace.getScreenManager().removeEventListener('mousemove', this._mouseMoveFunction);
|
this._workspace.getScreenManager().removeEventListener('mousemove', this._mouseMoveFunction);
|
||||||
this._workspace.getScreenManager().removeEventListener('mouseup', this._mouseUpFunction);
|
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;
|
this._isBinded = false;
|
||||||
/*event.preventDefault();
|
/*event.preventDefault();
|
||||||
event.stop();
|
event.stop();
|
||||||
|
@ -16,8 +16,10 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
// @Todo: Why the whole desginer ?. Must decouple this...
|
||||||
mindplot.DesignerActionRunner = new Class({
|
mindplot.DesignerActionRunner = new Class({
|
||||||
initialize: function(designer) {
|
initialize: function(designer) {
|
||||||
|
$assert(designer, "designer can not be null");
|
||||||
this._designer = designer;
|
this._designer = designer;
|
||||||
this._undoManager = new mindplot.DesignerUndoManager();
|
this._undoManager = new mindplot.DesignerUndoManager();
|
||||||
this._context = new mindplot.CommandContext(this._designer);
|
this._context = new mindplot.CommandContext(this._designer);
|
||||||
@ -124,11 +126,3 @@ mindplot.CommandContext = new Class({
|
|||||||
return this._designer.getSelectedRelationshipLines();
|
return this._designer.getSelectedRelationshipLines();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
mindplot.DesignerActionRunner.setInstance = function(actionRunner) {
|
|
||||||
mindplot.DesignerActionRunner._instance = actionRunner;
|
|
||||||
};
|
|
||||||
|
|
||||||
mindplot.DesignerActionRunner.getInstance = function() {
|
|
||||||
return mindplot.DesignerActionRunner._instance;
|
|
||||||
};
|
|
||||||
|
@ -1,239 +1,203 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright [2011] [wisemapping]
|
* Copyright [2011] [wisemapping]
|
||||||
*
|
*
|
||||||
* Licensed under WiseMapping Public License, Version 1.0 (the "License").
|
* Licensed under WiseMapping Public License, Version 1.0 (the "License").
|
||||||
* It is basically the Apache License, Version 2.0 (the "License") plus the
|
* It is basically the Apache License, Version 2.0 (the "License") plus the
|
||||||
* "powered by wisemapping" text requirement on every single page;
|
* "powered by wisemapping" text requirement on every single page;
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
* You may obtain a copy of the license at
|
* You may obtain a copy of the license at
|
||||||
*
|
*
|
||||||
* http://www.wisemapping.org/license
|
* http://www.wisemapping.org/license
|
||||||
*
|
*
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
mindplot.DragTopic = function(dragShape, draggedNode)
|
mindplot.DragTopic = new Class({
|
||||||
{
|
initialize:function(dragShape, draggedNode) {
|
||||||
$assert(dragShape, 'Rect can not be null.');
|
$assert(dragShape, 'Rect can not be null.');
|
||||||
$assert(draggedNode, 'draggedNode can not be null.');
|
$assert(draggedNode, 'draggedNode can not be null.');
|
||||||
|
|
||||||
this._elem2d = dragShape;
|
this._elem2d = dragShape;
|
||||||
this._order = null;
|
this._order = null;
|
||||||
this._draggedNode = draggedNode;
|
this._draggedNode = draggedNode;
|
||||||
this._position = new core.Point();
|
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();
|
var pivot = mindplot.DragTopic.__getDragPivot();
|
||||||
workspace.appendChild(pivot);
|
workspace.appendChild(pivot);
|
||||||
};
|
}
|
||||||
|
|
||||||
mindplot.DragTopic.prototype.setOrder = function(order)
|
mindplot.DragTopic.__getDragPivot = function() {
|
||||||
{
|
|
||||||
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()
|
|
||||||
{
|
|
||||||
var result = mindplot.DragTopic._dragPivot;
|
var result = mindplot.DragTopic._dragPivot;
|
||||||
if (!$defined(result))
|
if (!$defined(result)) {
|
||||||
{
|
|
||||||
result = new mindplot.DragPivot();
|
result = new mindplot.DragPivot();
|
||||||
mindplot.DragTopic._dragPivot = result;
|
mindplot.DragTopic._dragPivot = result;
|
||||||
}
|
}
|
||||||
return 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};
|
|
||||||
|
@ -16,8 +16,7 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
mindplot.ImageIcon = new Class(
|
mindplot.ImageIcon = new Class({
|
||||||
{
|
|
||||||
Extends:mindplot.Icon,
|
Extends:mindplot.Icon,
|
||||||
initialize:function(iconModel, topic, designer) {
|
initialize:function(iconModel, topic, designer) {
|
||||||
$assert(iconModel, 'iconModel can not be null');
|
$assert(iconModel, 'iconModel can not be null');
|
||||||
@ -44,16 +43,15 @@ mindplot.ImageIcon = new Class(
|
|||||||
|
|
||||||
if (!$defined(designer._viewMode) || ($defined(designer._viewMode) && !designer._viewMode)) {
|
if (!$defined(designer._viewMode) || ($defined(designer._viewMode) && !designer._viewMode)) {
|
||||||
|
|
||||||
removeImage.addEvent('click', function(event) {
|
removeImage.addEvent('click', function() {
|
||||||
var actionRunner = designer._actionRunner;
|
var actionDispatcher = mindplot.ActionDispatcher.getInstance();
|
||||||
var command = new mindplot.commands.RemoveIconFromTopicCommand(this._topic.getId(), iconModel);
|
actionDispatcher.removeIconFromTopic(this._topic.getId(), iconModel);
|
||||||
actionRunner.execute(command);
|
|
||||||
tip.forceClose();
|
tip.forceClose();
|
||||||
}.bindWithEvent(this));
|
}.bindWithEvent(this));
|
||||||
|
|
||||||
//Icon
|
//Icon
|
||||||
var image = this.getImage();
|
var image = this.getImage();
|
||||||
image.addEventListener('click', function(event) {
|
image.addEventListener('click', function() {
|
||||||
var iconType = iconModel.getIconType();
|
var iconType = iconModel.getIconType();
|
||||||
var newIconType = this._getNextFamilyIconId(iconType);
|
var newIconType = this._getNextFamilyIconId(iconType);
|
||||||
iconModel.setIconType(newIconType);
|
iconModel.setIconType(newIconType);
|
||||||
@ -83,7 +81,7 @@ mindplot.ImageIcon = new Class(
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
_getImageUrl : function(iconId) {
|
_getImageUrl : function(iconId) {
|
||||||
return "../icons/" + iconId + ".png";
|
return "../icons/" + iconId + ".png";
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -99,7 +97,6 @@ mindplot.ImageIcon = new Class(
|
|||||||
var result = null;
|
var result = null;
|
||||||
for (var i = 0; i < familyIcons.length && result == null; i++) {
|
for (var i = 0; i < familyIcons.length && result == null; i++) {
|
||||||
if (familyIcons[i] == iconId) {
|
if (familyIcons[i] == iconId) {
|
||||||
var nextIconId;
|
|
||||||
//Is last one?
|
//Is last one?
|
||||||
if (i == (familyIcons.length - 1)) {
|
if (i == (familyIcons.length - 1)) {
|
||||||
result = familyIcons[0];
|
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": "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": "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"]}
|
{"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"]}
|
||||||
]
|
];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -90,8 +90,9 @@ mindplot.LinkIcon = new Class({
|
|||||||
removeBtn.setStyle("margin-left", "3px");
|
removeBtn.setStyle("margin-left", "3px");
|
||||||
|
|
||||||
removeBtn.addEvent('click', function(event) {
|
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();
|
bubbleTip.forceClose();
|
||||||
}.bindWithEvent(this));
|
}.bindWithEvent(this));
|
||||||
|
|
||||||
@ -148,7 +149,7 @@ mindplot.LinkIcon = new Class({
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
getUrl : function() {
|
getUrl : function() {
|
||||||
return this._url;
|
return this._url;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
209
mindplot/src/main/javascript/LocalActionDispatcher.js
Normal file
209
mindplot/src/main/javascript/LocalActionDispatcher.js
Normal file
@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
@ -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.";
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
@ -22,9 +22,11 @@ mindplot.MindmapDesigner = new Class({
|
|||||||
$assert(profile.zoom, "zoom must be defined");
|
$assert(profile.zoom, "zoom must be defined");
|
||||||
$assert(divElement, "divElement must be defined");
|
$assert(divElement, "divElement must be defined");
|
||||||
|
|
||||||
// Undo manager ...
|
// Dispatcher manager ...
|
||||||
this._actionRunner = new mindplot.DesignerActionRunner(this);
|
// @Todo: Remove this static. Sucks...
|
||||||
mindplot.DesignerActionRunner.setInstance(this._actionRunner);
|
this._actionDispatcher = new mindplot.LocalActionDispatcher(this);
|
||||||
|
mindplot.ActionDispatcher.setInstance(this._actionDispatcher);
|
||||||
|
|
||||||
|
|
||||||
// Initial Zoom
|
// Initial Zoom
|
||||||
this._zoom = profile.zoom;
|
this._zoom = profile.zoom;
|
||||||
@ -39,21 +41,14 @@ mindplot.MindmapDesigner = new Class({
|
|||||||
var editorClass = mindplot.TextEditorFactory.getTextEditorFromName(mindplot.EditorOptions.textEditor);
|
var editorClass = mindplot.TextEditorFactory.getTextEditorFromName(mindplot.EditorOptions.textEditor);
|
||||||
this._editor = new editorClass(this, this._actionRunner);
|
this._editor = new editorClass(this, this._actionRunner);
|
||||||
|
|
||||||
|
|
||||||
// Init layout managers ...
|
// Init layout managers ...
|
||||||
this._topics = [];
|
this._topics = [];
|
||||||
// var layoutManagerClass = mindplot.layout.LayoutManagerFactory.getManagerByName(mindplot.EditorOptions.LayoutManager);
|
|
||||||
// this._layoutManager = new layoutManagerClass(this);
|
|
||||||
this._layoutManager = new mindplot.layout.OriginalLayoutManager(this);
|
this._layoutManager = new mindplot.layout.OriginalLayoutManager(this);
|
||||||
|
|
||||||
// Register handlers..
|
// Register handlers..
|
||||||
this._registerEvents();
|
this._registerEvents();
|
||||||
this._relationships = {};
|
this._relationships = {};
|
||||||
this._events = {};
|
this._events = {};
|
||||||
|
|
||||||
// Action !
|
|
||||||
|
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
_getTopics : function() {
|
_getTopics : function() {
|
||||||
@ -112,8 +107,7 @@ mindplot.MindmapDesigner = new Class({
|
|||||||
var centralTopicId = centralTopic.getId();
|
var centralTopicId = centralTopic.getId();
|
||||||
|
|
||||||
// Execute action ...
|
// Execute action ...
|
||||||
var command = new mindplot.commands.AddTopicCommand(model, centralTopicId, true);
|
this._actionDispatcher.addTopic(model, centralTopicId, true);
|
||||||
this._actionRunner.execute(command);
|
|
||||||
}
|
}
|
||||||
}.bind(this));
|
}.bind(this));
|
||||||
}
|
}
|
||||||
@ -216,8 +210,9 @@ mindplot.MindmapDesigner = new Class({
|
|||||||
var parentTopicId = centalTopic.getId();
|
var parentTopicId = centalTopic.getId();
|
||||||
var childModel = centalTopic.createChildModel(this._layoutManager.needsPrepositioning());
|
var childModel = centalTopic.createChildModel(this._layoutManager.needsPrepositioning());
|
||||||
|
|
||||||
var command = new mindplot.commands.AddTopicCommand(childModel, parentTopicId, true);
|
// Execute event ...
|
||||||
this._actionRunner.execute(command);
|
this._actionDispatcher.addTopic(childModel, parentTopicId, true);
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
createSiblingForSelectedNode : function() {
|
createSiblingForSelectedNode : function() {
|
||||||
@ -243,9 +238,8 @@ mindplot.MindmapDesigner = new Class({
|
|||||||
var parentTopic = topic.getOutgoingConnectedTopic();
|
var parentTopic = topic.getOutgoingConnectedTopic();
|
||||||
var siblingModel = topic.createSiblingModel(this._layoutManager.needsPrepositioning());
|
var siblingModel = topic.createSiblingModel(this._layoutManager.needsPrepositioning());
|
||||||
var parentTopicId = parentTopic.getId();
|
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 mindmap = this.getMindmap();
|
||||||
var model = mindmap.createRelationship(fromNode.getModel().getId(), toNode.getModel().getId());
|
var model = mindmap.createRelationship(fromNode.getModel().getId(), toNode.getModel().getId());
|
||||||
|
|
||||||
var command = new mindplot.commands.AddRelationshipCommand(model, mindmap);
|
this._actionDispatcher.addRelationship(model, mindmap);
|
||||||
this._actionRunner.execute(command);
|
|
||||||
},
|
},
|
||||||
|
|
||||||
needsSave : function() {
|
needsSave : function() {
|
||||||
@ -558,8 +552,7 @@ mindplot.MindmapDesigner = new Class({
|
|||||||
var validateError = 'Central topic can not be deleted.';
|
var validateError = 'Central topic can not be deleted.';
|
||||||
var selectedObjects = this._getValidSelectedObjectsIds(validateFunc, validateError);
|
var selectedObjects = this._getValidSelectedObjectsIds(validateFunc, validateError);
|
||||||
if (selectedObjects.nodes.length > 0 || selectedObjects.relationshipLines.length > 0) {
|
if (selectedObjects.nodes.length > 0 || selectedObjects.relationshipLines.length > 0) {
|
||||||
var command = new mindplot.commands.DeleteTopicCommand(selectedObjects);
|
this._actionDispatcher.deleteTopics(selectedObjects);
|
||||||
this._actionRunner.execute(command);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
@ -568,19 +561,8 @@ mindplot.MindmapDesigner = new Class({
|
|||||||
var validSelectedObjects = this._getValidSelectedObjectsIds();
|
var validSelectedObjects = this._getValidSelectedObjectsIds();
|
||||||
var topicsIds = validSelectedObjects.nodes;
|
var topicsIds = validSelectedObjects.nodes;
|
||||||
if (topicsIds.length > 0) {
|
if (topicsIds.length > 0) {
|
||||||
var commandFunc = function(topic, font) {
|
this._actionDispatcher.changeFontFamilyToTopic(topicsIds, font);
|
||||||
var result = topic.getFontFamily();
|
|
||||||
topic.setFontFamily(font, 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, font, topicsIds);
|
|
||||||
this._actionRunner.execute(command);
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -588,14 +570,7 @@ mindplot.MindmapDesigner = new Class({
|
|||||||
var validSelectedObjects = this._getValidSelectedObjectsIds();
|
var validSelectedObjects = this._getValidSelectedObjectsIds();
|
||||||
var topicsIds = validSelectedObjects.nodes;
|
var topicsIds = validSelectedObjects.nodes;
|
||||||
if (topicsIds.length > 0) {
|
if (topicsIds.length > 0) {
|
||||||
var commandFunc = function(topic) {
|
this._actionDispatcher.changeFontStyleToTopic(topicsIds);
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -603,14 +578,7 @@ mindplot.MindmapDesigner = new Class({
|
|||||||
var validSelectedObjects = this._getValidSelectedObjectsIds();
|
var validSelectedObjects = this._getValidSelectedObjectsIds();
|
||||||
var topicsIds = validSelectedObjects.nodes;
|
var topicsIds = validSelectedObjects.nodes;
|
||||||
if (topicsIds.length > 0) {
|
if (topicsIds.length > 0) {
|
||||||
var commandFunc = function(topic, color) {
|
this._actionDispatcher.changeFontColorToTopic(topicsIds, 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);
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -619,20 +587,11 @@ mindplot.MindmapDesigner = new Class({
|
|||||||
var validateFunc = function(topic) {
|
var validateFunc = function(topic) {
|
||||||
return topic.getShapeType() != mindplot.NodeModel.SHAPE_TYPE_LINE
|
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 validSelectedObjects = this._getValidSelectedObjectsIds(validateFunc, validateError);
|
||||||
;
|
|
||||||
var topicsIds = validSelectedObjects.nodes;
|
var topicsIds = validSelectedObjects.nodes;
|
||||||
|
|
||||||
if (topicsIds.length > 0) {
|
if (topicsIds.length > 0) {
|
||||||
var commandFunc = function(topic, color) {
|
this._actionDispatcher.changeBackgroundColorToTopic(topicsIds, 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);
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -679,20 +638,12 @@ mindplot.MindmapDesigner = new Class({
|
|||||||
var validateFunc = function(topic) {
|
var validateFunc = function(topic) {
|
||||||
return topic.getShapeType() != mindplot.NodeModel.SHAPE_TYPE_LINE
|
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 validSelectedObjects = this._getValidSelectedObjectsIds(validateFunc, validateError);
|
||||||
;
|
|
||||||
var topicsIds = validSelectedObjects.nodes;
|
var topicsIds = validSelectedObjects.nodes;
|
||||||
|
|
||||||
if (topicsIds.length > 0) {
|
if (topicsIds.length > 0) {
|
||||||
var commandFunc = function(topic, color) {
|
this._actionDispatcher.changeBorderColorToTopic(topicsIds, 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);
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -700,19 +651,7 @@ mindplot.MindmapDesigner = new Class({
|
|||||||
var validSelectedObjects = this._getValidSelectedObjectsIds();
|
var validSelectedObjects = this._getValidSelectedObjectsIds();
|
||||||
var topicsIds = validSelectedObjects.nodes;
|
var topicsIds = validSelectedObjects.nodes;
|
||||||
if (topicsIds.length > 0) {
|
if (topicsIds.length > 0) {
|
||||||
var commandFunc = function(topic, size) {
|
this._actionDispatcher.changeFontSizeToTopic(topicsIds, 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);
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -725,13 +664,7 @@ mindplot.MindmapDesigner = new Class({
|
|||||||
var topicsIds = validSelectedObjects.nodes;
|
var topicsIds = validSelectedObjects.nodes;
|
||||||
|
|
||||||
if (topicsIds.length > 0) {
|
if (topicsIds.length > 0) {
|
||||||
var commandFunc = function(topic, size) {
|
this._actionDispatcher.changeShapeToTopic(topicsIds, shape);
|
||||||
var result = topic.getShapeType();
|
|
||||||
topic.setShapeType(size, true);
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
var command = new mindplot.commands.GenericFunctionCommand(commandFunc, shape, topicsIds);
|
|
||||||
this._actionRunner.execute(command);
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -740,20 +673,7 @@ mindplot.MindmapDesigner = new Class({
|
|||||||
var validSelectedObjects = this._getValidSelectedObjectsIds();
|
var validSelectedObjects = this._getValidSelectedObjectsIds();
|
||||||
var topicsIds = validSelectedObjects.nodes;
|
var topicsIds = validSelectedObjects.nodes;
|
||||||
if (topicsIds.length > 0) {
|
if (topicsIds.length > 0) {
|
||||||
var commandFunc = function(topic) {
|
this._actionDispatcher.changeFontWeightToTopic(topicsIds);
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -761,9 +681,7 @@ mindplot.MindmapDesigner = new Class({
|
|||||||
var validSelectedObjects = this._getValidSelectedObjectsIds();
|
var validSelectedObjects = this._getValidSelectedObjectsIds();
|
||||||
var topicsIds = validSelectedObjects.nodes;
|
var topicsIds = validSelectedObjects.nodes;
|
||||||
if (topicsIds.length > 0) {
|
if (topicsIds.length > 0) {
|
||||||
|
this._actionDispatcher.addIconToTopic(topicsIds[0], iconType);
|
||||||
var command = new mindplot.commands.AddIconToTopicCommand(topicsIds[0], iconType);
|
|
||||||
this._actionRunner.execute(command);
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -771,8 +689,7 @@ mindplot.MindmapDesigner = new Class({
|
|||||||
var validSelectedObjects = this._getValidSelectedObjectsIds();
|
var validSelectedObjects = this._getValidSelectedObjectsIds();
|
||||||
var topicsIds = validSelectedObjects.nodes;
|
var topicsIds = validSelectedObjects.nodes;
|
||||||
if (topicsIds.length > 0) {
|
if (topicsIds.length > 0) {
|
||||||
var command = new mindplot.commands.AddLinkToTopicCommand(topicsIds[0], url);
|
this._actionDispatcher.addLinkToTopic(topicsIds[0], url);
|
||||||
this._actionRunner.execute(command);
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -784,11 +701,11 @@ mindplot.MindmapDesigner = new Class({
|
|||||||
if (!$defined(topic._hasLink)) {
|
if (!$defined(topic._hasLink)) {
|
||||||
var msg = new Element('div');
|
var msg = new Element('div');
|
||||||
var urlText = new Element('div').inject(msg);
|
var urlText = new Element('div').inject(msg);
|
||||||
urlText.innerHTML = "URL:"
|
urlText.innerHTML = "URL:";
|
||||||
var formElem = new Element('form', {'action': 'none', 'id':'linkFormId'});
|
var formElem = new Element('form', {'action': 'none', 'id':'linkFormId'});
|
||||||
var urlInput = new Element('input', {'type': 'text', 'size':30});
|
var urlInput = new Element('input', {'type': 'text', 'size':30});
|
||||||
urlInput.inject(formElem);
|
urlInput.inject(formElem);
|
||||||
formElem.inject(msg)
|
formElem.inject(msg);
|
||||||
|
|
||||||
var okButtonId = "linkOkButtonId";
|
var okButtonId = "linkOkButtonId";
|
||||||
formElem.addEvent('submit', function(e) {
|
formElem.addEvent('submit', function(e) {
|
||||||
@ -824,8 +741,7 @@ mindplot.MindmapDesigner = new Class({
|
|||||||
var validSelectedObjects = this._getValidSelectedObjectsIds();
|
var validSelectedObjects = this._getValidSelectedObjectsIds();
|
||||||
var topicsIds = validSelectedObjects.nodes;
|
var topicsIds = validSelectedObjects.nodes;
|
||||||
if (topicsIds.length > 0) {
|
if (topicsIds.length > 0) {
|
||||||
var command = new mindplot.commands.AddNoteToTopicCommand(topicsIds[0], text);
|
this._actionDispatcher.addNoteToTopic(topicsIds[0], text);
|
||||||
this._actionRunner.execute(command);
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -50,8 +50,9 @@ mindplot.Note = new Class({
|
|||||||
removeBtn.setStyle("margin-left", "3px");
|
removeBtn.setStyle("margin-left", "3px");
|
||||||
|
|
||||||
removeBtn.addEvent('click', function(event) {
|
removeBtn.addEvent('click', function(event) {
|
||||||
var command = new mindplot.commands.RemoveNoteFromTopicCommand(this._topic.getId());
|
var actionDispatcher = mindplot.ActionDispatcher.getInstance();
|
||||||
designer._actionRunner.execute(command);
|
actionDispatcher.removeNoteFromTopic(this._topic.getId());
|
||||||
|
|
||||||
bubbleTip.forceClose();
|
bubbleTip.forceClose();
|
||||||
}.bindWithEvent(this));
|
}.bindWithEvent(this));
|
||||||
|
|
||||||
|
@ -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.";
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
@ -17,11 +17,10 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
mindplot.TextEditor = new Class({
|
mindplot.TextEditor = new Class({
|
||||||
initialize:function(designer, actionRunner) {
|
initialize:function(designer) {
|
||||||
this._designer = designer;
|
this._designer = designer;
|
||||||
this._screenManager = designer.getWorkSpace().getScreenManager();
|
this._screenManager = designer.getWorkSpace().getScreenManager();
|
||||||
this._container = this._screenManager.getContainer();
|
this._container = this._screenManager.getContainer();
|
||||||
this._actionRunner = actionRunner;
|
|
||||||
this._isVisible = false;
|
this._isVisible = false;
|
||||||
|
|
||||||
//Create editor ui
|
//Create editor ui
|
||||||
|
@ -26,10 +26,11 @@ mindplot.commands.AddTopicCommand = new Class(
|
|||||||
this._id = mindplot.Command._nextUUID();
|
this._id = mindplot.Command._nextUUID();
|
||||||
this._animated = $defined(animated) ? animated : false;
|
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 ...
|
// Connect to topic ...
|
||||||
if ($defined(this._parentId)) {
|
if ($defined(this._parentId)) {
|
||||||
@ -49,6 +50,7 @@ mindplot.commands.AddTopicCommand = new Class(
|
|||||||
} else
|
} else
|
||||||
doneFn.attempt();
|
doneFn.attempt();
|
||||||
},
|
},
|
||||||
|
|
||||||
undoExecute: function(commandContext) {
|
undoExecute: function(commandContext) {
|
||||||
// Finally, delete the topic from the workspace ...
|
// Finally, delete the topic from the workspace ...
|
||||||
var topicId = this._model.getId();
|
var topicId = this._model.getId();
|
||||||
|
@ -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);
|
|
||||||
}
|
|
||||||
});
|
|
@ -18,12 +18,15 @@
|
|||||||
|
|
||||||
mindplot.commands.DragTopicCommand = new Class({
|
mindplot.commands.DragTopicCommand = new Class({
|
||||||
Extends:mindplot.Command,
|
Extends:mindplot.Command,
|
||||||
initialize: function(topicId) {
|
initialize: function(topicIds, position, order, parentTopic) {
|
||||||
$assert(topicId, "topicId must be defined");
|
$assert(topicIds, "topicIds must be defined");
|
||||||
this._selectedObjectsIds = topicId;
|
|
||||||
this._parentTopic = null;
|
this._selectedObjectsIds = topicIds;
|
||||||
this._position = null;
|
if ($defined(parentTopic))
|
||||||
this._order = null;
|
this._parentId = parentTopic.getId();
|
||||||
|
|
||||||
|
this._position = position;
|
||||||
|
this._order = order;
|
||||||
this._id = mindplot.Command._nextUUID();
|
this._id = mindplot.Command._nextUUID();
|
||||||
},
|
},
|
||||||
execute: function(commandContext) {
|
execute: function(commandContext) {
|
||||||
@ -78,19 +81,9 @@ mindplot.commands.DragTopicCommand = new Class({
|
|||||||
undoExecute: function(commandContext) {
|
undoExecute: function(commandContext) {
|
||||||
this.execute(commandContext);
|
this.execute(commandContext);
|
||||||
var selectedRelationships = commandContext.getSelectedRelationshipLines();
|
var selectedRelationships = commandContext.getSelectedRelationshipLines();
|
||||||
selectedRelationships.forEach(function(relationshipLine, index) {
|
selectedRelationships.forEach(function(relationshipLine) {
|
||||||
relationshipLine.redraw();
|
relationshipLine.redraw();
|
||||||
});
|
});
|
||||||
|
|
||||||
},
|
|
||||||
setPosition: function(point) {
|
|
||||||
this._position = point;
|
|
||||||
},
|
|
||||||
setParetTopic: function(topic) {
|
|
||||||
this._parentId = topic.getId();
|
|
||||||
|
|
||||||
},
|
|
||||||
setOrder: function(order) {
|
|
||||||
this._order = order
|
|
||||||
}
|
}
|
||||||
});
|
});
|
@ -18,9 +18,10 @@
|
|||||||
|
|
||||||
mindplot.commands.GenericFunctionCommand = new Class({
|
mindplot.commands.GenericFunctionCommand = new Class({
|
||||||
Extends:mindplot.Command,
|
Extends:mindplot.Command,
|
||||||
initialize: function(commandFunc, value, topicsIds) {
|
initialize: function(commandFunc, topicsIds,value) {
|
||||||
$assert(commandFunc, "commandFunc must be defined");
|
$assert(commandFunc, "commandFunc must be defined");
|
||||||
$assert(topicsIds, "topicsIds must be defined");
|
$assert(topicsIds, "topicsIds must be defined");
|
||||||
|
|
||||||
this._value = value;
|
this._value = value;
|
||||||
this._selectedObjectsIds = topicsIds;
|
this._selectedObjectsIds = topicsIds;
|
||||||
this._commandFunc = commandFunc;
|
this._commandFunc = commandFunc;
|
||||||
|
@ -19,9 +19,10 @@ mindplot.commands.MoveControlPointCommand = new Class({
|
|||||||
Extends:mindplot.Command,
|
Extends:mindplot.Command,
|
||||||
initialize: function(ctrlPointController, point) {
|
initialize: function(ctrlPointController, point) {
|
||||||
$assert(ctrlPointController, 'line can not be null');
|
$assert(ctrlPointController, 'line can not be null');
|
||||||
|
$assert(point, 'point can not be null');
|
||||||
|
|
||||||
this._ctrlPointControler = ctrlPointController;
|
this._ctrlPointControler = ctrlPointController;
|
||||||
this._line = ctrlPointController._line;
|
this._line = ctrlPointController._line;
|
||||||
var model = this._line.getModel();
|
|
||||||
this._controlPoint = this._ctrlPointControler.getControlPoint(point).clone();
|
this._controlPoint = this._ctrlPointControler.getControlPoint(point).clone();
|
||||||
this._oldControlPoint = this._ctrlPointControler.getOriginalCtrlPoint(point).clone();
|
this._oldControlPoint = this._ctrlPointControler.getOriginalCtrlPoint(point).clone();
|
||||||
this._originalEndPoint = this._ctrlPointControler.getOriginalEndPoint(point).clone();
|
this._originalEndPoint = this._ctrlPointControler.getOriginalEndPoint(point).clone();
|
||||||
|
@ -24,12 +24,13 @@ mindplot.layout.OriginalLayoutManager = new Class({
|
|||||||
initialize:function(designer, options) {
|
initialize:function(designer, options) {
|
||||||
this.parent(designer, options);
|
this.parent(designer, options);
|
||||||
this._dragTopicPositioner = new mindplot.DragTopicPositioner(this);
|
this._dragTopicPositioner = new mindplot.DragTopicPositioner(this);
|
||||||
// Init dragger manager.
|
|
||||||
|
// Init drag manager.
|
||||||
var workSpace = this.getDesigner().getWorkSpace();
|
var workSpace = this.getDesigner().getWorkSpace();
|
||||||
this._dragger = this._buildDragManager(workSpace);
|
this._dragger = this._buildDragManager(workSpace);
|
||||||
|
|
||||||
// Add shapes to speed up the loading process ...
|
// Add shapes to speed up the loading process ...
|
||||||
mindplot.DragTopic.initialize(workSpace);
|
mindplot.DragTopic.init(workSpace);
|
||||||
},
|
},
|
||||||
prepareNode:function(node, children) {
|
prepareNode:function(node, children) {
|
||||||
// Sort children by order to solve adding order in for OriginalLayoutManager...
|
// Sort children by order to solve adding order in for OriginalLayoutManager...
|
||||||
|
Loading…
Reference in New Issue
Block a user