parent
667f5653a7
commit
887c3f7570
1 changed files with 12 additions and 25 deletions
|
@ -763,6 +763,8 @@ const JIT = {
|
||||||
var authorized = Active.Map && Active.Map.authorizeToEdit(Active.Mapper)
|
var authorized = Active.Map && Active.Map.authorizeToEdit(Active.Mapper)
|
||||||
|
|
||||||
if (node && !node.nodeFrom) {
|
if (node && !node.nodeFrom) {
|
||||||
|
self.handleSelectionBeforeDragging(node, e)
|
||||||
|
|
||||||
var pos = eventInfo.getPos(),
|
var pos = eventInfo.getPos(),
|
||||||
EDGE_THICKNESS = 30 /** Metamaps.Visualize.mGraph.canvas.scaleOffsetX*/,
|
EDGE_THICKNESS = 30 /** Metamaps.Visualize.mGraph.canvas.scaleOffsetX*/,
|
||||||
SHIFT = 2 / Metamaps.Visualize.mGraph.canvas.scaleOffsetX,
|
SHIFT = 2 / Metamaps.Visualize.mGraph.canvas.scaleOffsetX,
|
||||||
|
@ -865,17 +867,6 @@ const JIT = {
|
||||||
self.updateTopicPositions(node,pos);
|
self.updateTopicPositions(node,pos);
|
||||||
Visualize.mGraph.plot()
|
Visualize.mGraph.plot()
|
||||||
}
|
}
|
||||||
|
|
||||||
// if the node dragged isn't already selected, select it
|
|
||||||
var whatToDo = self.handleSelectionBeforeDragging(node, e)
|
|
||||||
if (node.pos.rho || node.pos.rho === 0) {
|
|
||||||
// this means we're in topic view
|
|
||||||
var rho = Math.sqrt(pos.x * pos.x + pos.y * pos.y)
|
|
||||||
var theta = Math.atan2(pos.y, pos.x)
|
|
||||||
node.pos.setp(theta, rho)
|
|
||||||
} else {
|
|
||||||
//self.updateTopicPositions(node,pos);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
// if it's a right click or holding down alt, start synapse creation ->third option is for firefox
|
// if it's a right click or holding down alt, start synapse creation ->third option is for firefox
|
||||||
else if ((e.button === 2 || (e.button === 0 && e.altKey) || e.buttons === 2) && authorized) {
|
else if ((e.button === 2 || (e.button === 0 && e.altKey) || e.buttons === 2) && authorized) {
|
||||||
|
@ -946,7 +937,7 @@ const JIT = {
|
||||||
GlobalUI.notifyUser('Cannot create in Topic view.')
|
GlobalUI.notifyUser('Cannot create in Topic view.')
|
||||||
}
|
}
|
||||||
else if ((e.button === 2 || (e.button === 0 && e.altKey) || e.buttons === 2) && !authorized) {
|
else if ((e.button === 2 || (e.button === 0 && e.altKey) || e.buttons === 2) && !authorized) {
|
||||||
GlobalUI.notifyUser('Cannot edit Public map.')
|
GlobalUI.notifyUser('Cannot edit this map.')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, // onDragMoveTopicHandler
|
}, // onDragMoveTopicHandler
|
||||||
|
@ -1086,15 +1077,21 @@ const JIT = {
|
||||||
var yOffset = []
|
var yOffset = []
|
||||||
for (var i = 0; i < len; i += 1) {
|
for (var i = 0; i < len; i += 1) {
|
||||||
var n = Selected.Nodes[i]
|
var n = Selected.Nodes[i]
|
||||||
xOffset[i] = n.pos.x - node.pos.x
|
xOffset[i] = n.pos.getc().x - node.pos.getc().x
|
||||||
yOffset[i] = n.pos.y - node.pos.y
|
yOffset[i] = n.pos.getc().y - node.pos.getc().y
|
||||||
} // for
|
} // for
|
||||||
|
|
||||||
for (var i = 0; i < len; i += 1) {
|
for (var i = 0; i < len; i += 1) {
|
||||||
var n = Selected.Nodes[i]
|
var n = Selected.Nodes[i]
|
||||||
var x = pos.x + xOffset[i]
|
var x = pos.x + xOffset[i]
|
||||||
var y = pos.y + yOffset[i]
|
var y = pos.y + yOffset[i]
|
||||||
n.pos.setc(x, y)
|
if (n.pos.rho || n.pos.rho === 0) {
|
||||||
|
// this means we're in topic view
|
||||||
|
var rho = Math.sqrt(x * x + y * y)
|
||||||
|
var theta = Math.atan2(y, x)
|
||||||
|
n.pos.setp(theta, rho)
|
||||||
|
}
|
||||||
|
else n.pos.setc(x, y)
|
||||||
|
|
||||||
if (Active.Map) {
|
if (Active.Map) {
|
||||||
topic = n.getData('topic')
|
topic = n.getData('topic')
|
||||||
|
@ -1130,28 +1127,18 @@ const JIT = {
|
||||||
}
|
}
|
||||||
}, // nodeWasDoubleClicked
|
}, // nodeWasDoubleClicked
|
||||||
handleSelectionBeforeDragging: function (node, e) {
|
handleSelectionBeforeDragging: function (node, e) {
|
||||||
// four cases:
|
|
||||||
// 1 nothing is selected, so pretend you aren't selecting
|
|
||||||
// 2 others are selected only and shift, so additionally select this one
|
|
||||||
// 3 others are selected only, no shift: drag only this one
|
|
||||||
// 4 this node and others were selected, so drag them (just return false)
|
|
||||||
if (Selected.Nodes.length === 0) {
|
if (Selected.Nodes.length === 0) {
|
||||||
Control.selectNode(node, e)
|
Control.selectNode(node, e)
|
||||||
return 'only-drag-this-one'
|
|
||||||
}
|
}
|
||||||
if (Selected.Nodes.indexOf(node) === -1) {
|
if (Selected.Nodes.indexOf(node) === -1) {
|
||||||
if (e.shiftKey) {
|
if (e.shiftKey) {
|
||||||
Control.selectNode(node, e)
|
Control.selectNode(node, e)
|
||||||
return 'move-all-incuding-this-one'
|
|
||||||
} else {
|
} else {
|
||||||
Control.deselectAllEdges()
|
Control.deselectAllEdges()
|
||||||
Control.deselectAllNodes()
|
Control.deselectAllNodes()
|
||||||
Control.selectNode(node, e)
|
Control.selectNode(node, e)
|
||||||
return 'only-drag-this-one'
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return 'move-all'; // case 4?
|
|
||||||
|
|
||||||
}, // handleSelectionBeforeDragging
|
}, // handleSelectionBeforeDragging
|
||||||
getNodeXY: function (node) {
|
getNodeXY: function (node) {
|
||||||
if (typeof node.pos.x === 'number' && typeof node.pos.y === 'number') {
|
if (typeof node.pos.x === 'number' && typeof node.pos.y === 'number') {
|
||||||
|
|
Loading…
Reference in a new issue