Singleton that implements a clipboard for graph cells.
mxClipboard.copy(graph); mxClipboard.paste(graph2);
This copies the selection cells from the graph to the clipboard and pastes them into graph2.
For fine-grained control of the clipboard data the mxGraph.canExportCell and mxGraph.canImportCell functions can be overridden.
To restore previous parents for pasted cells, the implementation for copy and paste can be changed as follows.
mxClipboard.copy = function(graph, cells) { cells = cells || graph.getSelectionCells(); let result = graph.getExportableCells(cells); mxClipboard.parents = {}; for (let i = 0; i < result.length; i++) { mxClipboard.parents[i] = graph.model.getParent(cells[i]); } mxClipboard.insertCount = 1; mxClipboard.setCells(graph.cloneCells(result)); return result; }; mxClipboard.paste = function(graph) { if (!mxClipboard.isEmpty()) { let cells = graph.getImportableCells(mxClipboard.getCells()); let delta = mxClipboard.insertCount * mxClipboard.STEPSIZE; let parent = graph.getDefaultParent(); graph.model.beginUpdate(); try { for (let i = 0; i < cells.length; i++) { let tmp = (mxClipboard.parents != null && graph.model.contains(mxClipboard.parents[i])) ? mxClipboard.parents[i] : parent; cells[i] = graph.importCells([cells[i]], delta, delta, tmp)[0]; } } finally { graph.model.endUpdate(); } // Increments the counter and selects the inserted cells mxClipboard.insertCount++; graph.setSelectionCells(cells); } };
mxClipboard | Singleton that implements a clipboard for graph cells. |
Variables | |
STEPSIZE | Defines the step size to offset the cells after each paste operation. |
insertCount | Counts the number of times the clipboard data has been inserted. |
cells | Holds the array of mxCells currently in the clipboard. |
Functions | |
setCells | Sets the cells in the clipboard. |
getCells | Returns the cells in the clipboard. |
isEmpty | Returns true if the clipboard currently has not data stored. |
cut | Cuts the given array of mxCells from the specified graph. |
removeCells | Hook to remove the given cells from the given graph after a cut operation. |
copy | Copies the given array of mxCells from the specified graph to cells. |
paste | Pastes the cells into the specified graph restoring the relation to <parents>, if possible. |
cells: null
Holds the array of mxCells currently in the clipboard.
setCells: function( cells )
Sets the cells in the clipboard. Fires a mxEvent.CHANGE event.
cut: function( graph, cells )
Cuts the given array of mxCells from the specified graph. If cells is null then the selection cells of the graph will be used. Returns the cells that have been cut from the graph.
graph | mxGraph that contains the cells to be cut. |
cells | Optional array of mxCells to be cut. |
copy: function( graph, cells )
Copies the given array of mxCells from the specified graph to cells. Returns the original array of cells that has been cloned. Descendants of cells in the array are ignored.
graph | mxGraph that contains the cells to be copied. |
cells | Optional array of mxCells to be copied. |
paste: function( graph )
Pastes the cells into the specified graph restoring the relation to <parents>, if possible. If the parents are no longer in the graph or invisible then the cells are added to the graph’s default or into the swimlane under the cell’s new location if one exists. The cells are added to the graph using mxGraph.importCells and returned.
graph | mxGraph to paste the cells into. |
Defines the step size to offset the cells after each paste operation.
STEPSIZE: 10
Counts the number of times the clipboard data has been inserted.
insertCount: 1
Holds the array of mxCells currently in the clipboard.
cells: null
Sets the cells in the clipboard.
setCells: function( cells )
Returns the cells in the clipboard.
getCells: function()
Returns true if the clipboard currently has not data stored.
isEmpty: function()
Cuts the given array of mxCells from the specified graph.
cut: function( graph, cells )
Hook to remove the given cells from the given graph after a cut operation.
removeCells: function( graph, cells )
Copies the given array of mxCells from the specified graph to cells.
copy: function( graph, cells )
Pastes the cells into the specified graph restoring the relation to parents, if possible.
paste: function( graph )
Returns true if the given cell may be exported to the clipboard.
mxGraph.prototype.canExportCell = function( cell )
Returns true if the given cell may be imported from the clipboard.
mxGraph.prototype.canImportCell = function( cell )
Specifies the event name for change.
CHANGE: 'change'
Clones and inserts the given cells into the graph using the move method and returns the inserted cells.
mxGraph.prototype.importCells = function( cells, dx, dy, target, evt, mapping )