com.mxgraph.swing.handler

## Class mxGraphTransferHandler

- java.lang.Object
- - javax.swing.TransferHandler
  - - com.mxgraph.swing.handler.mxGraphTransferHandler

- All Implemented Interfaces:
    java.io.Serializable

      public class mxGraphTransferHandler
      extends javax.swing.TransferHandler

  See Also:
    Serialized Form

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class javax.swing.TransferHandler

      `javax.swing.TransferHandler.DropLocation, javax.swing.TransferHandler.TransferSupport`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static java.awt.Color` | `DEFAULT_BACKGROUNDCOLOR` Specifies the background color of the transfer image.
    `static boolean` | `DEFAULT_TRANSFER_IMAGE_ENABLED` Boolean that specifies if an image of the cells should be created for each transferable.
    `protected int` | `importCount` Counter for the last imported cell array.
    `protected int` | `initialImportCount` Sets the value for the initialImportCount.
    `protected java.awt.datatransfer.Transferable` | `lastImported` Reference to the last imported cell array.
    `protected java.awt.Point` | `location`
    `protected java.awt.Point` | `offset`
    `protected java.lang.Object[]` | `originalCells` Reference to the original cells for removal after a move.
    `protected java.awt.Color` | `transferImageBackground` Specifies the background color for the transfer image.
    `protected boolean` | `transferImageEnabled` Specifies if a transfer image should be created for the transferable.

    - ### Fields inherited from class javax.swing.TransferHandler

      `COPY, COPY_OR_MOVE, LINK, MOVE, NONE`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `mxGraphTransferHandler()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `canImport(javax.swing.JComponent comp, java.awt.datatransfer.DataFlavor[] flavors)`
    `mxGraphTransferable` | `createGraphTransferable(mxGraphComponent graphComponent, java.lang.Object[] cells, javax.swing.ImageIcon icon)`
    `mxGraphTransferable` | `createGraphTransferable(mxGraphComponent graphComponent, java.lang.Object[] cells, mxRectangle bounds, javax.swing.ImageIcon icon)`
    `java.awt.datatransfer.Transferable` | `createTransferable(javax.swing.JComponent c)` (non-Javadoc)
    `javax.swing.ImageIcon` | `createTransferableImage(mxGraphComponent graphComponent, java.lang.Object[] cells)`
    `void` | `exportDone(javax.swing.JComponent c, java.awt.datatransfer.Transferable data, int action)`
    `protected java.lang.Object` | `getDropTarget(mxGraphComponent graphComponent, mxGraphTransferable gt)` Returns the drop target for the given transferable and location.
    `int` | `getImportCount()`
    `int` | `getSourceActions(javax.swing.JComponent c)`
    `java.awt.Color` | `getTransferImageBackground()`
    `protected java.lang.Object[]` | `importCells(mxGraphComponent graphComponent, mxGraphTransferable gt, double dx, double dy)` Gets a drop target using getDropTarget and imports the cells using mxGraph.splitEdge or mxGraphComponent.importCells depending on the drop target and the return values of mxGraph.isSplitEnabled and mxGraph.isSplitTarget.
    `boolean` | `importData(javax.swing.JComponent c, java.awt.datatransfer.Transferable t)` Checks if the mxGraphTransferable data flavour is supported and calls importGraphTransferable if possible.
    `protected boolean` | `importGraphTransferable(mxGraphComponent graphComponent, mxGraphTransferable gt)` Returns true if the cells have been imported using importCells.
    `boolean` | `isLocalDrag()` Returns true if the DnD operation started from this handler.
    `boolean` | `isTransferImageEnabled()`
    `protected void` | `removeCells(mxGraphComponent graphComponent, java.lang.Object[] cells)`
    `void` | `setImportCount(int value)`
    `void` | `setLocation(java.awt.Point value)`
    `void` | `setOffset(java.awt.Point value)`
    `void` | `setTransferImageBackground(java.awt.Color transferImageBackground)`
    `void` | `setTransferImageEnabled(boolean transferImageEnabled)`
    `protected void` | `updateImportCount(java.awt.datatransfer.Transferable t)` Counts the number of times that the given transferable has been imported.

    - ### Methods inherited from class javax.swing.TransferHandler

      `canImport, exportAsDrag, exportToClipboard, getCopyAction, getCutAction, getDragImage, getDragImageOffset, getPasteAction, getVisualRepresentation, importData, setDragImage, setDragImageOffset`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### DEFAULT_TRANSFER_IMAGE_ENABLED

          public static boolean DEFAULT_TRANSFER_IMAGE_ENABLED

      Boolean that specifies if an image of the cells should be created for each transferable. Default is true.

    - #### DEFAULT_BACKGROUNDCOLOR

          public static java.awt.Color DEFAULT_BACKGROUNDCOLOR

      Specifies the background color of the transfer image. If no color is given here then the background color of the enclosing graph component is used. Default is Color.WHITE.

    - #### originalCells

          protected java.lang.Object[] originalCells

      Reference to the original cells for removal after a move.

    - #### lastImported

          protected java.awt.datatransfer.Transferable lastImported

      Reference to the last imported cell array.

    - #### initialImportCount

          protected int initialImportCount

      Sets the value for the initialImportCount. Default is 1. Updated in exportDone to contain 0 after a cut and 1 after a copy.

    - #### importCount

          protected int importCount

      Counter for the last imported cell array.

    - #### transferImageEnabled

          protected boolean transferImageEnabled

      Specifies if a transfer image should be created for the transferable. Default is DEFAULT_TRANSFER_IMAGE.

    - #### transferImageBackground

          protected java.awt.Color transferImageBackground

      Specifies the background color for the transfer image. Default is DEFAULT_BACKGROUNDCOLOR.

    - #### location

          protected java.awt.Point location

    - #### offset

          protected java.awt.Point offset

  - ### Constructor Detail

    - #### mxGraphTransferHandler

          public mxGraphTransferHandler()

  - ### Method Detail

    - #### getImportCount

          public int getImportCount()

    - #### setImportCount

          public void setImportCount(int value)

    - #### setTransferImageEnabled

          public void setTransferImageEnabled(boolean transferImageEnabled)

    - #### isTransferImageEnabled

          public boolean isTransferImageEnabled()

    - #### setTransferImageBackground

          public void setTransferImageBackground(java.awt.Color transferImageBackground)

    - #### getTransferImageBackground

          public java.awt.Color getTransferImageBackground()

    - #### isLocalDrag

          public boolean isLocalDrag()

      Returns true if the DnD operation started from this handler.

    - #### setLocation

          public void setLocation(java.awt.Point value)

    - #### setOffset

          public void setOffset(java.awt.Point value)

    - #### canImport

          public boolean canImport(javax.swing.JComponent comp,
                          java.awt.datatransfer.DataFlavor[] flavors)

      Overrides:
        `canImport` in class `javax.swing.TransferHandler`

    - #### createTransferable

          public java.awt.datatransfer.Transferable createTransferable(javax.swing.JComponent c)

      (non-Javadoc)
      Overrides:
        `createTransferable` in class `javax.swing.TransferHandler`
      See Also:
        `TransferHandler.createTransferable(javax.swing.JComponent)`

    - #### createGraphTransferable

          public mxGraphTransferable createGraphTransferable(mxGraphComponent graphComponent,
                                                    java.lang.Object[] cells,
                                                    javax.swing.ImageIcon icon)

    - #### createGraphTransferable

          public mxGraphTransferable createGraphTransferable(mxGraphComponent graphComponent,
                                                    java.lang.Object[] cells,
                                                    mxRectangle bounds,
                                                    javax.swing.ImageIcon icon)

    - #### createTransferableImage

          public javax.swing.ImageIcon createTransferableImage(mxGraphComponent graphComponent,
                                                      java.lang.Object[] cells)

    - #### exportDone

          public void exportDone(javax.swing.JComponent c,
                        java.awt.datatransfer.Transferable data,
                        int action)

      Overrides:
        `exportDone` in class `javax.swing.TransferHandler`

    - #### removeCells

          protected void removeCells(mxGraphComponent graphComponent,
                         java.lang.Object[] cells)

    - #### getSourceActions

          public int getSourceActions(javax.swing.JComponent c)

      Overrides:
        `getSourceActions` in class `javax.swing.TransferHandler`

    - #### importData

          public boolean importData(javax.swing.JComponent c,
                           java.awt.datatransfer.Transferable t)

      Checks if the mxGraphTransferable data flavour is supported and calls importGraphTransferable if possible.
      Overrides:
        `importData` in class `javax.swing.TransferHandler`

    - #### updateImportCount

          protected void updateImportCount(java.awt.datatransfer.Transferable t)

      Counts the number of times that the given transferable has been imported.

    - #### importGraphTransferable

          protected boolean importGraphTransferable(mxGraphComponent graphComponent,
                                        mxGraphTransferable gt)

      Returns true if the cells have been imported using importCells.

    - #### getDropTarget

          protected java.lang.Object getDropTarget(mxGraphComponent graphComponent,
                                       mxGraphTransferable gt)

      Returns the drop target for the given transferable and location.

    - #### importCells

          protected java.lang.Object[] importCells(mxGraphComponent graphComponent,
                                       mxGraphTransferable gt,
                                       double dx,
                                       double dy)

      Gets a drop target using getDropTarget and imports the cells using mxGraph.splitEdge or mxGraphComponent.importCells depending on the drop target and the return values of mxGraph.isSplitEnabled and mxGraph.isSplitTarget. Selects and returns the cells that have been imported.

Copyright (c) 2010 Gaudenz Alder. All rights reserved.