- Click on the desktop unselect node.

- Drad on workspace clean editor events.
This commit is contained in:
Paulo Veiga
2011-08-13 12:33:37 -03:00
parent 96b40058cc
commit 4e0becef47
8 changed files with 108 additions and 66 deletions

View File

@@ -142,23 +142,25 @@ mindplot.Workspace = new Class({
},
dumpNativeChart: function() {
var workspace = this._workspace;
return workspace.dumpNativeChart();
return this._workspace.dumpNativeChart();
},
_registerDragEvents: function() {
var workspace = this._workspace;
var screenManager = this._screenManager;
this._dragging = true;
var mWorkspace = this;
var mouseDownListener = function(event) {
if (!$defined(workspace.mouseMoveListener)) {
if (mWorkspace.isWorkspaceEventsEnabled()) {
if (!$defined(workspace._mouseMoveListener))
{
if (mWorkspace.isWorkspaceEventsEnabled())
{
mWorkspace.enableWorkspaceEvents(false);
var mouseDownPosition = screenManager.getWorkspaceMousePosition(event);
var originalCoordOrigin = workspace.getCoordOrigin();
workspace.mouseMoveListener = function(event) {
var wasDragged = false;
workspace._mouseMoveListener = function(event) {
var currentMousePosition = screenManager.getWorkspaceMousePosition(event);
@@ -177,30 +179,41 @@ mindplot.Workspace = new Class({
window.document.body.style.cursor = "move";
}
event.preventDefault();
}.bindWithEvent(this);
screenManager.addEventListener('mousemove', workspace.mouseMoveListener);
// Fire drag event ...
screenManager.fireEvent('drag',new Event());
wasDragged = true;
}.bind(this);
screenManager.addEvent('mousemove', workspace._mouseMoveListener);
// Register mouse up listeners ...
workspace.mouseUpListener = function(event) {
workspace._mouseUpListener = function(event) {
screenManager.removeEventListener('mousemove', workspace.mouseMoveListener);
screenManager.removeEventListener('mouseup', workspace.mouseUpListener);
workspace.mouseUpListener = null;
workspace.mouseMoveListener = null;
screenManager.removeEvent('mousemove', workspace._mouseMoveListener);
screenManager.removeEvent('mouseup', workspace._mouseUpListener);
workspace._mouseUpListener = null;
workspace._mouseMoveListener = null;
window.document.body.style.cursor = 'default';
// Update screen manager offset.
var coordOrigin = workspace.getCoordOrigin();
screenManager.setOffset(coordOrigin.x, coordOrigin.y);
mWorkspace.enableWorkspaceEvents(true);
},
screenManager.addEventListener('mouseup', workspace.mouseUpListener);
if(!wasDragged)
{
screenManager.fireEvent('click',new Event());
}
};
screenManager.addEvent('mouseup', workspace._mouseUpListener);
}
} else {
workspace.mouseUpListener();
workspace._mouseUpListener();
}
};
screenManager.addEventListener('mousedown', mouseDownListener);
screenManager.addEvent('mousedown', mouseDownListener);
}
});