
resources.mxgraph.3.9.1.src.js.view.mxGraphSelectionModel.js Maven / Gradle / Ivy
/**
* Copyright (c) 2006-2015, JGraph Ltd
* Copyright (c) 2006-2015, Gaudenz Alder
*/
/**
* Class: mxGraphSelectionModel
*
* Implements the selection model for a graph. Here is a listener that handles
* all removed selection cells.
*
* (code)
* graph.getSelectionModel().addListener(mxEvent.CHANGE, function(sender, evt)
* {
* var cells = evt.getProperty('added');
*
* for (var i = 0; i < cells.length; i++)
* {
* // Handle cells[i]...
* }
* });
* (end)
*
* Event: mxEvent.UNDO
*
* Fires after the selection was changed in . The
* edit
property contains the which contains the
* .
*
* Event: mxEvent.CHANGE
*
* Fires after the selection changes by executing an . The
* added
and removed
properties contain arrays of
* cells that have been added to or removed from the selection, respectively.
* The names are inverted due to historic reasons. This cannot be changed.
*
* Constructor: mxGraphSelectionModel
*
* Constructs a new graph selection model for the given .
*
* Parameters:
*
* graph - Reference to the enclosing .
*/
function mxGraphSelectionModel(graph)
{
this.graph = graph;
this.cells = [];
};
/**
* Extends mxEventSource.
*/
mxGraphSelectionModel.prototype = new mxEventSource();
mxGraphSelectionModel.prototype.constructor = mxGraphSelectionModel;
/**
* Variable: doneResource
*
* Specifies the resource key for the status message after a long operation.
* If the resource for this key does not exist then the value is used as
* the status message. Default is 'done'.
*/
mxGraphSelectionModel.prototype.doneResource = (mxClient.language != 'none') ? 'done' : '';
/**
* Variable: updatingSelectionResource
*
* Specifies the resource key for the status message while the selection is
* being updated. If the resource for this key does not exist then the
* value is used as the status message. Default is 'updatingSelection'.
*/
mxGraphSelectionModel.prototype.updatingSelectionResource = (mxClient.language != 'none') ? 'updatingSelection' : '';
/**
* Variable: graph
*
* Reference to the enclosing .
*/
mxGraphSelectionModel.prototype.graph = null;
/**
* Variable: singleSelection
*
* Specifies if only one selected item at a time is allowed.
* Default is false.
*/
mxGraphSelectionModel.prototype.singleSelection = false;
/**
* Function: isSingleSelection
*
* Returns as a boolean.
*/
mxGraphSelectionModel.prototype.isSingleSelection = function()
{
return this.singleSelection;
};
/**
* Function: setSingleSelection
*
* Sets the flag.
*
* Parameters:
*
* singleSelection - Boolean that specifies the new value for
* .
*/
mxGraphSelectionModel.prototype.setSingleSelection = function(singleSelection)
{
this.singleSelection = singleSelection;
};
/**
* Function: isSelected
*
* Returns true if the given is selected.
*/
mxGraphSelectionModel.prototype.isSelected = function(cell)
{
if (cell != null)
{
return mxUtils.indexOf(this.cells, cell) >= 0;
}
return false;
};
/**
* Function: isEmpty
*
* Returns true if no cells are currently selected.
*/
mxGraphSelectionModel.prototype.isEmpty = function()
{
return this.cells.length == 0;
};
/**
* Function: clear
*
* Clears the selection and fires a event if the selection was not
* empty.
*/
mxGraphSelectionModel.prototype.clear = function()
{
this.changeSelection(null, this.cells);
};
/**
* Function: setCell
*
* Selects the specified using .
*
* Parameters:
*
* cell - to be selected.
*/
mxGraphSelectionModel.prototype.setCell = function(cell)
{
if (cell != null)
{
this.setCells([cell]);
}
};
/**
* Function: setCells
*
* Selects the given array of and fires a event.
*
* Parameters:
*
* cells - Array of to be selected.
*/
mxGraphSelectionModel.prototype.setCells = function(cells)
{
if (cells != null)
{
if (this.singleSelection)
{
cells = [this.getFirstSelectableCell(cells)];
}
var tmp = [];
for (var i = 0; i < cells.length; i++)
{
if (this.graph.isCellSelectable(cells[i]))
{
tmp.push(cells[i]);
}
}
this.changeSelection(tmp, this.cells);
}
};
/**
* Function: getFirstSelectableCell
*
* Returns the first selectable cell in the given array of cells.
*/
mxGraphSelectionModel.prototype.getFirstSelectableCell = function(cells)
{
if (cells != null)
{
for (var i = 0; i < cells.length; i++)
{
if (this.graph.isCellSelectable(cells[i]))
{
return cells[i];
}
}
}
return null;
};
/**
* Function: addCell
*
* Adds the given to the selection and fires a
© 2015 - 2025 Weber Informatics LLC | Privacy Policy