mirror of
https://bitbucket.org/wisemapping/wisemapping-open-source.git
synced 2024-11-22 14:17:57 +01:00
Drag pivot is not displayed when a node is clicked. Only when the first drag start.
This commit is contained in:
parent
c6fa09ec7d
commit
db74c63943
@ -133,29 +133,19 @@ mindplot.Designer = new Class({
|
|||||||
if (!dragTopic.isFreeLayoutOn(event)) {
|
if (!dragTopic.isFreeLayoutOn(event)) {
|
||||||
// The node is being drag. Is the connection still valid ?
|
// The node is being drag. Is the connection still valid ?
|
||||||
dragConnector.checkConnection(dragTopic);
|
dragConnector.checkConnection(dragTopic);
|
||||||
|
|
||||||
|
if (!dragTopic.isVisible() && dragTopic.isConnected()) {
|
||||||
|
dragTopic.setVisibility(true);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
dragger.addEvent('enddragging', function(event, dragTopic) {
|
dragger.addEvent('enddragging', function(event, dragTopic) {
|
||||||
// Enable all mouse events.
|
|
||||||
for (var i = 0; i < topics.length; i++) {
|
for (var i = 0; i < topics.length; i++) {
|
||||||
topics[i].setMouseEventsEnabled(true);
|
topics[i].setMouseEventsEnabled(true);
|
||||||
}
|
}
|
||||||
// Topic must be positioned in the real board postion.
|
dragTopic.applyChanges(workspace);
|
||||||
if (dragTopic._isInTheWorkspace) {
|
|
||||||
var draggedTopic = dragTopic.getDraggedTopic();
|
|
||||||
|
|
||||||
// Hide topic during draw ...
|
|
||||||
draggedTopic.setBranchVisibility(false);
|
|
||||||
var parentNode = draggedTopic.getParent();
|
|
||||||
dragTopic.applyChanges(workspace);
|
|
||||||
|
|
||||||
// Make all node visible ...
|
|
||||||
draggedTopic.setVisibility(true);
|
|
||||||
if (parentNode != null) {
|
|
||||||
parentNode.setBranchVisibility(true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
return dragger;
|
return dragger;
|
||||||
|
@ -37,7 +37,7 @@ mindplot.DragManager = new Class({
|
|||||||
// Set initial position.
|
// Set initial position.
|
||||||
var dragNode = node.createDragNode();
|
var dragNode = node.createDragNode();
|
||||||
var mousePos = screen.getWorkspaceMousePosition(event);
|
var mousePos = screen.getWorkspaceMousePosition(event);
|
||||||
dragNode.setPosition(mousePos.x, mousePos.y);
|
// dragNode.setPosition(mousePos.x, mousePos.y);
|
||||||
|
|
||||||
// Register mouse move listener ...
|
// Register mouse move listener ...
|
||||||
var mouseMoveListener = dragManager._buildMouseMoveListener(workspace, dragNode, dragManager);
|
var mouseMoveListener = dragManager._buildMouseMoveListener(workspace, dragNode, dragManager);
|
||||||
|
@ -20,13 +20,17 @@ mindplot.DragPivot = new Class({
|
|||||||
initialize:function() {
|
initialize:function() {
|
||||||
this._position = new core.Point();
|
this._position = new core.Point();
|
||||||
this._size = mindplot.DragTopic.PIVOT_SIZE;
|
this._size = mindplot.DragTopic.PIVOT_SIZE;
|
||||||
this._line = null;
|
|
||||||
|
|
||||||
this._straightLine = this._buildStraightLine();
|
this._straightLine = this._buildStraightLine();
|
||||||
this._curvedLine = this._buildCurvedLine();
|
this._curvedLine = this._buildCurvedLine();
|
||||||
this._dragPivot = this._buildRect();
|
this._dragPivot = this._buildRect();
|
||||||
this._connectRect = this._buildRect();
|
this._connectRect = this._buildRect();
|
||||||
this._targetTopic = null;
|
this._targetTopic = null;
|
||||||
|
this._isVisible = false;
|
||||||
|
},
|
||||||
|
|
||||||
|
isVisible:function() {
|
||||||
|
return this._isVisible;
|
||||||
},
|
},
|
||||||
|
|
||||||
getTargetTopic : function() {
|
getTargetTopic : function() {
|
||||||
@ -65,7 +69,7 @@ mindplot.DragPivot = new Class({
|
|||||||
// Calculate pivot connection point ...
|
// Calculate pivot connection point ...
|
||||||
var size = this._size;
|
var size = this._size;
|
||||||
var targetPosition = targetTopic.getPosition();
|
var targetPosition = targetTopic.getPosition();
|
||||||
var line = this._line;
|
var line = this._getConnectionLine();
|
||||||
|
|
||||||
// Update Line position.
|
// Update Line position.
|
||||||
var isAtRight = mindplot.util.Shape.isAtRight(targetPosition, position);
|
var isAtRight = mindplot.util.Shape.isAtRight(targetPosition, position);
|
||||||
@ -77,14 +81,10 @@ mindplot.DragPivot = new Class({
|
|||||||
var cy = position.y - (parseInt(size.height) / 2);
|
var cy = position.y - (parseInt(size.height) / 2);
|
||||||
pivotRect.setPosition(cx, cy);
|
pivotRect.setPosition(cx, cy);
|
||||||
|
|
||||||
// Display elements if it's required...
|
// Make line visible only when the position has been already changed.
|
||||||
if (!pivotRect.isVisible()) {
|
// This solve several strange effects ;)
|
||||||
// Make line visible only when the position has been already changed.
|
var targetPoint = targetTopic.workoutIncomingConnectionPoint(pivotPoint);
|
||||||
// This solve several strange effects ;)
|
line.setTo(targetPoint.x, targetPoint.y);
|
||||||
var targetPoint = targetTopic.workoutIncomingConnectionPoint(pivotPoint);
|
|
||||||
line.setTo(targetPoint.x, targetPoint.y);
|
|
||||||
this.setVisibility(true);
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
|
|
||||||
setPosition : function(point) {
|
setPosition : function(point) {
|
||||||
@ -114,16 +114,36 @@ mindplot.DragPivot = new Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
setVisibility : function(value) {
|
setVisibility : function(value) {
|
||||||
var pivotRect = this._getPivotRect();
|
if (this.isVisible() != value) {
|
||||||
pivotRect.setVisibility(value);
|
|
||||||
|
|
||||||
var connectRect = this._connectRect;
|
var pivotRect = this._getPivotRect();
|
||||||
connectRect.setVisibility(value);
|
pivotRect.setVisibility(value);
|
||||||
if (this._line) {
|
|
||||||
this._line.setVisibility(value);
|
var connectRect = this._connectRect;
|
||||||
|
connectRect.setVisibility(value);
|
||||||
|
|
||||||
|
var line = this._getConnectionLine();
|
||||||
|
if (line) {
|
||||||
|
line.setVisibility(value);
|
||||||
|
}
|
||||||
|
this._isVisible = value;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// If the node is connected, validate that there is a line connecting both...
|
||||||
|
_getConnectionLine : function() {
|
||||||
|
var result = null;
|
||||||
|
var parentTopic = this._targetTopic;
|
||||||
|
if (parentTopic) {
|
||||||
|
if (parentTopic.getType() == mindplot.model.INodeModel.CENTRAL_TOPIC_TYPE) {
|
||||||
|
result = this._straightLine;
|
||||||
|
} else {
|
||||||
|
result = this._curvedLine;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
},
|
||||||
|
|
||||||
addToWorkspace : function(workspace) {
|
addToWorkspace : function(workspace) {
|
||||||
var pivotRect = this._getPivotRect();
|
var pivotRect = this._getPivotRect();
|
||||||
workspace.appendChild(pivotRect);
|
workspace.appendChild(pivotRect);
|
||||||
@ -173,14 +193,7 @@ mindplot.DragPivot = new Class({
|
|||||||
$assert(targetTopic, 'parent can not be null');
|
$assert(targetTopic, 'parent can not be null');
|
||||||
|
|
||||||
this._position = position;
|
this._position = position;
|
||||||
|
|
||||||
this._targetTopic = targetTopic;
|
this._targetTopic = targetTopic;
|
||||||
if (targetTopic.getType() == mindplot.model.INodeModel.CENTRAL_TOPIC_TYPE) {
|
|
||||||
this._line = this._straightLine;
|
|
||||||
} else {
|
|
||||||
this._line = this._curvedLine;
|
|
||||||
}
|
|
||||||
this._line.setVisibility(true);
|
|
||||||
|
|
||||||
// Connected to Rect ...
|
// Connected to Rect ...
|
||||||
var connectRect = this._connectRect;
|
var connectRect = this._connectRect;
|
||||||
@ -211,6 +224,5 @@ mindplot.DragPivot = new Class({
|
|||||||
|
|
||||||
this.setVisibility(false);
|
this.setVisibility(false);
|
||||||
this._targetTopic = null;
|
this._targetTopic = null;
|
||||||
this._line = null;
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -67,6 +67,16 @@ mindplot.DragTopic = new Class({
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
setVisibility:function(value) {
|
||||||
|
var dragPivot = this._getDragPivot();
|
||||||
|
dragPivot.setVisibility(value);
|
||||||
|
},
|
||||||
|
|
||||||
|
isVisible:function() {
|
||||||
|
var dragPivot = this._getDragPivot();
|
||||||
|
return dragPivot.isVisible();
|
||||||
|
},
|
||||||
|
|
||||||
getInnerShape : function() {
|
getInnerShape : function() {
|
||||||
return this._elem2d;
|
return this._elem2d;
|
||||||
},
|
},
|
||||||
@ -110,6 +120,7 @@ mindplot.DragTopic = new Class({
|
|||||||
var dragPivot = this._getDragPivot();
|
var dragPivot = this._getDragPivot();
|
||||||
var position = predict.position;
|
var position = predict.position;
|
||||||
dragPivot.connectTo(parent, position);
|
dragPivot.connectTo(parent, position);
|
||||||
|
dragPivot.setVisibility(true);
|
||||||
|
|
||||||
this.setOrder(predict.order);
|
this.setOrder(predict.order);
|
||||||
},
|
},
|
||||||
|
@ -1163,6 +1163,7 @@ mindplot.Topic = new Class({
|
|||||||
var targetTopic = this.getOutgoingConnectedTopic();
|
var targetTopic = this.getOutgoingConnectedTopic();
|
||||||
if ($defined(targetTopic)) {
|
if ($defined(targetTopic)) {
|
||||||
result.connectTo(targetTopic);
|
result.connectTo(targetTopic);
|
||||||
|
result.setVisibility(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
// If a drag node is create for it, let's hide the editor.
|
// If a drag node is create for it, let's hide the editor.
|
||||||
|
@ -174,7 +174,7 @@ mindplot.layout.Node = new Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
toString: function() {
|
toString: function() {
|
||||||
return "[id:" + this.getId() + ", order:" + this.getOrder() + ", position: {" + this.getPosition().x + "," + this.getPosition().y + "}, size: {" + this.getSize().width + "}," + this.getSize().height + ", shrink:" + this.areChildrenShrunken() + "]";
|
return "[id:" + this.getId() + ", order:" + this.getOrder() + ", position: {" + this.getPosition().x + "," + this.getPosition().y + "}, size: {" + this.getSize().width + "," + this.getSize().height + "}, shrink:" + this.areChildrenShrunken() + "]";
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user