diff --git a/mindplot/src/main/javascript/ConnectionLine.js b/mindplot/src/main/javascript/ConnectionLine.js index 0e959471..37ed57c2 100644 --- a/mindplot/src/main/javascript/ConnectionLine.js +++ b/mindplot/src/main/javascript/ConnectionLine.js @@ -1,21 +1,21 @@ /* -* Licensed to the Apache Software Foundation (ASF) under one or more -* contributor license agreements. See the NOTICE file distributed with -* this work for additional information regarding copyright ownership. -* The ASF licenses this file to You under the Apache License, Version 2.0 -* (the "License"); you may not use this file except in compliance with -* the License. You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* 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. -* -* $Id: file 64488 2006-03-10 17:32:09Z paulo $ -*/ + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * 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. + * + * $Id: file 64488 2006-03-10 17:32:09Z paulo $ + */ mindplot.ConnectionLine = function(sourceNode, targetNode, lineType) { @@ -25,19 +25,18 @@ mindplot.ConnectionLine = function(sourceNode, targetNode, lineType) this._targetTopic = targetNode; this._sourceTopic = sourceNode; - this._isRelationship=false; var strokeColor = mindplot.ConnectionLine.getStrokeColor(); var line; if (targetNode.getType() == mindplot.NodeModel.CENTRAL_TOPIC_TYPE) { line = this._createLine(lineType,mindplot.ConnectionLine.SIMPLE); -// line = new web2d.Line(); + // line = new web2d.Line(); line.setStroke(1, 'solid', strokeColor); } else { line = this._createLine(lineType,mindplot.ConnectionLine.POLYLINE); -// line = new web2d.PolyLine(); + // line = new web2d.PolyLine(); line.setStroke(1, 'solid', strokeColor); } @@ -90,26 +89,10 @@ mindplot.ConnectionLine.prototype.redraw = function() var targetPosition = targetTopic.getPosition(); var sPos,tPos; - if(this._isRelationship){ - this._line2d.setStroke(2); - var ctrlPoints = this._line2d.getControlPoints(); - if(!core.Utils.isDefined(ctrlPoints[0].x) || !core.Utils.isDefined(ctrlPoints[1].x)){ - var defaultPoints = core.Utils.calculateDefaultControlPoints(sourceTopic.getPosition(), targetTopic.getPosition()); - ctrlPoints[0].x=defaultPoints[0].x; - ctrlPoints[0].y=defaultPoints[0].y; - ctrlPoints[1].x=defaultPoints[1].x; - ctrlPoints[1].y=defaultPoints[1].y; - } - sPos = core.Utils.calculateRelationShipPointCoordinates(sourceTopic,ctrlPoints[0]); - tPos = core.Utils.calculateRelationShipPointCoordinates(targetTopic,ctrlPoints[1]); - }else{ - sPos = sourceTopic.workoutOutgoingConnectionPoint(targetPosition, false); - tPos = targetTopic.workoutIncomingConnectionPoint(sourcePosition, false); - } - // console.log("source:"+sPos.x+":"+sPos.y); + sPos = sourceTopic.workoutOutgoingConnectionPoint(targetPosition, false); + tPos = targetTopic.workoutIncomingConnectionPoint(sourcePosition, false); line2d.setFrom(sPos.x, sPos.y); -// console.log("target:"+tPos.x+":"+tPos.y); line2d.setTo(tPos.x, tPos.y); line2d.moveToBack(); @@ -156,14 +139,6 @@ mindplot.ConnectionLine.prototype.setStroke = function(color, style, opacity) mindplot.ConnectionLine.prototype.addToWorkspace = function(workspace) { - if(this._line2d.getType() == "CurvedLine"){ - this._line2d.addEventListener('click',function(event){ - var controlPoints = workspace.getLineControlPoints(); - controlPoints.setLine(this); - controlPoints.setVisibility(true); - event.stopPropagation(); - }.bind(this)); - } workspace.appendChild(this._line2d); }; @@ -198,12 +173,12 @@ mindplot.ConnectionLine.prototype.setModel = function(model){ this._model = model; }; -mindplot.ConnectionLine.prototype.setIsRelationship = function(isRelationship){ - this._isRelationship=isRelationship; +mindplot.ConnectionLine.prototype.getType = function(){ + return "ConnectionLine"; }; -mindplot.ConnectionLine.prototype.isRelationship = function(){ - return this._isRelationship; +mindplot.ConnectionLine.prototype.getId = function(){ + return this._model.getId(); }; mindplot.ConnectionLine.SIMPLE=0; diff --git a/mindplot/src/main/javascript/ControlPoint.js b/mindplot/src/main/javascript/ControlPoint.js index d3551046..83099bfd 100644 --- a/mindplot/src/main/javascript/ControlPoint.js +++ b/mindplot/src/main/javascript/ControlPoint.js @@ -19,18 +19,17 @@ mindplot.ControlPoint = function() { - this._controlPoints= [new web2d.Elipse({width:6, height:6, stroke:'1 solid #6589de',fillColor:'gray', visibility:false}), + this._controlPointsController= [new web2d.Elipse({width:6, height:6, stroke:'1 solid #6589de',fillColor:'gray', visibility:false}), new web2d.Elipse({width:6, height:6, stroke:'1 solid #6589de',fillColor:'gray', visibility:false})]; this._controlLines=[new web2d.Line({strokeColor:"#6589de", strokeWidth:1, opacity:0.3}), new web2d.Line({strokeColor:"#6589de", strokeWidth:1, opacity:0.3})]; this._isBinded=false; - this._controlPoints[0].addEventListener('mousedown',this._mouseDown.bindWithEvent(this, mindplot.ControlPoint.FROM)); - this._controlPoints[0].addEventListener('click',this._mouseClick.bindWithEvent(this)); - this._controlPoints[0].addEventListener('dblclick',this._mouseClick.bindWithEvent(this)); - this._controlPoints[1].addEventListener('mousedown',this._mouseDown.bindWithEvent(this,mindplot.ControlPoint.TO)); - this._controlPoints[1].addEventListener('click',this._mouseClick.bindWithEvent(this)); - this._controlPoints[1].addEventListener('dblclick',this._mouseClick.bindWithEvent(this)); - this._mouseClickOnBackgroundFunction = this._mouseClickOnBackground.bind(this); + this._controlPointsController[0].addEventListener('mousedown',this._mouseDown.bindWithEvent(this, mindplot.ControlPoint.FROM)); + this._controlPointsController[0].addEventListener('click',this._mouseClick.bindWithEvent(this)); + this._controlPointsController[0].addEventListener('dblclick',this._mouseClick.bindWithEvent(this)); + this._controlPointsController[1].addEventListener('mousedown',this._mouseDown.bindWithEvent(this,mindplot.ControlPoint.TO)); + this._controlPointsController[1].addEventListener('click',this._mouseClick.bindWithEvent(this)); + this._controlPointsController[1].addEventListener('dblclick',this._mouseClick.bindWithEvent(this)); }; mindplot.ControlPoint.prototype.setSide= function(side) { @@ -43,12 +42,18 @@ mindplot.ControlPoint.prototype.setLine= function(line) { } this._line= line; this._createControlPoint(); + this._endPoint = []; + this._orignalCtrlPoint = []; + this._orignalCtrlPoint[0] = this._controls[0].clone(); + this._orignalCtrlPoint[1] = this._controls[1].clone(); + this._endPoint[0] = this._line.getLine().getFrom().clone(); + this._endPoint[1] = this._line.getLine().getTo().clone(); }; mindplot.ControlPoint.prototype._createControlPoint = function() { this._controls= this._line.getLine().getControlPoints(); - this._controlPoints[0].setPosition(this._controls[mindplot.ControlPoint.FROM].x, this._controls[mindplot.ControlPoint.FROM].y-3); - this._controlPoints[1].setPosition(this._controls[mindplot.ControlPoint.TO].x, this._controls[mindplot.ControlPoint.TO].y-3); + this._controlPointsController[0].setPosition(this._controls[mindplot.ControlPoint.FROM].x, this._controls[mindplot.ControlPoint.FROM].y-3); + this._controlPointsController[1].setPosition(this._controls[mindplot.ControlPoint.TO].x, this._controls[mindplot.ControlPoint.TO].y-3); var pos = this._line.getLine().getFrom(); this._controlLines[0].setFrom(pos.x, pos.y); this._controlLines[0].setTo(this._controls[mindplot.ControlPoint.FROM].x+3, this._controls[mindplot.ControlPoint.FROM].y); @@ -88,7 +93,7 @@ mindplot.ControlPoint.prototype._mouseMove = function(event, point) { } this._controls[point].x=pos.x; this._controls[point].y=pos.y; - this._controlPoints[point].setPosition(pos.x-5,pos.y-3); + this._controlPointsController[point].setPosition(pos.x-5,pos.y-3); this._controlLines[point].setFrom(cords.x, cords.y); this._controlLines[point].setTo(pos.x-2,pos.y); this._line.getLine().updateLine(point); @@ -114,42 +119,46 @@ mindplot.ControlPoint.prototype._mouseClick = function(event){ return false; }; -mindplot.ControlPoint.prototype._mouseClickOnBackground = function(event){ - this.setVisibility(false); -}; - mindplot.ControlPoint.prototype.setVisibility = function(visible){ if(visible){ - this._workspace.getScreenManager().addEventListener('mousedown',this._mouseClickOnBackgroundFunction); this._controlLines[0].moveToFront(); this._controlLines[1].moveToFront(); - this._controlPoints[0].moveToFront(); - this._controlPoints[1].moveToFront(); + this._controlPointsController[0].moveToFront(); + this._controlPointsController[1].moveToFront(); } - else{ - this._workspace.getScreenManager().removeEventListener('mousedown',this._mouseClickOnBackgroundFunction); - } - this._controlPoints[0].setVisibility(visible); - this._controlPoints[1].setVisibility(visible); + this._controlPointsController[0].setVisibility(visible); + this._controlPointsController[1].setVisibility(visible); this._controlLines[0].setVisibility(visible); this._controlLines[1].setVisibility(visible); }; mindplot.ControlPoint.prototype.addToWorkspace = function(workspace){ this._workspace = workspace; - workspace.appendChild(this._controlPoints[0]); - workspace.appendChild(this._controlPoints[1]); + workspace.appendChild(this._controlPointsController[0]); + workspace.appendChild(this._controlPointsController[1]); workspace.appendChild(this._controlLines[0]); workspace.appendChild(this._controlLines[1]); }; mindplot.ControlPoint.prototype.removeFromWorkspace = function(workspace){ this._workspace = null; - workspace.removeChild(this._controlPoints[0]); - workspace.removeChild(this._controlPoints[1]); + workspace.removeChild(this._controlPointsController[0]); + workspace.removeChild(this._controlPointsController[1]); workspace.removeChild(this._controlLines[0]); workspace.removeChild(this._controlLines[1]); }; +mindplot.ControlPoint.prototype.getControlPoint = function(index){ + return this._controls[index]; +}; + +mindplot.ControlPoint.prototype.getOriginalEndPoint = function(index){ + return this._endPoint[index]; +}; + +mindplot.ControlPoint.prototype.getOriginalCtrlPoint = function(index){ + return this._orignalCtrlPoint[index]; +}; + mindplot.ControlPoint.FROM = 0; mindplot.ControlPoint.TO = 1; diff --git a/mindplot/src/main/javascript/DesignerActionRunner.js b/mindplot/src/main/javascript/DesignerActionRunner.js index ed2781c0..2849ae3e 100644 --- a/mindplot/src/main/javascript/DesignerActionRunner.js +++ b/mindplot/src/main/javascript/DesignerActionRunner.js @@ -100,7 +100,7 @@ mindplot.CommandContext = new Class({ // @todo: Is this required ? var designer = this._designer; - designer.onNodeFocusEvent.attempt(topic, designer); + designer.onObjectFocusEvent.attempt(topic, designer); return topic; }, @@ -125,6 +125,16 @@ mindplot.CommandContext = new Class({ }, removeRelationship:function(model) { this._designer.removeRelationship(model); + }, + findRelationships:function(lineIds){ + var result = []; + lineIds.forEach(function(lineId, index){ + var line = this._designer._relationships[lineId]; + if(core.Utils.isDefined(line)){ + result.push(line); + } + }.bind(this)); + return result; } }); diff --git a/mindplot/src/main/javascript/MindmapDesigner.js b/mindplot/src/main/javascript/MindmapDesigner.js index a11d8985..45a11fea 100644 --- a/mindplot/src/main/javascript/MindmapDesigner.js +++ b/mindplot/src/main/javascript/MindmapDesigner.js @@ -46,9 +46,6 @@ mindplot.MindmapDesigner = function(profile, divElement) // Register handlers.. this._registerEvents(); - // Selected node - this._nodeOnFocus = null; - // Init dragger manager. this._dragger = this._buildDragManager(workspace); @@ -232,19 +229,19 @@ mindplot.MindmapDesigner.prototype._buildNodeGraph = function(model) return topic; }; -mindplot.MindmapDesigner.prototype.onNodeFocusEvent = function(topicGraph, event) +mindplot.MindmapDesigner.prototype.onObjectFocusEvent = function(currentObject, event) { this.getEditor().lostFocus(); - var topics = this._topics; + var selectableObjects = this.getSelectedObjects(); // Disable all nodes on focus but not the current if Ctrl key isn't being pressed if (!core.Utils.isDefined(event) || event.ctrlKey == false) { - for (var i = 0; i < topics.length; i++) + for (var i = 0; i < selectableObjects.length; i++) { - var node = topics[i]; - if (node.isOnFocus() && node != topicGraph) + var selectableObject = selectableObjects[i]; + if (selectableObject.isOnFocus() && selectableObject != currentObject) { - node.setOnFocus(false); + selectableObject.setOnFocus(false); } } } @@ -257,7 +254,7 @@ mindplot.MindmapDesigner.prototype._registerListenersOnNode = function(topic) var topics = this._topics; topic.addEventListener('onfocus', function(event) { - elem.onNodeFocusEvent.attempt([topic, event], elem); + elem.onObjectFocusEvent.attempt([topic, event], elem); }); // Add drag behaviour ... @@ -645,8 +642,7 @@ mindplot.MindmapDesigner.prototype._buildRelationship = function (model) { } // Create node graph ... - var relationLine = new mindplot.ConnectionLine(fromTopic, toTopic, model.getLineType()); - relationLine.setIsRelationship(true); + var relationLine = new mindplot.RelationshipLine(fromTopic, toTopic, model.getLineType()); if(core.Utils.isDefined(model.getSrcCtrlPoint())){ var srcPoint = model.getSrcCtrlPoint().clone(); relationLine.getLine().setSrcControlPoint(srcPoint); @@ -660,6 +656,14 @@ mindplot.MindmapDesigner.prototype._buildRelationship = function (model) { relationLine.getLine().setDashed(3,2); relationLine.getLine().setShowArrow(model.getEndArrow()); relationLine.setModel(model); + + //Add Listeners + var elem = this; + relationLine.addEventListener('onfocus', function(event) + { + elem.onObjectFocusEvent.attempt([relationLine, event], elem); + }); + // Append it to the workspace ... this._relationships[model.getId()]=relationLine; @@ -701,14 +705,14 @@ mindplot.MindmapDesigner.prototype._removeNode = function(node) mindplot.MindmapDesigner.prototype.deleteCurrentNode = function() { - var validateFunc = function(topic) { - return topic.getTopicType() != mindplot.NodeModel.CENTRAL_TOPIC_TYPE + var validateFunc = function(selectedObject) { + return selectedObject.getType() == mindplot.RelationshipLine.type || selectedObject.getTopicType() != mindplot.NodeModel.CENTRAL_TOPIC_TYPE }; var validateError = 'Central topic can not be deleted.'; - var topicsIds = this._setValidSelectedTopicsIds(validateFunc, validateError); - if (topicsIds.length > 0) + var selectedObjects = this._getValidSelectedObjectsIds(validateFunc, validateError); + if (selectedObjects.nodes.length > 0 || selectedObjects.relationshipLines.length>0) { - var command = new mindplot.commands.DeleteTopicCommand(topicsIds); + var command = new mindplot.commands.DeleteTopicCommand(selectedObjects); this._actionRunner.execute(command); } @@ -716,7 +720,8 @@ mindplot.MindmapDesigner.prototype.deleteCurrentNode = function() mindplot.MindmapDesigner.prototype.setFont2SelectedNode = function(font) { - var topicsIds = this._setValidSelectedTopicsIds(); + var validSelectedObjects = this._getValidSelectedObjectsIds(); + var topicsIds = validSelectedObjects.nodes; if (topicsIds.length > 0) { var commandFunc = function(topic, font) @@ -737,7 +742,8 @@ mindplot.MindmapDesigner.prototype.setFont2SelectedNode = function(font) mindplot.MindmapDesigner.prototype.setStyle2SelectedNode = function() { - var topicsIds = this._setValidSelectedTopicsIds(); + var validSelectedObjects = this._getValidSelectedObjectsIds(); + var topicsIds = validSelectedObjects.nodes; if (topicsIds.length > 0) { var commandFunc = function(topic) @@ -754,7 +760,8 @@ mindplot.MindmapDesigner.prototype.setStyle2SelectedNode = function() mindplot.MindmapDesigner.prototype.setFontColor2SelectedNode = function(color) { - var topicsIds = this._setValidSelectedTopicsIds(); + var validSelectedObjects = this._getValidSelectedObjectsIds(); + var topicsIds = validSelectedObjects.nodes; if (topicsIds.length > 0) { var commandFunc = function(topic, color) @@ -776,7 +783,8 @@ mindplot.MindmapDesigner.prototype.setBackColor2SelectedNode = function(color) return topic.getShapeType() != mindplot.NodeModel.SHAPE_TYPE_LINE }; var validateError = 'Color can not be setted to line topics.'; - var topicsIds = this._setValidSelectedTopicsIds(validateFunc, validateError); + var validSelectedObjects = this._getValidSelectedObjectsIds(validateFunc, validateError);; + var topicsIds = validSelectedObjects.nodes; if (topicsIds.length > 0) { @@ -793,19 +801,20 @@ mindplot.MindmapDesigner.prototype.setBackColor2SelectedNode = function(color) }; -mindplot.MindmapDesigner.prototype._setValidSelectedTopicsIds = function(validate, errorMsg) +mindplot.MindmapDesigner.prototype._getValidSelectedObjectsIds = function(validate, errorMsg) { - var result = []; + var result = {"nodes":[],"relationshipLines":[]}; var selectedNodes = this._getSelectedNodes(); - if (selectedNodes.length == 0) + var selectedRelationshipLines = this.getSelectedRelationshipLines(); + if (selectedNodes.length == 0 && selectedRelationshipLines.length == 0) { - core.Monitor.getInstance().logMessage('At least one topic must be selected to execute this operation.'); + core.Monitor.getInstance().logMessage('At least one element must be selected to execute this operation.'); } else { + var isValid = true; for (var i = 0; i < selectedNodes.length; i++) { var selectedNode = selectedNodes[i]; - var isValid = true; if (validate) { isValid = validate(selectedNode); @@ -814,7 +823,21 @@ mindplot.MindmapDesigner.prototype._setValidSelectedTopicsIds = function(validat // Add node only if it's valid. if (isValid) { - result.push(selectedNode.getId()); + result.nodes.push(selectedNode.getId()); + } else + { + core.Monitor.getInstance().logMessage(errorMsg); + } + } + for( var j = 0; j< selectedRelationshipLines.length; j++){ + var selectedLine = selectedRelationshipLines[j]; + isValid = true; + if(validate){ + isValid = validate(selectedLine); + } + + if(isValid){ + result.relationshipLines.push(selectedLine.getId()); } else { core.Monitor.getInstance().logMessage(errorMsg); @@ -830,7 +853,8 @@ mindplot.MindmapDesigner.prototype.setBorderColor2SelectedNode = function(color) return topic.getShapeType() != mindplot.NodeModel.SHAPE_TYPE_LINE }; var validateError = 'Color can not be setted to line topics.'; - var topicsIds = this._setValidSelectedTopicsIds(validateFunc, validateError); + var validSelectedObjects = this._getValidSelectedObjectsIds(validateFunc, validateError);; + var topicsIds = validSelectedObjects.nodes; if (topicsIds.length > 0) { @@ -848,7 +872,8 @@ mindplot.MindmapDesigner.prototype.setBorderColor2SelectedNode = function(color) mindplot.MindmapDesigner.prototype.setFontSize2SelectedNode = function(size) { - var topicsIds = this._setValidSelectedTopicsIds(); + var validSelectedObjects = this._getValidSelectedObjectsIds(); + var topicsIds = validSelectedObjects.nodes; if (topicsIds.length > 0) { var commandFunc = function(topic, size) @@ -873,7 +898,8 @@ mindplot.MindmapDesigner.prototype.setShape2SelectedNode = function(shape) return !(topic.getType() == mindplot.NodeModel.CENTRAL_TOPIC_TYPE && shape == mindplot.NodeModel.SHAPE_TYPE_LINE) }; var validateError = 'Central Topic shape can not be changed to line figure.'; - var topicsIds = this._setValidSelectedTopicsIds(validateFunc, validateError); + var validSelectedObjects = this._getValidSelectedObjectsIds(validateFunc, validateError); + var topicsIds = validSelectedObjects.nodes; if (topicsIds.length > 0) { @@ -891,7 +917,8 @@ mindplot.MindmapDesigner.prototype.setShape2SelectedNode = function(shape) mindplot.MindmapDesigner.prototype.setWeight2SelectedNode = function() { - var topicsIds = this._setValidSelectedTopicsIds(); + var validSelectedObjects = this._getValidSelectedObjectsIds(); + var topicsIds = validSelectedObjects.nodes; if (topicsIds.length > 0) { var commandFunc = function(topic) @@ -913,8 +940,8 @@ mindplot.MindmapDesigner.prototype.setWeight2SelectedNode = function() mindplot.MindmapDesigner.prototype.addImage2SelectedNode = function(iconType) { - - var topicsIds = this._setValidSelectedTopicsIds(); + var validSelectedObjects = this._getValidSelectedObjectsIds(); + var topicsIds = validSelectedObjects.nodes; if (topicsIds.length > 0) { @@ -925,7 +952,8 @@ mindplot.MindmapDesigner.prototype.addImage2SelectedNode = function(iconType) mindplot.MindmapDesigner.prototype.addLink2Node = function(url) { - var topicsIds = this._setValidSelectedTopicsIds(); + var validSelectedObjects = this._getValidSelectedObjectsIds(); + var topicsIds = validSelectedObjects.nodes; if (topicsIds.length > 0) { var command = new mindplot.commands.AddLinkToTopicCommand(topicsIds[0], url); @@ -985,7 +1013,8 @@ mindplot.MindmapDesigner.prototype.addLink2SelectedNode = function() mindplot.MindmapDesigner.prototype.addNote2Node = function(text) { - var topicsIds = this._setValidSelectedTopicsIds(); + var validSelectedObjects = this._getValidSelectedObjectsIds(); + var topicsIds = validSelectedObjects.nodes; if (topicsIds.length > 0) { var command = new mindplot.commands.AddNoteToTopicCommand(topicsIds[0], text); @@ -1078,11 +1107,30 @@ mindplot.MindmapDesigner.prototype._getSelectedNodes = function() return result; }; +mindplot.MindmapDesigner.prototype.getSelectedRelationshipLines = function(){ + var result = new Array(); + for each (var relationship in this._relationships) + { + if (relationship.isOnFocus()) + { + result.push(relationship); + } + } + return result; +}; + mindplot.MindmapDesigner.prototype.getSelectedNodes = function() { return this._getSelectedNodes(); }; +mindplot.MindmapDesigner.prototype.getSelectedObjects = function() +{ + var selectedNodes = this.getSelectedNodes(); + var selectedRelationships = this.getSelectedRelationshipLines(); + selectedRelationships.extend(selectedNodes); + return selectedRelationships; +}; mindplot.MindmapDesigner.prototype.keyEventHandler = function(event) { @@ -1307,7 +1355,7 @@ mindplot.MindmapDesigner.prototype._goToBrother = function(node, direction) mindplot.MindmapDesigner.prototype._goToNode = function(node) { node.setOnFocus(true); - this.onNodeFocusEvent.attempt(node, this); + this.onObjectFocusEvent.attempt(node, this); }; mindplot.MindmapDesigner.prototype._goToSideChild = function(node, side) diff --git a/mindplot/src/main/javascript/NodeGraph.js b/mindplot/src/main/javascript/NodeGraph.js index d23b9937..cd359f16 100644 --- a/mindplot/src/main/javascript/NodeGraph.js +++ b/mindplot/src/main/javascript/NodeGraph.js @@ -1,22 +1,22 @@ -/* -* Licensed to the Apache Software Foundation (ASF) under one or more -* contributor license agreements. See the NOTICE file distributed with -* this work for additional information regarding copyright ownership. -* The ASF licenses this file to You under the Apache License, Version 2.0 -* (the "License"); you may not use this file except in compliance with -* the License. You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* 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. -* -* $Id: file 64488 2006-03-10 17:32:09Z paulo $ -*/ - +/* +* Licensed to the Apache Software Foundation (ASF) under one or more +* contributor license agreements. See the NOTICE file distributed with +* this work for additional information regarding copyright ownership. +* The ASF licenses this file to You under the Apache License, Version 2.0 +* (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* 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. +* +* $Id: file 64488 2006-03-10 17:32:09Z paulo $ +*/ + mindplot.NodeGraph = function(nodeModel) { this._mouseEvents = true; diff --git a/mindplot/src/main/javascript/RelationshipLine.js b/mindplot/src/main/javascript/RelationshipLine.js new file mode 100644 index 00000000..1dab9ca1 --- /dev/null +++ b/mindplot/src/main/javascript/RelationshipLine.js @@ -0,0 +1,133 @@ + +mindplot.RelationshipLine = function(sourceNode, targetNode, lineType) +{ + mindplot.ConnectionLine.call(this,sourceNode, targetNode, lineType); + this._isOnfocus = false; + this._focusShape = this._createLine(this.getLineType(), mindplot.ConnectionLine.SIMPLE_CURVED); + this._focusShape.setStroke(2, "solid", "#3f96ff"); + var ctrlPoints = this._line2d.getControlPoints(); + this._focusShape.setSrcControlPoint(ctrlPoints[0]); + this._focusShape.setDestControlPoint(ctrlPoints[1]); + this._focusShape.setVisibility(false); + this._onFocus = false; + this._isInWorkspace = false; + this._controlPointsController = new mindplot.ControlPoint(); + +}; + +objects.extend(mindplot.RelationshipLine, mindplot.ConnectionLine); + +mindplot.RelationshipLine.prototype.redraw = function() +{ + var line2d = this._line2d; + var sourceTopic = this._sourceTopic; + var sourcePosition = sourceTopic.getPosition(); + + var targetTopic = this._targetTopic; + var targetPosition = targetTopic.getPosition(); + + var sPos,tPos; + this._line2d.setStroke(2); + var ctrlPoints = this._line2d.getControlPoints(); + if(!core.Utils.isDefined(ctrlPoints[0].x) || !core.Utils.isDefined(ctrlPoints[1].x)){ + var defaultPoints = core.Utils.calculateDefaultControlPoints(sourceTopic.getPosition(), targetTopic.getPosition()); + ctrlPoints[0].x=defaultPoints[0].x; + ctrlPoints[0].y=defaultPoints[0].y; + ctrlPoints[1].x=defaultPoints[1].x; + ctrlPoints[1].y=defaultPoints[1].y; + } + sPos = core.Utils.calculateRelationShipPointCoordinates(sourceTopic,ctrlPoints[0]); + tPos = core.Utils.calculateRelationShipPointCoordinates(targetTopic,ctrlPoints[1]); + + line2d.setFrom(sPos.x, sPos.y); + line2d.setTo(tPos.x, tPos.y); + + line2d.moveToBack(); + + // Add connector ... + this._positionateConnector(targetTopic); + + if(this.isOnFocus()){ + this._refreshSelectedShape(); + } + this._focusShape.moveToBack(); + +}; + +mindplot.RelationshipLine.prototype.addToWorkspace = function(workspace) +{ + workspace.appendChild(this._focusShape); + workspace.appendChild(this._controlPointsController); + this._controlPointControllerListener =this._initializeControlPointController.bindWithEvent(this,workspace); + this._line2d.addEventListener('click', this._controlPointControllerListener); + this._isInWorkspace = true; + + mindplot.RelationshipLine.superClass.addToWorkspace.call(this, workspace); +}; + +mindplot.RelationshipLine.prototype._initializeControlPointController = function(event,workspace){ + this.setOnFocus(true); +}; + +mindplot.RelationshipLine.prototype.removeFromWorkspace = function(workspace){ + workspace.removeChild(this._focusShape); + workspace.removeChild(this._controlPointsController); + this._line2d.removeEventListener('click',this._controlPointControllerListener); + this._isInWorkspace = false; + mindplot.RelationshipLine.superClass.removeFromWorkspace.call(this,workspace); +}; + +mindplot.RelationshipLine.prototype.getType = function(){ + return mindplot.RelationshipLine.type; +}; + +mindplot.RelationshipLine.prototype.setOnFocus = function(focus){ + // Change focus shape + if(focus){ + this._refreshSelectedShape(); + this._controlPointsController.setLine(this); + } + this._focusShape.setVisibility(focus); + + this._controlPointsController.setVisibility(focus); + this._onFocus = focus; +}; + +mindplot.RelationshipLine.prototype._refreshSelectedShape = function () { + var sPos = this._line2d.getFrom(); + var tPos = this._line2d.getTo(); + var ctrlPoints = this._line2d.getControlPoints(); + this._focusShape.setFrom(sPos.x, sPos.y); + this._focusShape.setTo(tPos.x, tPos.y); + var shapeCtrlPoints = this._focusShape.getControlPoints(); + shapeCtrlPoints[0].x = ctrlPoints[0].x; + shapeCtrlPoints[0].y = ctrlPoints[0].y; + shapeCtrlPoints[1].x = ctrlPoints[1].x; + shapeCtrlPoints[1].y = ctrlPoints[1].y; + this._focusShape.updateLine(); + //this._focusShape.setSrcControlPoint(ctrlPoints[0]); + //this._focusShape.setDestControlPoint(ctrlPoints[1]); +}; + +mindplot.RelationshipLine.prototype.addEventListener = function(type, listener){ + // Translate to web 2d events ... + if (type == 'onfocus') + { + type = 'mousedown'; + } + + var line = this._line2d; + line.addEventListener(type, listener); +}; + +mindplot.RelationshipLine.prototype.isOnFocus = function() +{ + return this._onFocus; +}; + +mindplot.RelationshipLine.prototype.isInWorkspace = function(){ + return this._isInWorkspace; +}; + + +mindplot.RelationshipLine.type = "RelationshipLine"; \ No newline at end of file diff --git a/mindplot/src/main/javascript/Workspace.js b/mindplot/src/main/javascript/Workspace.js index 9b3e4aea..aa801437 100644 --- a/mindplot/src/main/javascript/Workspace.js +++ b/mindplot/src/main/javascript/Workspace.js @@ -41,9 +41,6 @@ mindplot.Workspace = function(profile, screenManager, zoom) // Register drag events ... this._registerDragEvents(); - //Create CurvedLineControlPoints - this._createCuvedLineControlPoints(); - this._eventsEnabled = true; }; @@ -237,12 +234,3 @@ mindplot.Workspace.prototype._registerDragEvents = function() screenManager.addEventListener('mousedown', mouseDownListener); }; -mindplot.Workspace.prototype._createCuvedLineControlPoints = function(){ - this._lineControlPoints = new mindplot.ControlPoint(); - this.appendChild(this._lineControlPoints); -}; - -mindplot.Workspace.prototype.getLineControlPoints = function(){ - return this._lineControlPoints; -}; - diff --git a/mindplot/src/main/javascript/commands/AddIconToTopicCommand.js b/mindplot/src/main/javascript/commands/AddIconToTopicCommand.js index 1bae198f..3b10214c 100644 --- a/mindplot/src/main/javascript/commands/AddIconToTopicCommand.js +++ b/mindplot/src/main/javascript/commands/AddIconToTopicCommand.js @@ -23,12 +23,12 @@ mindplot.commands.AddIconToTopicCommand = mindplot.Command.extend( { core.assert(topicId, 'topicId can not be null'); core.assert(iconType, 'iconType can not be null'); - this._topicId = topicId; + this._selectedObjectsIds = topicId; this._iconType = iconType; }, execute: function(commandContext) { - var topic = commandContext.findTopics(this._topicId)[0]; + var topic = commandContext.findTopics(this._selectedObjectsIds)[0]; var updated = function() { var iconImg = topic.addIcon(this._iconType, commandContext._designer); this._iconModel = iconImg.getModel(); @@ -38,7 +38,7 @@ mindplot.commands.AddIconToTopicCommand = mindplot.Command.extend( }, undoExecute: function(commandContext) { - var topic = commandContext.findTopics(this._topicId)[0]; + var topic = commandContext.findTopics(this._selectedObjectsIds)[0]; var updated = function() { topic.removeIcon(this._iconModel); topic.updateNode(); diff --git a/mindplot/src/main/javascript/commands/AddLinkToTopicCommand.js b/mindplot/src/main/javascript/commands/AddLinkToTopicCommand.js index 20cc7168..1f3ec09a 100644 --- a/mindplot/src/main/javascript/commands/AddLinkToTopicCommand.js +++ b/mindplot/src/main/javascript/commands/AddLinkToTopicCommand.js @@ -22,13 +22,13 @@ mindplot.commands.AddLinkToTopicCommand = mindplot.Command.extend( initialize: function(topicId,url) { core.assert(topicId, 'topicId can not be null'); - this._topicId = topicId; + this._selectedObjectsIds = topicId; this._url = url; this._id = mindplot.Command._nextUUID(); }, execute: function(commandContext) { - var topic = commandContext.findTopics(this._topicId)[0]; + var topic = commandContext.findTopics(this._selectedObjectsIds)[0]; var updated = function() { topic.addLink(this._url,commandContext._designer); topic.updateNode(); @@ -37,7 +37,7 @@ mindplot.commands.AddLinkToTopicCommand = mindplot.Command.extend( }, undoExecute: function(commandContext) { - var topic = commandContext.findTopics(this._topicId)[0]; + var topic = commandContext.findTopics(this._selectedObjectsIds)[0]; var updated = function() { topic.removeLink(); }.bind(this); diff --git a/mindplot/src/main/javascript/commands/AddNoteToTopicCommand.js b/mindplot/src/main/javascript/commands/AddNoteToTopicCommand.js index 7a11c207..f684473e 100644 --- a/mindplot/src/main/javascript/commands/AddNoteToTopicCommand.js +++ b/mindplot/src/main/javascript/commands/AddNoteToTopicCommand.js @@ -22,13 +22,13 @@ mindplot.commands.AddNoteToTopicCommand = mindplot.Command.extend( initialize: function(topicId,text) { core.assert(topicId, 'topicId can not be null'); - this._topicId = topicId; + this._selectedObjectsIds = topicId; this._text = text; this._id = mindplot.Command._nextUUID(); }, execute: function(commandContext) { - var topic = commandContext.findTopics(this._topicId)[0]; + var topic = commandContext.findTopics(this._selectedObjectsIds)[0]; var updated = function() { topic.addNote(this._text,commandContext._designer); topic.updateNode(); @@ -37,7 +37,7 @@ mindplot.commands.AddNoteToTopicCommand = mindplot.Command.extend( }, undoExecute: function(commandContext) { - var topic = commandContext.findTopics(this._topicId)[0]; + var topic = commandContext.findTopics(this._selectedObjectsIds)[0]; var updated = function() { topic.removeNote(); }.bind(this); diff --git a/mindplot/src/main/javascript/commands/ChangeIconFromTopicCommand.js b/mindplot/src/main/javascript/commands/ChangeIconFromTopicCommand.js index 6e824593..e81f269d 100644 --- a/mindplot/src/main/javascript/commands/ChangeIconFromTopicCommand.js +++ b/mindplot/src/main/javascript/commands/ChangeIconFromTopicCommand.js @@ -24,13 +24,13 @@ mindplot.commands.ChangeIconFromTopicCommand = mindplot.Command.extend( core.assert(topicId, 'topicId can not be null'); core.assert(iconId, 'iconId can not be null'); core.assert(iconType, 'iconType can not be null'); - this._topicId = topicId; + this._selectedObjectsIds = topicId; this._iconModel = iconId; this._iconType = iconType; }, execute: function(commandContext) { - var topic = commandContext.findTopics(this._topicId)[0]; + var topic = commandContext.findTopics(this._selectedObjectsIds)[0]; var updated = function() { topic.removeIcon(this._iconModel); topic.updateNode(); @@ -39,7 +39,7 @@ mindplot.commands.ChangeIconFromTopicCommand = mindplot.Command.extend( }, undoExecute: function(commandContext) { - var topic = commandContext.findTopics(this._topicId)[0]; + var topic = commandContext.findTopics(this._selectedObjectsIds)[0]; var updated = function() { topic.addIcon(this._iconModel, commandContext._designer); topic.updateNode(); diff --git a/mindplot/src/main/javascript/commands/DeleteTopicCommand.js b/mindplot/src/main/javascript/commands/DeleteTopicCommand.js index 2a176134..e35be5e9 100644 --- a/mindplot/src/main/javascript/commands/DeleteTopicCommand.js +++ b/mindplot/src/main/javascript/commands/DeleteTopicCommand.js @@ -22,7 +22,7 @@ mindplot.commands.DeleteTopicCommand = mindplot.Command.extend( initialize: function(topicsIds) { core.assert(topicsIds, "topicsIds must be defined"); - this._topicId = topicsIds; + this._selectedObjectsIds = topicsIds; this._deletedTopicModels = []; this._parentTopicIds = []; this._deletedRelationships = []; @@ -30,7 +30,8 @@ mindplot.commands.DeleteTopicCommand = mindplot.Command.extend( }, execute: function(commandContext) { - var topics = commandContext.findTopics(this._topicId); + var topics = commandContext.findTopics(this._selectedObjectsIds.nodes); + if(topics.length>0){ topics.forEach( function(topic, index) { @@ -59,12 +60,21 @@ mindplot.commands.DeleteTopicCommand = mindplot.Command.extend( commandContext.deleteTopic(topic); }.bind(this) - ); + ); } + var lines = commandContext.findRelationships(this._selectedObjectsIds.relationshipLines); + if(lines.length>0){ + lines.forEach(function(line,index){ + if(line.isInWorkspace()){ + this._deletedRelationships.push(line.getModel().clone()); + commandContext.removeRelationship(line.getModel()); + } + }.bind(this)); + } }, undoExecute: function(commandContext) { - var topics = commandContext.findTopics(this._topicId); + var topics = commandContext.findTopics(this._selectedObjectsIds); var parent = commandContext.findTopics(this._parentTopicIds); this._deletedTopicModels.forEach( diff --git a/mindplot/src/main/javascript/commands/DragTopicCommand.js b/mindplot/src/main/javascript/commands/DragTopicCommand.js index 679fcfaf..adc97355 100644 --- a/mindplot/src/main/javascript/commands/DragTopicCommand.js +++ b/mindplot/src/main/javascript/commands/DragTopicCommand.js @@ -22,7 +22,7 @@ mindplot.commands.DragTopicCommand = mindplot.Command.extend( initialize: function(topicId) { core.assert(topicId, "topicId must be defined"); - this._topicId = topicId; + this._selectedObjectsIds = topicId; this._parentTopic = null; this._position = null; this._order = null; @@ -31,7 +31,7 @@ mindplot.commands.DragTopicCommand = mindplot.Command.extend( execute: function(commandContext) { - var topic = commandContext.findTopics([this._topicId])[0]; + var topic = commandContext.findTopics([this._selectedObjectsIds])[0]; // Save old position ... var origParentTopic = topic.getOutgoingConnectedTopic(); diff --git a/mindplot/src/main/javascript/commands/GenericFunctionCommand.js b/mindplot/src/main/javascript/commands/GenericFunctionCommand.js index eb1250b1..77324ed2 100644 --- a/mindplot/src/main/javascript/commands/GenericFunctionCommand.js +++ b/mindplot/src/main/javascript/commands/GenericFunctionCommand.js @@ -24,7 +24,7 @@ mindplot.commands.GenericFunctionCommand = mindplot.Command.extend( core.assert(commandFunc, "commandFunc must be defined"); core.assert(topicsIds, "topicsIds must be defined"); this._value = value; - this._topicId = topicsIds; + this._selectedObjectsIds = topicsIds; this._commandFunc = commandFunc; this._oldValues = []; this._id = mindplot.Command._nextUUID(); @@ -33,7 +33,7 @@ mindplot.commands.GenericFunctionCommand = mindplot.Command.extend( { if (!this.applied) { - var topics = commandContext.findTopics(this._topicId); + var topics = commandContext.findTopics(this._selectedObjectsIds); topics.forEach(function(topic) { var oldValue = this._commandFunc(topic, this._value); @@ -50,7 +50,7 @@ mindplot.commands.GenericFunctionCommand = mindplot.Command.extend( { if (this.applied) { - var topics = commandContext.findTopics(this._topicId); + var topics = commandContext.findTopics(this._selectedObjectsIds); topics.forEach(function(topic,index) { this._commandFunc(topic, this._oldValues[index]); diff --git a/mindplot/src/main/javascript/commands/MoveControlPointCommand.js b/mindplot/src/main/javascript/commands/MoveControlPointCommand.js index 7242562e..ecc821df 100644 --- a/mindplot/src/main/javascript/commands/MoveControlPointCommand.js +++ b/mindplot/src/main/javascript/commands/MoveControlPointCommand.js @@ -1,59 +1,77 @@ mindplot.commands.MoveControlPointCommand = mindplot.Command.extend( { - initialize: function(ctrlPointControler, point) + initialize: function(ctrlPointController, point) { - core.assert(ctrlPointControler, 'line can not be null'); - this._ctrlPointControler = ctrlPointControler; + core.assert(ctrlPointController, 'line 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(); + switch (point){ + case 0: + this._wasCustom = this._line.getLine().isSrcControlPointCustom(); + this._endPoint = this._line.getLine().getFrom().clone(); + break; + case 1: + this._wasCustom = this._line.getLine().isDestControlPointCustom(); + this._endPoint = this._line.getLine().getTo().clone(); + break; + } this._id = mindplot.Command._nextUUID(); - this._wasCustom=false; this._point = point; - this._controlPoint = null; }, execute: function(commandContext) { - var line = this._ctrlPointControler._line; - var ctrlPoints = line.getLine().getControlPoints(); - var model = line.getModel(); - var point = null; + var model = this._line.getModel(); switch (this._point){ case 0: - if(core.Utils.isDefined(model.getSrcCtrlPoint())){ - this._controlPoint= model.getSrcCtrlPoint().clone(); - } - model.setSrcCtrlPoint(ctrlPoints[0].clone()); - this._wasCustom = line.getLine().isSrcControlPointCustom(); - line.getLine().setIsSrcControlPointCustom(true); + model.setSrcCtrlPoint(this._controlPoint.clone()); + this._line.getLine().setFrom(this._endPoint.x, this._endPoint.y); + this._line.getLine().setIsSrcControlPointCustom(true); + this._line.getLine().setSrcControlPoint(this._controlPoint.clone()); break; case 1: - if(core.Utils.isDefined(model.getDestCtrlPoint())){ - this._controlPoint = model.getDestCtrlPoint().clone(); - } - model.setDestCtrlPoint(ctrlPoints[1].clone()); - this._wasCustom = line.getLine().isDestControlPointCustom(); - line.getLine().setIsDestControlPointCustom(true); + model.setDestCtrlPoint(this._controlPoint.clone()); + this._wasCustom = this._line.getLine().isDestControlPointCustom(); + this._line.getLine().setTo(this._endPoint.x, this._endPoint.y); + this._line.getLine().setIsDestControlPointCustom(true); + this._line.getLine().setDestControlPoint(this._controlPoint.clone()); break; } + if(this._line.isOnFocus()){ + this._line._refreshSelectedShape(); + this._ctrlPointControler.setLine(this._line); + } + this._line.getLine().updateLine(this._point); }, undoExecute: function(commandContext) { - var line = this._ctrlPointControler._line; + var line = this._line; var model = line.getModel(); switch (this._point){ case 0: - if(core.Utils.isDefined(this._controlPoint)){ - model.setSrcCtrlPoint(this._controlPoint.clone()); - line.getLine().setSrcControlPoint(this._controlPoint.clone()); + if(core.Utils.isDefined(this._oldControlPoint)){ + line.getLine().setFrom(this._originalEndPoint.x, this._originalEndPoint.y); + model.setSrcCtrlPoint(this._oldControlPoint.clone()); + line.getLine().setSrcControlPoint(this._oldControlPoint.clone()); line.getLine().setIsSrcControlPointCustom(this._wasCustom); } break; case 1: - if(core.Utils.isDefined(this._controlPoint)){ - model.setDestCtrlPoint(this._controlPoint.clone()); - line.getLine().setDestControlPoint(this._controlPoint.clone()); + if(core.Utils.isDefined(this._oldControlPoint)){ + line.getLine().setTo(this._originalEndPoint.x, this._originalEndPoint.y); + model.setDestCtrlPoint(this._oldControlPoint.clone()); + line.getLine().setDestControlPoint(this._oldControlPoint.clone()); line.getLine().setIsDestControlPointCustom(this._wasCustom); } break; } - this._ctrlPointControler.setLine(line); + this._line.getLine().updateLine(this._point); + if(this._line.isOnFocus()){ + this._ctrlPointControler.setLine(line); + line._refreshSelectedShape(); + } } }); \ No newline at end of file diff --git a/mindplot/src/main/javascript/commands/RemoveIconFromTopicCommand.js b/mindplot/src/main/javascript/commands/RemoveIconFromTopicCommand.js index 0a6d5eea..b4bd097b 100644 --- a/mindplot/src/main/javascript/commands/RemoveIconFromTopicCommand.js +++ b/mindplot/src/main/javascript/commands/RemoveIconFromTopicCommand.js @@ -23,12 +23,12 @@ mindplot.commands.RemoveIconFromTopicCommand = mindplot.Command.extend( { core.assert(topicId, 'topicId can not be null'); core.assert(iconModel, 'iconId can not be null'); - this._topicId = topicId; + this._selectedObjectsIds = topicId; this._iconModel = iconModel; }, execute: function(commandContext) { - var topic = commandContext.findTopics(this._topicId)[0]; + var topic = commandContext.findTopics(this._selectedObjectsIds)[0]; var updated = function() { topic.removeIcon(this._iconModel); topic.updateNode(); @@ -37,7 +37,7 @@ mindplot.commands.RemoveIconFromTopicCommand = mindplot.Command.extend( }, undoExecute: function(commandContext) { - var topic = commandContext.findTopics(this._topicId)[0]; + var topic = commandContext.findTopics(this._selectedObjectsIds)[0]; var updated = function() { var iconType = this._iconModel.getIconType(); var iconImg = topic.addIcon(iconType, commandContext._designer); diff --git a/mindplot/src/main/javascript/commands/RemoveLinkFromTopicCommand.js b/mindplot/src/main/javascript/commands/RemoveLinkFromTopicCommand.js index 70cf48f7..b79ce81a 100644 --- a/mindplot/src/main/javascript/commands/RemoveLinkFromTopicCommand.js +++ b/mindplot/src/main/javascript/commands/RemoveLinkFromTopicCommand.js @@ -22,11 +22,11 @@ mindplot.commands.RemoveLinkFromTopicCommand = mindplot.Command.extend( initialize: function(topicId) { core.assert(topicId, 'topicId can not be null'); - this._topicId = topicId; + this._selectedObjectsIds = topicId; }, execute: function(commandContext) { - var topic = commandContext.findTopics(this._topicId)[0]; + var topic = commandContext.findTopics(this._selectedObjectsIds)[0]; this._url = topic._link.getUrl(); var updated = function() { topic.removeLink(); @@ -35,7 +35,7 @@ mindplot.commands.RemoveLinkFromTopicCommand = mindplot.Command.extend( }, undoExecute: function(commandContext) { - var topic = commandContext.findTopics(this._topicId)[0]; + var topic = commandContext.findTopics(this._selectedObjectsIds)[0]; var updated = function() { topic.addLink(this._url,commandContext._designer); topic.updateNode(); diff --git a/mindplot/src/main/javascript/commands/RemoveNoteFromTopicCommand.js b/mindplot/src/main/javascript/commands/RemoveNoteFromTopicCommand.js index 62fbe532..450f8b7b 100644 --- a/mindplot/src/main/javascript/commands/RemoveNoteFromTopicCommand.js +++ b/mindplot/src/main/javascript/commands/RemoveNoteFromTopicCommand.js @@ -22,11 +22,11 @@ mindplot.commands.RemoveNoteFromTopicCommand = mindplot.Command.extend( initialize: function(topicId) { core.assert(topicId, 'topicId can not be null'); - this._topicId = topicId; + this._selectedObjectsIds = topicId; }, execute: function(commandContext) { - var topic = commandContext.findTopics(this._topicId)[0]; + var topic = commandContext.findTopics(this._selectedObjectsIds)[0]; this._text = topic._note.getText(); var updated = function() { topic.removeNote(); @@ -35,7 +35,7 @@ mindplot.commands.RemoveNoteFromTopicCommand = mindplot.Command.extend( }, undoExecute: function(commandContext) { - var topic = commandContext.findTopics(this._topicId)[0]; + var topic = commandContext.findTopics(this._selectedObjectsIds)[0]; var updated = function() { topic.addNote(this._text,commandContext._designer); topic.updateNode(); diff --git a/wise-webapp/src/main/webapp/WEB-INF/classes/messages.properties b/wise-webapp/src/main/webapp/WEB-INF/classes/messages.properties index 21bf2fd7..b4636a2d 100644 --- a/wise-webapp/src/main/webapp/WEB-INF/classes/messages.properties +++ b/wise-webapp/src/main/webapp/WEB-INF/classes/messages.properties @@ -216,6 +216,8 @@ TOPIC_ICON=Add Icon ICON=Icon TOPIC_LINK=Add Link LINK=Link +TOPIC_RELATIONSHIP=Relationship +RELATION=Relationship TOPIC_NOTE=Add Note NOTE=Note @@ -322,4 +324,4 @@ HISTORY_INFO = Here is the list of the last revisions of you map. REVERT=revert SAMPLE_MAPS=Sample Maps -INVALID_EMAIL_ERROR = The e-mail was not verified \ No newline at end of file +INVALID_EMAIL_ERROR = The e-mail was not verified diff --git a/wise-webapp/src/main/webapp/WEB-INF/classes/messages_es.properties b/wise-webapp/src/main/webapp/WEB-INF/classes/messages_es.properties index 90263de8..6c293958 100644 --- a/wise-webapp/src/main/webapp/WEB-INF/classes/messages_es.properties +++ b/wise-webapp/src/main/webapp/WEB-INF/classes/messages_es.properties @@ -70,8 +70,8 @@ YES=Si NO=No EDITOR.LOADING=Cargando... -SITE.TITLE=WiseMapping -SITE.SLOGAN=Visual Thinking Evolution +SITE.TITLE=Thinkmapping +SITE.SLOGAN=pensando en mapping SAVE=Guardar DISCARD_CHANGES=Descartar cambios ABOUT=Acerca