Class mxGraphComponent

All Implemented Interfaces:
ImageObserver, MenuContainer, Printable, Serializable, Accessible, ScrollPaneConstants

public class mxGraphComponent extends JScrollPane implements Printable
For setting the preferred size of the viewport for scrolling, use mxGraph.setMinimumGraphSize. This component is a combined scrollpane with an inner mxGraphControl. The control contains the actual graph display. To set the background color of the graph, use the following code:
 graphComponent.getViewport().setOpaque(true);
 graphComponent.getViewport().setBackground(newColor);
 
This class fires the following events: mxEvent.START_EDITING fires before starting the in-place editor for an existing cell in startEditingAtCell. The cell property contains the cell that is being edit and the event property contains optional EventObject which was passed to startEditingAtCell. mxEvent.LABEL_CHANGED fires between begin- and endUpdate after the call to mxGraph.cellLabelChanged in labelChanged. The cell property contains the cell, the value property contains the new value for the cell and the optional event property contains the EventObject that started the edit. mxEvent.ADD_OVERLAY and mxEvent.REMOVE_OVERLAY fire afer an overlay was added or removed using add-/removeOverlay. The cell property contains the cell for which the overlay was added or removed and the overlay property contain the mxOverlay. mxEvent.BEFORE_PAINT and mxEvent.AFTER_PAINT fire before and after the paint method is called on the component. The g property contains the graphics context which is used for painting.
See Also:
  • Field Details

    • GRID_STYLE_DOT

      public static final int GRID_STYLE_DOT
      See Also:
    • GRID_STYLE_CROSS

      public static final int GRID_STYLE_CROSS
      See Also:
    • GRID_STYLE_LINE

      public static final int GRID_STYLE_LINE
      See Also:
    • GRID_STYLE_DASHED

      public static final int GRID_STYLE_DASHED
      See Also:
    • ZOOM_POLICY_NONE

      public static final int ZOOM_POLICY_NONE
      See Also:
    • ZOOM_POLICY_PAGE

      public static final int ZOOM_POLICY_PAGE
      See Also:
    • ZOOM_POLICY_WIDTH

      public static final int ZOOM_POLICY_WIDTH
      See Also:
    • DEFAULT_EXPANDED_ICON

      public static ImageIcon DEFAULT_EXPANDED_ICON
    • DEFAULT_COLLAPSED_ICON

      public static ImageIcon DEFAULT_COLLAPSED_ICON
    • DEFAULT_WARNING_ICON

      public static ImageIcon DEFAULT_WARNING_ICON
    • DEFAULT_PAGESCALE

      public static final double DEFAULT_PAGESCALE
      Specifies the default page scale. Default is 1.4
      See Also:
    • graph

      protected mxGraph graph
    • graphControl

      protected mxGraphComponent.mxGraphControl graphControl
    • eventSource

      protected mxEventSource eventSource
    • cellEditor

      protected mxICellEditor cellEditor
    • connectionHandler

      protected mxConnectionHandler connectionHandler
    • panningHandler

      protected mxPanningHandler panningHandler
    • selectionCellsHandler

      protected mxSelectionCellsHandler selectionCellsHandler
    • graphHandler

      protected mxGraphHandler graphHandler
    • previewAlpha

      protected float previewAlpha
      The transparency of previewed cells from 0.0. to 0.1. 0.0 indicates transparent, 1.0 indicates opaque. Default is 1.
    • backgroundImage

      protected ImageIcon backgroundImage
      Specifies the to be returned by . Default is null.
    • pageFormat

      protected PageFormat pageFormat
      Background page format.
    • canvas

      protected mxInteractiveCanvas canvas
    • tripleBuffer

      protected BufferedImage tripleBuffer
    • tripleBufferGraphics

      protected Graphics2D tripleBufferGraphics
    • pageScale

      protected double pageScale
      Defines the scaling for the background page metrics. Default is DEFAULT_PAGESCALE.
    • pageVisible

      protected boolean pageVisible
      Specifies if the background page should be visible. Default is false.
    • preferPageSize

      protected boolean preferPageSize
      If the pageFormat should be used to determine the minimal graph bounds even if the page is not visible (see pageVisible). Default is false.
    • pageBreaksVisible

      protected boolean pageBreaksVisible
      Specifies if a dashed line should be drawn between multiple pages.
    • pageBreakColor

      protected Color pageBreakColor
      Specifies the color of page breaks
    • horizontalPageCount

      protected int horizontalPageCount
      Specifies the number of pages in the horizontal direction.
    • verticalPageCount

      protected int verticalPageCount
      Specifies the number of pages in the vertical direction.
    • centerPage

      protected boolean centerPage
      Specifies if the background page should be centered by automatically setting the translate in the view. Default is true. This does only apply if pageVisible is true.
    • pageBackgroundColor

      protected Color pageBackgroundColor
      Color of the background area if layout view.
    • pageShadowColor

      protected Color pageShadowColor
    • pageBorderColor

      protected Color pageBorderColor
    • gridVisible

      protected boolean gridVisible
      Specifies if the grid is visible. Default is false.
    • gridColor

      protected Color gridColor
    • autoScroll

      protected boolean autoScroll
      Whether or not to scroll the scrollable container the graph exists in if a suitable handler is active and the graph bounds already exist extended in the direction of mouse travel.
    • autoExtend

      protected boolean autoExtend
      Whether to extend the graph bounds and scroll towards the limit of those new bounds in the direction of mouse travel if a handler is active while the mouse leaves the container that the graph exists in.
    • dragEnabled

      protected boolean dragEnabled
    • importEnabled

      protected boolean importEnabled
    • exportEnabled

      protected boolean exportEnabled
    • foldingEnabled

      protected boolean foldingEnabled
      Specifies if folding (collapse and expand via an image icon in the graph should be enabled). Default is true.
    • tolerance

      protected int tolerance
      Specifies the tolerance for mouse clicks. Default is 4.
    • swimlaneSelectionEnabled

      protected boolean swimlaneSelectionEnabled
      Specifies if swimlanes are selected when the mouse is released over the swimlanes content area. Default is true.
    • transparentSwimlaneContent

      protected boolean transparentSwimlaneContent
      Specifies if the content area should be transparent to events. Default is true.
    • gridStyle

      protected int gridStyle
    • expandedIcon

      protected ImageIcon expandedIcon
    • collapsedIcon

      protected ImageIcon collapsedIcon
    • warningIcon

      protected ImageIcon warningIcon
    • antiAlias

      protected boolean antiAlias
    • textAntiAlias

      protected boolean textAntiAlias
    • escapeEnabled

      protected boolean escapeEnabled
      Specifies should be invoked when the escape key is pressed. Default is true.
    • invokesStopCellEditing

      protected boolean invokesStopCellEditing
      If true, when editing is to be stopped by way of selection changing, data in diagram changing or other means stopCellEditing is invoked, and changes are saved. This is implemented in a mouse listener in this class. Default is true.
    • enterStopsCellEditing

      protected boolean enterStopsCellEditing
      If true, pressing the enter key without pressing control will stop editing and accept the new value. This is used in to stop cell editing. Default is false.
    • zoomPolicy

      protected int zoomPolicy
      Specifies the zoom policy. Default is ZOOM_POLICY_PAGE. The zoom policy does only apply if pageVisible is true.
    • zoomFactor

      protected double zoomFactor
      Specifies the factor used for zoomIn and zoomOut. Default is 1.2 (120%).
    • keepSelectionVisibleOnZoom

      protected boolean keepSelectionVisibleOnZoom
      Specifies if the viewport should automatically contain the selection cells after a zoom operation. Default is false.
    • centerZoom

      protected boolean centerZoom
      Specifies if the zoom operations should go into the center of the actual diagram rather than going from top, left. Default is true.
    • tripleBuffered

      protected boolean tripleBuffered
      Specifies if an image buffer should be used for painting the component. Default is false.
    • showDirtyRectangle

      public boolean showDirtyRectangle
      Used for debugging the dirty region.
    • components

      protected Hashtable<Object,Component[]> components
      Maps from cells to lists of heavyweights.
    • overlays

      protected Hashtable<Object,mxICellOverlay[]> overlays
      Maps from cells to lists of overlays.
    • updateHandler

      protected mxEventSource.mxIEventListener updateHandler
      Updates the heavyweight component structure after any changes.
    • repaintHandler

      protected mxEventSource.mxIEventListener repaintHandler
    • viewChangeHandler

      protected PropertyChangeListener viewChangeHandler
    • scaleHandler

      protected mxEventSource.mxIEventListener scaleHandler
      Resets the zoom policy if the scale is changed manually.
  • Constructor Details

    • mxGraphComponent

      public mxGraphComponent(mxGraph graph)
      Parameters:
      graph -
  • Method Details

    • installFocusHandler

      protected void installFocusHandler()
      installs a handler to set the focus to the container.
    • installKeyHandler

      protected void installKeyHandler()
      Handles escape keystrokes.
    • installResizeHandler

      protected void installResizeHandler()
      Applies the zoom policy if the size of the component changes.
    • installDoubleClickHandler

      protected void installDoubleClickHandler()
      Adds handling of edit and stop-edit events after all other handlers have been installed.
    • createCellEditor

      protected mxICellEditor createCellEditor()
    • setGraph

      public void setGraph(mxGraph value)
    • getGraph

      public mxGraph getGraph()
      Returns:
      Returns the object that contains the graph.
    • createGraphControl

      protected mxGraphComponent.mxGraphControl createGraphControl()
      Creates the inner control that handles tooltips, preferred size and can draw cells onto a canvas.
    • getGraphControl

      public mxGraphComponent.mxGraphControl getGraphControl()
      Returns:
      Returns the control that renders the graph.
    • createHandlers

      protected void createHandlers()
      Creates the connection-, panning and graphhandler (in this order).
    • createTransferHandler

      protected TransferHandler createTransferHandler()
    • createSelectionCellsHandler

      protected mxSelectionCellsHandler createSelectionCellsHandler()
    • createGraphHandler

      protected mxGraphHandler createGraphHandler()
    • getSelectionCellsHandler

      public mxSelectionCellsHandler getSelectionCellsHandler()
    • getGraphHandler

      public mxGraphHandler getGraphHandler()
    • createConnectionHandler

      protected mxConnectionHandler createConnectionHandler()
    • getConnectionHandler

      public mxConnectionHandler getConnectionHandler()
    • createPanningHandler

      protected mxPanningHandler createPanningHandler()
    • getPanningHandler

      public mxPanningHandler getPanningHandler()
    • isEditing

      public boolean isEditing()
    • getCellEditor

      public mxICellEditor getCellEditor()
    • setCellEditor

      public void setCellEditor(mxICellEditor value)
    • getTolerance

      public int getTolerance()
      Returns:
      the tolerance
    • setTolerance

      public void setTolerance(int value)
      Parameters:
      value - the tolerance to set
    • getPageFormat

      public PageFormat getPageFormat()
    • setPageFormat

      public void setPageFormat(PageFormat value)
    • getPageScale

      public double getPageScale()
    • setPageScale

      public void setPageScale(double value)
    • getLayoutAreaSize

      public mxRectangle getLayoutAreaSize()
      Returns the size of the area that layouts can operate in.
    • getBackgroundImage

      public ImageIcon getBackgroundImage()
    • setBackgroundImage

      public void setBackgroundImage(ImageIcon value)
    • isPageVisible

      public boolean isPageVisible()
      Returns:
      the pageVisible
    • setPageVisible

      public void setPageVisible(boolean value)
      Fires a property change event for pageVisible. zoomAndCenter should be called if this is set to true.
      Parameters:
      value - the pageVisible to set
    • isPreferPageSize

      public boolean isPreferPageSize()
      Returns:
      the preferPageSize
    • setPreferPageSize

      public void setPreferPageSize(boolean value)
      Fires a property change event for preferPageSize.
      Parameters:
      value - the preferPageSize to set
    • isPageBreaksVisible

      public boolean isPageBreaksVisible()
      Returns:
      the pageBreaksVisible
    • setPageBreaksVisible

      public void setPageBreaksVisible(boolean value)
      Parameters:
      value - the pageBreaksVisible to set
    • getPageBreakColor

      public Color getPageBreakColor()
      Returns:
      the pageBreakColor
    • setPageBreakColor

      public void setPageBreakColor(Color pageBreakColor)
      Parameters:
      pageBreakColor - the pageBreakColor to set
    • setHorizontalPageCount

      public void setHorizontalPageCount(int value)
      Parameters:
      value - the horizontalPageCount to set
    • getHorizontalPageCount

      public int getHorizontalPageCount()
    • setVerticalPageCount

      public void setVerticalPageCount(int value)
      Parameters:
      value - the verticalPageCount to set
    • getVerticalPageCount

      public int getVerticalPageCount()
    • isCenterPage

      public boolean isCenterPage()
      Returns:
      the centerPage
    • setCenterPage

      public void setCenterPage(boolean value)
      zoomAndCenter should be called if this is set to true.
      Parameters:
      value - the centerPage to set
    • getPageBackgroundColor

      public Color getPageBackgroundColor()
      Returns:
      the pageBackgroundColor
    • setPageBackgroundColor

      public void setPageBackgroundColor(Color value)
      Sets the color that appears behind the page.
      Parameters:
      value - the pageBackgroundColor to set
    • getPageShadowColor

      public Color getPageShadowColor()
      Returns:
      the pageShadowColor
    • setPageShadowColor

      public void setPageShadowColor(Color value)
      Parameters:
      value - the pageShadowColor to set
    • getPageBorderColor

      public Color getPageBorderColor()
      Returns:
      the pageShadowColor
    • setPageBorderColor

      public void setPageBorderColor(Color value)
      Parameters:
      value - the pageBorderColor to set
    • isKeepSelectionVisibleOnZoom

      public boolean isKeepSelectionVisibleOnZoom()
      Returns:
      the keepSelectionVisibleOnZoom
    • setKeepSelectionVisibleOnZoom

      public void setKeepSelectionVisibleOnZoom(boolean value)
      Parameters:
      value - the keepSelectionVisibleOnZoom to set
    • getZoomFactor

      public double getZoomFactor()
      Returns:
      the zoomFactor
    • setZoomFactor

      public void setZoomFactor(double value)
      Parameters:
      value - the zoomFactor to set
    • isCenterZoom

      public boolean isCenterZoom()
      Returns:
      the centerZoom
    • setCenterZoom

      public void setCenterZoom(boolean value)
      Parameters:
      value - the centerZoom to set
    • setZoomPolicy

      public void setZoomPolicy(int value)
    • getZoomPolicy

      public int getZoomPolicy()
    • escape

      public void escape(KeyEvent e)
      Callback to process an escape keystroke.
      Parameters:
      e -
    • importCells

      public Object[] importCells(Object[] cells, double dx, double dy, Object target, Point location)
      Clones and inserts the given cells into the graph using the move method and returns the inserted cells. This shortcut is used if cells are inserted via datatransfer.
    • refresh

      public void refresh()
      Refreshes the display and handles.
    • getPointForEvent

      public mxPoint getPointForEvent(MouseEvent e)
      Returns an mxPoint representing the given event in the unscaled, non-translated coordinate space and applies the grid.
    • getPointForEvent

      public mxPoint getPointForEvent(MouseEvent e, boolean addOffset)
      Returns an mxPoint representing the given event in the unscaled, non-translated coordinate space and applies the grid.
    • startEditing

      public void startEditing()
    • startEditingAtCell

      public void startEditingAtCell(Object cell)
    • startEditingAtCell

      public void startEditingAtCell(Object cell, EventObject evt)
    • getEditingValue

      public String getEditingValue(Object cell, EventObject trigger)
    • stopEditing

      public void stopEditing(boolean cancel)
    • labelChanged

      public Object labelChanged(Object cell, Object value, EventObject evt)
      Sets the label of the specified cell to the given value using mxGraph.cellLabelChanged and fires mxEvent.LABEL_CHANGED while the transaction is in progress. Returns the cell whose label was changed.
      Parameters:
      cell - Cell whose label should be changed.
      value - New value of the label.
      evt - Optional event that triggered the change.
    • getPreferredSizeForPage

      protected Dimension getPreferredSizeForPage()
      Returns the (unscaled) preferred size for the current page format (scaled by pageScale).
    • getVerticalPageBorder

      public int getVerticalPageBorder()
      Returns the vertical border between the page and the control.
    • getHorizontalPageBorder

      public int getHorizontalPageBorder()
      Returns the horizontal border between the page and the control.
    • getScaledPreferredSizeForGraph

      protected Dimension getScaledPreferredSizeForGraph()
      Returns the scaled preferred size for the current graph.
    • getPageTranslate

      protected mxPoint getPageTranslate(double scale)
      Should be called by a hook inside mxGraphView/mxGraph
    • zoomAndCenter

      public void zoomAndCenter()
      Invoked after the component was resized to update the zoom if the zoom policy is not none and/or update the translation of the diagram if pageVisible and centerPage are true.
    • zoomIn

      public void zoomIn()
      Zooms into the graph by zoomFactor.
    • zoomOut

      public void zoomOut()
      Function: zoomOut Zooms out of the graph by .
    • zoom

      public void zoom(double factor)
    • zoomTo

      public void zoomTo(double newScale, boolean center)
    • zoomActual

      public void zoomActual()
      Function: zoomActual Resets the zoom and panning in the view.
    • zoom

      public void zoom(boolean page, boolean center)
    • maintainScrollBar

      protected void maintainScrollBar(boolean horizontal, double factor, boolean center)
    • scrollToCenter

      public void scrollToCenter(boolean horizontal)
    • scrollCellToVisible

      public void scrollCellToVisible(Object cell)
      Scrolls the graph so that it shows the given cell.
      Parameters:
      cell -
    • scrollCellToVisible

      public void scrollCellToVisible(Object cell, boolean center)
      Scrolls the graph so that it shows the given cell.
      Parameters:
      cell -
    • getCellAt

      public Object getCellAt(int x, int y)
      Parameters:
      x -
      y -
      Returns:
      Returns the cell at the given location.
    • getCellAt

      public Object getCellAt(int x, int y, boolean hitSwimlaneContent)
      Parameters:
      x -
      y -
      hitSwimlaneContent -
      Returns:
      Returns the cell at the given location.
    • getCellAt

      public Object getCellAt(int x, int y, boolean hitSwimlaneContent, Object parent)
      Returns the bottom-most cell that intersects the given point (x, y) in the cell hierarchy starting at the given parent.
      Parameters:
      x - X-coordinate of the location to be checked.
      y - Y-coordinate of the location to be checked.
      parent - that should be used as the root of the recursion. Default is .
      Returns:
      Returns the child at the given location.
    • setSwimlaneSelectionEnabled

      public void setSwimlaneSelectionEnabled(boolean value)
    • isSwimlaneSelectionEnabled

      public boolean isSwimlaneSelectionEnabled()
    • selectRegion

      public Object[] selectRegion(Rectangle rect, MouseEvent e)
    • getCells

      public Object[] getCells(Rectangle rect)
      Returns the cells inside the given rectangle.
      Returns:
      Returns the cells inside the given rectangle.
    • getCells

      public Object[] getCells(Rectangle rect, Object parent)
      Returns the children of the given parent that are contained in the given rectangle (x, y, width, height). The result is added to the optional result array, which is returned from the function. If no result array is specified then a new array is created and returned.
      Returns:
      Returns the children inside the given rectangle.
    • selectCellsForEvent

      public void selectCellsForEvent(Object[] cells, MouseEvent event)
      Selects the cells for the given event.
    • selectCellForEvent

      public void selectCellForEvent(Object cell, MouseEvent e)
      Selects the cell for the given event.
    • isSignificant

      public boolean isSignificant(double dx, double dy)
      Returns true if the absolute value of one of the given parameters is greater than the tolerance.
    • getFoldingIcon

      public ImageIcon getFoldingIcon(mxCellState state)
      Returns the icon used to display the collapsed state of the specified cell state. This returns null for all edges.
    • getFoldingIconBounds

      public Rectangle getFoldingIconBounds(mxCellState state, ImageIcon icon)
    • hitFoldingIcon

      public boolean hitFoldingIcon(Object cell, int x, int y)
    • setToolTips

      public void setToolTips(boolean enabled)
      Parameters:
      enabled -
    • isConnectable

      public boolean isConnectable()
    • setConnectable

      public void setConnectable(boolean connectable)
      Parameters:
      connectable -
    • isPanning

      public boolean isPanning()
    • setPanning

      public void setPanning(boolean enabled)
      Parameters:
      enabled -
    • isAutoScroll

      public boolean isAutoScroll()
      Returns:
      the autoScroll
    • setAutoScroll

      public void setAutoScroll(boolean value)
      Parameters:
      value - the autoScroll to set
    • isAutoExtend

      public boolean isAutoExtend()
      Returns:
      the autoExtend
    • setAutoExtend

      public void setAutoExtend(boolean value)
      Parameters:
      value - the autoExtend to set
    • isEscapeEnabled

      public boolean isEscapeEnabled()
      Returns:
      the escapeEnabled
    • setEscapeEnabled

      public void setEscapeEnabled(boolean value)
      Parameters:
      value - the escapeEnabled to set
    • isInvokesStopCellEditing

      public boolean isInvokesStopCellEditing()
      Returns:
      the escapeEnabled
    • setInvokesStopCellEditing

      public void setInvokesStopCellEditing(boolean value)
      Parameters:
      value - the invokesStopCellEditing to set
    • isEnterStopsCellEditing

      public boolean isEnterStopsCellEditing()
      Returns:
      the enterStopsCellEditing
    • setEnterStopsCellEditing

      public void setEnterStopsCellEditing(boolean value)
      Parameters:
      value - the enterStopsCellEditing to set
    • isDragEnabled

      public boolean isDragEnabled()
      Returns:
      the dragEnabled
    • setDragEnabled

      public void setDragEnabled(boolean value)
      Parameters:
      value - the dragEnabled to set
    • isGridVisible

      public boolean isGridVisible()
      Returns:
      the gridVisible
    • setGridVisible

      public void setGridVisible(boolean value)
      Fires a property change event for gridVisible.
      Parameters:
      value - the gridVisible to set
    • isAntiAlias

      public boolean isAntiAlias()
      Returns:
      the gridVisible
    • setAntiAlias

      public void setAntiAlias(boolean value)
      Fires a property change event for antiAlias.
      Parameters:
      value - the antiAlias to set
    • isTextAntiAlias

      public boolean isTextAntiAlias()
      Returns:
      the gridVisible
    • setTextAntiAlias

      public void setTextAntiAlias(boolean value)
      Fires a property change event for textAntiAlias.
      Parameters:
      value - the textAntiAlias to set
    • getPreviewAlpha

      public float getPreviewAlpha()
    • setPreviewAlpha

      public void setPreviewAlpha(float value)
    • isTripleBuffered

      public boolean isTripleBuffered()
      Returns:
      the tripleBuffered
    • isForceTripleBuffered

      public boolean isForceTripleBuffered()
      Hook for dynamic triple buffering condition.
    • setTripleBuffered

      public void setTripleBuffered(boolean value)
      Parameters:
      value - the tripleBuffered to set
    • getGridColor

      public Color getGridColor()
      Returns:
      the gridColor
    • setGridColor

      public void setGridColor(Color value)
      Fires a property change event for gridColor.
      Parameters:
      value - the gridColor to set
    • getGridStyle

      public int getGridStyle()
      Returns:
      the gridStyle
    • setGridStyle

      public void setGridStyle(int value)
      Fires a property change event for gridStyle.
      Parameters:
      value - the gridStyle to set
    • isImportEnabled

      public boolean isImportEnabled()
      Returns importEnabled.
    • setImportEnabled

      public void setImportEnabled(boolean value)
      Sets importEnabled.
    • getImportableCells

      public Object[] getImportableCells(Object[] cells)
      Returns all cells which may be imported via datatransfer.
    • canImportCell

      public boolean canImportCell(Object cell)
      Returns true if the given cell can be imported via datatransfer. This returns importEnabled.
    • isExportEnabled

      public boolean isExportEnabled()
      Returns:
      the exportEnabled
    • setExportEnabled

      public void setExportEnabled(boolean value)
      Parameters:
      value - the exportEnabled to set
    • getExportableCells

      public Object[] getExportableCells(Object[] cells)
      Returns all cells which may be exported via datatransfer.
    • canExportCell

      public boolean canExportCell(Object cell)
      Returns true if the given cell can be exported via datatransfer.
    • isFoldingEnabled

      public boolean isFoldingEnabled()
      Returns:
      the foldingEnabled
    • setFoldingEnabled

      public void setFoldingEnabled(boolean value)
      Parameters:
      value - the foldingEnabled to set
    • isEditEvent

      public boolean isEditEvent(MouseEvent e)
    • isCloneEvent

      public boolean isCloneEvent(MouseEvent event)
      Parameters:
      event -
      Returns:
      Returns true if the given event should toggle selected cells.
    • isToggleEvent

      public boolean isToggleEvent(MouseEvent event)
      Parameters:
      event -
      Returns:
      Returns true if the given event should toggle selected cells.
    • isGridEnabledEvent

      public boolean isGridEnabledEvent(MouseEvent event)
      Parameters:
      event -
      Returns:
      Returns true if the given event allows the grid to be applied.
    • isPanningEvent

      public boolean isPanningEvent(MouseEvent event)
      Note: This is not used during drag and drop operations due to limitations of the underlying API. To enable this for move operations set dragEnabled to false.
      Parameters:
      event -
      Returns:
      Returns true if the given event is a panning event.
    • isConstrainedEvent

      public boolean isConstrainedEvent(MouseEvent event)
      Note: This is not used during drag and drop operations due to limitations of the underlying API. To enable this for move operations set dragEnabled to false.
      Parameters:
      event -
      Returns:
      Returns true if the given event is constrained.
    • isForceMarqueeEvent

      public boolean isForceMarqueeEvent(MouseEvent event)
      Note: This is not used during drag and drop operations due to limitations of the underlying API. To enable this for move operations set dragEnabled to false.
      Parameters:
      event -
      Returns:
      Returns true if the given event is constrained.
    • snapScaledPoint

      public mxPoint snapScaledPoint(mxPoint pt)
    • snapScaledPoint

      public mxPoint snapScaledPoint(mxPoint pt, double dx, double dy)
    • print

      public int print(Graphics g, PageFormat printFormat, int page)
      Prints the specified page on the specified graphics using pageFormat for the page format.
      Specified by:
      print in interface Printable
      Parameters:
      g - The graphics to paint the graph on.
      printFormat - The page format to use for printing.
      page - The page to print
      Returns:
      Returns Printable.PAGE_EXISTS or Printable.NO_SUCH_PAGE.
    • getCanvas

      public mxInteractiveCanvas getCanvas()
    • getTripleBuffer

      public BufferedImage getTripleBuffer()
    • createCanvas

      public mxInteractiveCanvas createCanvas()
      Hook for subclassers to replace the graphics canvas for rendering and and printing. This must be overridden to return a custom canvas if there are any custom shapes.
    • createHandler

      public mxCellHandler createHandler(mxCellState state)
      Parameters:
      state - Cell state for which a handler should be created.
      Returns:
      Returns the handler to be used for the given cell state.
    • createComponents

      public Component[] createComponents(mxCellState state)
      Hook for subclassers to create the array of heavyweights for the given state.
    • insertComponent

      public void insertComponent(mxCellState state, Component c)
    • removeComponent

      public void removeComponent(Component c, Object cell)
    • updateComponent

      public void updateComponent(mxCellState state, Component c)
    • updateComponents

      public void updateComponents()
    • removeAllComponents

      public void removeAllComponents(Hashtable<Object,Component[]> map)
    • removeAllOverlays

      public void removeAllOverlays(Hashtable<Object,mxICellOverlay[]> map)
    • updateComponents

      public Hashtable<Object,Component[]> updateComponents(Object cell)
    • validateGraph

      public String validateGraph()
      Validates the graph by validating each descendant of the given cell or the root of the model. Context is an object that contains the validation state for the complete validation run. The validation errors are attached to their cells using . This function returns true if no validation errors exist in the graph.
    • validateGraph

      public String validateGraph(Object cell, Hashtable<Object,Object> context)
      Validates the graph by validating each descendant of the given cell or the root of the model. Context is an object that contains the validation state for the complete validation run. The validation errors are attached to their cells using . This function returns true if no validation errors exist in the graph.
      Parameters:
      cell - Cell to start the validation recursion.
      context - Object that represents the global validation state.
    • addCellOverlay

      public mxICellOverlay addCellOverlay(Object cell, mxICellOverlay overlay)
      Adds an overlay for the specified cell. This method fires an addoverlay event and returns the new overlay.
      Parameters:
      cell - Cell to add the overlay for.
      overlay - Overlay to be added for the cell.
    • getCellOverlays

      public mxICellOverlay[] getCellOverlays(Object cell)
      Returns the array of overlays for the given cell or null, if no overlays are defined.
      Parameters:
      cell - Cell whose overlays should be returned.
    • removeCellOverlay

      public mxICellOverlay removeCellOverlay(Object cell, mxICellOverlay overlay)
      Removes and returns the given overlay from the given cell. This method fires a remove overlay event. If no overlay is given, then all overlays are removed using removeOverlays.
      Parameters:
      cell - Cell whose overlay should be removed.
      overlay - Optional overlay to be removed.
    • removeCellOverlays

      public mxICellOverlay[] removeCellOverlays(Object cell)
      Removes all overlays from the given cell. This method fires a removeoverlay event for each removed overlay and returns the array of overlays that was removed from the cell.
      Parameters:
      cell - Cell whose overlays should be removed.
    • removeCellOverlayComponent

      protected void removeCellOverlayComponent(mxICellOverlay overlay, Object cell)
      Notified when an overlay has been removed from the graph. This implementation removes the given overlay from its parent if it is a component inside a component hierarchy.
    • updateCellOverlayComponent

      protected void updateCellOverlayComponent(mxCellState state, mxICellOverlay overlay)
      Notified when an overlay has been removed from the graph. This implementation removes the given overlay from its parent if it is a component inside a component hierarchy.
    • clearCellOverlays

      public void clearCellOverlays()
      Removes all overlays in the graph.
    • clearCellOverlays

      public void clearCellOverlays(Object cell)
      Removes all overlays in the graph for the given cell and all its descendants. If no cell is specified then all overlays are removed from the graph. This implementation uses removeOverlays to remove the overlays from the individual cells.
      Parameters:
      cell - Optional cell that represents the root of the subtree to remove the overlays from. Default is the root in the model.
    • setCellWarning

      public mxICellOverlay setCellWarning(Object cell, String warning)
      Creates an overlay for the given cell using the warning and image or warningImage and returns the new overlay. If the warning is null or a zero length string, then all overlays are removed from the cell instead.
      Parameters:
      cell - Cell whose warning should be set.
      warning - String that represents the warning to be displayed.
    • setCellWarning

      public mxICellOverlay setCellWarning(Object cell, String warning, ImageIcon icon)
      Creates an overlay for the given cell using the warning and image or warningImage and returns the new overlay. If the warning is null or a zero length string, then all overlays are removed from the cell instead.
      Parameters:
      cell - Cell whose warning should be set.
      warning - String that represents the warning to be displayed.
      icon - Optional image to be used for the overlay. Default is warningImageBasename.
    • setCellWarning

      public mxICellOverlay setCellWarning(Object cell, String warning, ImageIcon icon, boolean select)
      Creates an overlay for the given cell using the warning and image or warningImage and returns the new overlay. If the warning is null or a zero length string, then all overlays are removed from the cell instead.
      Parameters:
      cell - Cell whose warning should be set.
      warning - String that represents the warning to be displayed.
      icon - Optional image to be used for the overlay. Default is warningImageBasename.
      select - Optional boolean indicating if a click on the overlay should select the corresponding cell. Default is false.
    • updateCellOverlays

      public Hashtable<Object,mxICellOverlay[]> updateCellOverlays(Object cell)
      Returns a hashtable with all entries from the overlays variable where a cell still exists in the model. The entries are removed from the global hashtable so that the remaining entries reflect those whose cell have been removed from the model. If no state is available for a given cell then its overlays are temporarly removed from the rendering control, but kept in the result.
    • paintBackground

      protected void paintBackground(Graphics g)
    • paintBackgroundPage

      protected Rectangle paintBackgroundPage(Graphics g)
    • paintBackgroundImage

      protected void paintBackgroundImage(Graphics g)
    • paintGrid

      protected void paintGrid(Graphics g)
      Paints the grid onto the given graphics object.
    • redraw

      public void redraw(mxCellState state)
      Updates the buffer (if one exists) and repaints the given cell state.
    • checkTripleBuffer

      public void checkTripleBuffer()
      Checks if the triple buffer exists and creates a new one if it does not. Also compares the size of the buffer with the size of the graph and drops the buffer if it has a different size.
    • createTripleBuffer

      protected void createTripleBuffer(int width, int height)
      Creates the tripleBufferGraphics and tripleBuffer for the given dimension and draws the complete graph onto the triplebuffer.
      Parameters:
      width -
      height -
    • destroyTripleBuffer

      public void destroyTripleBuffer()
      Destroys the tripleBuffer and tripleBufferGraphics objects.
    • repaintTripleBuffer

      public void repaintTripleBuffer(Rectangle dirty)
      Clears and repaints the triple buffer at the given rectangle or repaints the complete buffer if no rectangle is specified.
      Parameters:
      dirty -
    • isEventsEnabled

      public boolean isEventsEnabled()
      Returns:
      Returns true if event dispatching is enabled in the event source.
      See Also:
    • setEventsEnabled

      public void setEventsEnabled(boolean eventsEnabled)
      Parameters:
      eventsEnabled -
      See Also:
    • addListener

      public void addListener(String eventName, mxEventSource.mxIEventListener listener)
      Parameters:
      eventName -
      listener -
      See Also:
    • removeListener

      public void removeListener(mxEventSource.mxIEventListener listener)
      Parameters:
      listener - Listener instance.
    • removeListener

      public void removeListener(mxEventSource.mxIEventListener listener, String eventName)
      Parameters:
      listener - Listener instance.
      eventName - Name of the event.