diff --git a/mindplot/src/main/javascript/MindmapDesigner.js b/mindplot/src/main/javascript/MindmapDesigner.js index 2e535152..fbece68c 100644 --- a/mindplot/src/main/javascript/MindmapDesigner.js +++ b/mindplot/src/main/javascript/MindmapDesigner.js @@ -589,6 +589,7 @@ mindplot.MindmapDesigner.prototype._relationshipModelToRelationship = function(m sourceTopic.addRelationship(relationship); var targetTopic = relationship.getTargetTopic(); targetTopic.addRelationship(relationship); + relationship.setVisibility(sourceTopic.isVisible() && targetTopic.isVisible()); var workspace = this._workspace; workspace.appendChild(relationship); relationship.redraw(); @@ -1420,3 +1421,14 @@ mindplot.MindmapDesigner.prototype.getWorkSpace = function() { return this._workspace; }; + +mindplot.MindmapDesigner.prototype.findRelationShipsByTopicId = function(topicId){ + var result = []; + for(var relationshipId in this._relationships){ + var relationship = this._relationships[relationshipId]; + if(relationship.getModel().getFromNode()==topicId || relationship.getModel().getToNode()==topicId){ + result.push(relationship); + } + } + return result; +}; diff --git a/mindplot/src/main/javascript/Topic.js b/mindplot/src/main/javascript/Topic.js index b835e401..395ca67a 100644 --- a/mindplot/src/main/javascript/Topic.js +++ b/mindplot/src/main/javascript/Topic.js @@ -989,6 +989,20 @@ mindplot.Topic.prototype.setVisibility = function(value) // Hide all children... this._setChildrenVisibility(value); + + this._setRelationshipLinesVisibility(value); +}; + +mindplot.Topic.prototype.isVisible = function(){ + var elem = this.get2DElement(); + return elem.isVisible(); +}; + +mindplot.Topic.prototype._setRelationshipLinesVisibility = function(value){ + var relationships = designer.findRelationShipsByTopicId(this.getId()); + relationships.forEach(function(relationship, index){ + relationship.setVisibility(value); + }); }; mindplot.Topic.prototype._setTopicVisibility = function(value) @@ -1018,9 +1032,7 @@ mindplot.Topic.prototype._setChildrenVisibility = function(isVisible) for (var i = 0; i < children.length; i++) { var child = children[i]; - child._setChildrenVisibility(isVisible); - - child._setTopicVisibility(isVisible); + child.setVisibility(isVisible); var outgoingLine = child.getOutgoingLine(); outgoingLine.setVisibility(isVisible);