fixing connection lines and rollbacking unnecesary changes

This commit is contained in:
Pablo Luna 2010-12-31 15:11:32 -03:00
parent 85804b74a4
commit fa58c683c0
5 changed files with 70 additions and 117 deletions

View File

@ -29,29 +29,9 @@ mindplot.CentralTopic = function(model)
objects.extend(mindplot.CentralTopic, mindplot.Topic); objects.extend(mindplot.CentralTopic, mindplot.Topic);
mindplot.CentralTopic.prototype.workoutIncomingConnectionPoint = function(sourcePosition, onBoundingBox) mindplot.CentralTopic.prototype.workoutIncomingConnectionPoint = function(sourcePosition)
{ {
if(!core.Utils.isDefined(onBoundingBox)){ return this.getPosition();
onBoundingBox=false;
}
var pos = this.getPosition();
var size = this.getSize();
var isAtRight = mindplot.util.Shape.isAtRight(sourcePosition, pos);
var result = null;
if(onBoundingBox){
result = new core.Point();
if(isAtRight){
console.log("incomming at right");
result.x = pos.x - (size.width/2)-20;
result.y = pos.y;
} else {
result.x = pos.x;
result.y = pos.y;
}
}else{
result = pos;
}
return result;
}; };
mindplot.CentralTopic.prototype.getTopicType = function() mindplot.CentralTopic.prototype.getTopicType = function()

View File

@ -92,8 +92,8 @@ mindplot.ConnectionLine.prototype.redraw = function()
sPos = sourceTopic.workoutOutgoingConnectionPoint(targetPosition, false); sPos = sourceTopic.workoutOutgoingConnectionPoint(targetPosition, false);
tPos = targetTopic.workoutIncomingConnectionPoint(sourcePosition, false); tPos = targetTopic.workoutIncomingConnectionPoint(sourcePosition, false);
line2d.setFrom(sPos.x, sPos.y); line2d.setFrom(tPos.x, tPos.y);
line2d.setTo(tPos.x, tPos.y); line2d.setTo(sPos.x, sPos.y);
line2d.moveToBack(); line2d.moveToBack();

View File

@ -74,7 +74,7 @@ mindplot.FixedDistanceBoard.prototype.updateReferencePoint = function()
{ {
var entries = this._entries; var entries = this._entries;
var parentTopic = this.getTopic(); var parentTopic = this.getTopic();
var parentPosition = parentTopic.workoutIncomingConnectionPoint(parentTopic); var parentPosition = parentTopic.workoutIncomingConnectionPoint(parentTopic.getPosition());
var referencePoint = this.getReferencePoint(); var referencePoint = this.getReferencePoint();
var yOffset = parentPosition.y - referencePoint.y; var yOffset = parentPosition.y - referencePoint.y;

View File

@ -201,18 +201,13 @@ mindplot.MainTopic.prototype.setPosition = function(point)
topicBoard.updateChildrenPosition(this); topicBoard.updateChildrenPosition(this);
}; };
mindplot.MainTopic.prototype.workoutIncomingConnectionPoint = function(sourcePosition, onBoundingBox) mindplot.MainTopic.prototype.workoutIncomingConnectionPoint = function(sourcePosition)
{ {
if(!core.Utils.isDefined(onBoundingBox)){
onBoundingBox=false;
}
core.assert(sourcePosition, 'sourcePoint can not be null'); core.assert(sourcePosition, 'sourcePoint can not be null');
var pos = this.getPosition(); var pos = this.getPosition();
var size = this.getSize(); var size = this.getSize();
var isAtRight = mindplot.util.Shape.isAtRight(sourcePosition, pos); var isAtRight = mindplot.util.Shape.isAtRight(sourcePosition, pos);
var result = mindplot.util.Shape.calculateRectConnectionPoint(pos, size, isAtRight); var result = mindplot.util.Shape.calculateRectConnectionPoint(pos, size, isAtRight);
if (this.getShapeType() == mindplot.NodeModel.SHAPE_TYPE_LINE) if (this.getShapeType() == mindplot.NodeModel.SHAPE_TYPE_LINE)
{ {
@ -228,17 +223,55 @@ mindplot.MainTopic.prototype.workoutIncomingConnectionPoint = function(sourcePos
{ {
result.x = result.x - offset; result.x = result.x - offset;
} }
if(onBoundingBox){
if(isAtRight){
result.x -= 10;
} else{
result.x += 10;
}
}
return result; return result;
}; };
mindplot.MainTopic.prototype.workoutOutgoingConnectionPoint = function(targetPosition)
{
core.assert(targetPosition, 'targetPoint can not be null');
var pos = this.getPosition();
var size = this.getSize();
var isAtRight = mindplot.util.Shape.isAtRight(targetPosition, pos);
var result;
if (this.getShapeType() == mindplot.NodeModel.SHAPE_TYPE_LINE)
{
if (!this.isConnectedToCentralTopic())
{
result = new core.Point();
if (!isAtRight)
{
result.x = pos.x - (size.width / 2);
} else
{
result.x = pos.x + (size.width / 2);
}
result.y = pos.y + (size.height / 2);
} else
{
// In this case, connetion line is not used as shape figure.
result = mindplot.util.Shape.calculateRectConnectionPoint(pos, size, isAtRight, true);
result.y = pos.y + (size.height / 2);
// Correction factor ...
if (!isAtRight)
{
result.x = result.x + 2;
} else
{
result.x = result.x - 2;
}
}
} else
{
result = mindplot.util.Shape.calculateRectConnectionPoint(pos, size, isAtRight, true);
}
return result;
};
mindplot.MainTopic.prototype.isConnectedToCentralTopic = function() mindplot.MainTopic.prototype.isConnectedToCentralTopic = function()
{ {
var model = this.getModel(); var model = this.getModel();

View File

@ -1291,63 +1291,3 @@ mindplot.Topic.prototype.updateNode = function()
textShape.setTextSize(sizeWidth, sizeHeight); textShape.setTextSize(sizeWidth, sizeHeight);
} }
}; };
mindplot.Topic.prototype.workoutOutgoingConnectionPoint = function(targetPosition, onBoundingBox)
{
if(!core.Utils.isDefined(onBoundingBox)){
onBoundingBox=false;
}
core.assert(targetPosition, 'targetPoint can not be null');
var pos = this.getPosition();
var size = this.getSize();
var isAtRight = mindplot.util.Shape.isAtRight(targetPosition, pos);
var result;
if(onBoundingBox){
result = new core.Point();
if(isAtRight){
result.x = pos.x - (size.width/2)-5;
result.y = pos.y;
} else {
result.x = pos.x + (size.width/2)+ 5;
result.y = pos.y;
}
}
else{
if (this.getShapeType() == mindplot.NodeModel.SHAPE_TYPE_LINE)
{
if (!this.isConnectedToCentralTopic())
{
result = new core.Point();
if (!isAtRight)
{
result.x = pos.x - (size.width / 2);
} else
{
result.x = pos.x + (size.width / 2);
}
result.y = pos.y + (size.height / 2);
} else
{
// In this case, connetion line is not used as shape figure.
result = mindplot.util.Shape.calculateRectConnectionPoint(pos, size, isAtRight, true);
result.y = pos.y + (size.height / 2);
// Correction factor ...
if (!isAtRight)
{
result.x = result.x + 2;
} else
{
result.x = result.x - 2;
}
}
} else
{
result = mindplot.util.Shape.calculateRectConnectionPoint(pos, size, isAtRight, true);
}
}
return result;
};