Mon 21 Jul 22:43:21 CEST 2025
This commit is contained in:
parent
970afdaa32
commit
cd6cbd2ff7
244
js/ui/mxgraph/src/js/util/mxMouseEvent.js
Normal file
244
js/ui/mxgraph/src/js/util/mxMouseEvent.js
Normal file
|
@ -0,0 +1,244 @@
|
|||
/**
|
||||
* Copyright (c) 2006-2015, JGraph Ltd
|
||||
* Copyright (c) 2006-2015, Gaudenz Alder
|
||||
*/
|
||||
/**
|
||||
* Class: mxMouseEvent
|
||||
*
|
||||
* Base class for all mouse events in mxGraph. A listener for this event should
|
||||
* implement the following methods:
|
||||
*
|
||||
* (code)
|
||||
* graph.addMouseListener(
|
||||
* {
|
||||
* mouseDown: function(sender, evt)
|
||||
* {
|
||||
* mxLog.debug('mouseDown');
|
||||
* },
|
||||
* mouseMove: function(sender, evt)
|
||||
* {
|
||||
* mxLog.debug('mouseMove');
|
||||
* },
|
||||
* mouseUp: function(sender, evt)
|
||||
* {
|
||||
* mxLog.debug('mouseUp');
|
||||
* }
|
||||
* });
|
||||
* (end)
|
||||
*
|
||||
* Constructor: mxMouseEvent
|
||||
*
|
||||
* Constructs a new event object for the given arguments.
|
||||
*
|
||||
* Parameters:
|
||||
*
|
||||
* evt - Native mouse event.
|
||||
* state - Optional <mxCellState> under the mouse.
|
||||
*
|
||||
*/
|
||||
function mxMouseEvent(evt, state)
|
||||
{
|
||||
this.evt = evt;
|
||||
this.state = state;
|
||||
this.sourceState = state;
|
||||
};
|
||||
|
||||
/**
|
||||
* Variable: consumed
|
||||
*
|
||||
* Holds the consumed state of this event.
|
||||
*/
|
||||
mxMouseEvent.prototype.consumed = false;
|
||||
|
||||
/**
|
||||
* Variable: evt
|
||||
*
|
||||
* Holds the inner event object.
|
||||
*/
|
||||
mxMouseEvent.prototype.evt = null;
|
||||
|
||||
/**
|
||||
* Variable: graphX
|
||||
*
|
||||
* Holds the x-coordinate of the event in the graph. This value is set in
|
||||
* <mxGraph.fireMouseEvent>.
|
||||
*/
|
||||
mxMouseEvent.prototype.graphX = null;
|
||||
|
||||
/**
|
||||
* Variable: graphY
|
||||
*
|
||||
* Holds the y-coordinate of the event in the graph. This value is set in
|
||||
* <mxGraph.fireMouseEvent>.
|
||||
*/
|
||||
mxMouseEvent.prototype.graphY = null;
|
||||
|
||||
/**
|
||||
* Variable: state
|
||||
*
|
||||
* Holds the optional <mxCellState> associated with this event.
|
||||
*/
|
||||
mxMouseEvent.prototype.state = null;
|
||||
|
||||
/**
|
||||
* Variable: sourceState
|
||||
*
|
||||
* Holds the <mxCellState> that was passed to the constructor. This can be
|
||||
* different from <state> depending on the result of <mxGraph.getEventState>.
|
||||
*/
|
||||
mxMouseEvent.prototype.sourceState = null;
|
||||
|
||||
/**
|
||||
* Function: getEvent
|
||||
*
|
||||
* Returns <evt>.
|
||||
*/
|
||||
mxMouseEvent.prototype.getEvent = function()
|
||||
{
|
||||
return this.evt;
|
||||
};
|
||||
|
||||
/**
|
||||
* Function: getSource
|
||||
*
|
||||
* Returns the target DOM element using <mxEvent.getSource> for <evt>.
|
||||
*/
|
||||
mxMouseEvent.prototype.getSource = function()
|
||||
{
|
||||
return mxEvent.getSource(this.evt);
|
||||
};
|
||||
|
||||
/**
|
||||
* Function: isSource
|
||||
*
|
||||
* Returns true if the given <mxShape> is the source of <evt>.
|
||||
*/
|
||||
mxMouseEvent.prototype.isSource = function(shape)
|
||||
{
|
||||
if (shape != null)
|
||||
{
|
||||
return mxUtils.isAncestorNode(shape.node, this.getSource());
|
||||
}
|
||||
|
||||
return false;
|
||||
};
|
||||
|
||||
/**
|
||||
* Function: getX
|
||||
*
|
||||
* Returns <evt.clientX>.
|
||||
*/
|
||||
mxMouseEvent.prototype.getX = function()
|
||||
{
|
||||
return mxEvent.getClientX(this.getEvent());
|
||||
};
|
||||
|
||||
/**
|
||||
* Function: getY
|
||||
*
|
||||
* Returns <evt.clientY>.
|
||||
*/
|
||||
mxMouseEvent.prototype.getY = function()
|
||||
{
|
||||
return mxEvent.getClientY(this.getEvent());
|
||||
};
|
||||
|
||||
/**
|
||||
* Function: getGraphX
|
||||
*
|
||||
* Returns <graphX>.
|
||||
*/
|
||||
mxMouseEvent.prototype.getGraphX = function()
|
||||
{
|
||||
return this.graphX;
|
||||
};
|
||||
|
||||
/**
|
||||
* Function: getGraphY
|
||||
*
|
||||
* Returns <graphY>.
|
||||
*/
|
||||
mxMouseEvent.prototype.getGraphY = function()
|
||||
{
|
||||
return this.graphY;
|
||||
};
|
||||
|
||||
/**
|
||||
* Function: getState
|
||||
*
|
||||
* Returns <state>.
|
||||
*/
|
||||
mxMouseEvent.prototype.getState = function()
|
||||
{
|
||||
return this.state;
|
||||
};
|
||||
|
||||
/**
|
||||
* Function: getCell
|
||||
*
|
||||
* Returns the <mxCell> in <state> is not null.
|
||||
*/
|
||||
mxMouseEvent.prototype.getCell = function()
|
||||
{
|
||||
var state = this.getState();
|
||||
|
||||
if (state != null)
|
||||
{
|
||||
return state.cell;
|
||||
}
|
||||
|
||||
return null;
|
||||
};
|
||||
|
||||
/**
|
||||
* Function: isPopupTrigger
|
||||
*
|
||||
* Returns true if the event is a popup trigger.
|
||||
*/
|
||||
mxMouseEvent.prototype.isPopupTrigger = function()
|
||||
{
|
||||
return mxEvent.isPopupTrigger(this.getEvent());
|
||||
};
|
||||
|
||||
/**
|
||||
* Function: isConsumed
|
||||
*
|
||||
* Returns <consumed>.
|
||||
*/
|
||||
mxMouseEvent.prototype.isConsumed = function()
|
||||
{
|
||||
return this.consumed;
|
||||
};
|
||||
|
||||
/**
|
||||
* Function: consume
|
||||
*
|
||||
* Sets <consumed> to true and invokes preventDefault on the native event
|
||||
* if such a method is defined. This is used mainly to avoid the cursor from
|
||||
* being changed to a text cursor in Webkit. You can use the preventDefault
|
||||
* flag to disable this functionality.
|
||||
*
|
||||
* Parameters:
|
||||
*
|
||||
* preventDefault - Specifies if the native event should be canceled. Default
|
||||
* is true.
|
||||
*/
|
||||
mxMouseEvent.prototype.consume = function(preventDefault)
|
||||
{
|
||||
preventDefault = (preventDefault != null) ? preventDefault : true;
|
||||
|
||||
if (preventDefault && this.evt.preventDefault)
|
||||
{
|
||||
this.evt.preventDefault();
|
||||
}
|
||||
|
||||
// Workaround for images being dragged in IE
|
||||
// Does not change returnValue in Opera
|
||||
if (mxClient.IS_IE)
|
||||
{
|
||||
this.evt.returnValue = true;
|
||||
}
|
||||
|
||||
// Sets local consumed state
|
||||
this.consumed = true;
|
||||
};
|
Loading…
Reference in New Issue
Block a user