JGraphpad Pro
v6.0.5.0


com.jgraph.editor.factory
Class JGraphEditorDiagramPane

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjavax.swing.JComponent
              extended byjavax.swing.JScrollPane
                  extended bycom.jgraph.editor.factory.JGraphEditorDiagramPane
All Implemented Interfaces:
Accessible, ImageObserver, MenuContainer, Printable, ScrollPaneConstants, Serializable

public class JGraphEditorDiagramPane
extends JScrollPane
implements Printable

Wrapper panel for a diagram/JGraph-pair that implements automatic sizing, backgrounds, printing and undo support. When wrapped in a scrollpane this panel adds rulers to the enclosing scrollpane. Furthermore, it automatically sets the minimum size and scale of the graph based on its settings.

See Also:
Serialized Form

Nested Class Summary
 class JGraphEditorDiagramPane.Viewport
          Viewport for diagram panes that is in charge of painting the background image or page.
 
Nested classes inherited from class javax.swing.JScrollPane
JScrollPane.AccessibleJScrollPane, JScrollPane.ScrollBar
 
Nested classes inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
 
Nested classes inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
static int AUTOSCALE_POLICY_NONE
          Defines the no autoscaling policy.
static int AUTOSCALE_POLICY_PAGE
          Defines the page autoscaling policy.
static int AUTOSCALE_POLICY_PAGEWIDTH
          Defines the pagewidth autoscaling policy.
static int AUTOSCALE_POLICY_WINDOW
          Defines the window-size autoscaling policy.
protected  int autoScalePolicy
          Specified the autoscaling policy.
protected  PropertyChangeListener autoScaleResetListener
          Holds the autoscale reset listener to be used with the graph.
protected  ImageIcon backgroundImage
          Holds the background image.
static int DEFAULT_HISTORYSIZE
          Specifies the size of the undo history.
static boolean DEFAULT_ISMETRIC
          Specifies the default unit system.
static double DEFAULT_PAGESCALE
          Specifies the default page scale.
protected  JGraphEditorDiagram diagram
          References the diagram this pane represents.
protected  org.jgraph.JGraph graph
          References the inner graph.
protected  JGraphEditorRuler horizontalRuler
          Holds the rulers to be used in a parent scrollpane.
protected  boolean isMetric
          Specifies if the rulers should use metric units.
protected  boolean isPageVisible
          Specifies if the background page is visible.
protected  boolean isRulersVisible
          Specifies if the rules should be visible.
protected  PageFormat pageFormat
          Background page format.
protected  double pageScale
          Defines the scaling for the background page metrics.
static String PROPERTY_AUTOSCALEPOLICY
          Bound property names for the respective properties.
static String PROPERTY_BACKGROUNDIMAGE
          Bound property names for the respective properties.
static String PROPERTY_METRIC
          Bound property names for the respective properties.
static String PROPERTY_PAGEFORMAT
          Bound property names for the respective properties.
static String PROPERTY_PAGESCALE
          Bound property names for the respective properties.
static String PROPERTY_PAGEVISIBLE
          Bound property names for the respective properties.
static String PROPERTY_RULERSVISIBLE
          Bound property names for the respective properties.
protected  org.jgraph.graph.GraphUndoManager undoManager
          Holds the undo manager for the graph.
protected  JGraphEditorRuler verticalRuler
          Holds the rulers to be used in a parent scrollpane.
 
Fields inherited from class javax.swing.JScrollPane
columnHeader, horizontalScrollBar, horizontalScrollBarPolicy, lowerLeft, lowerRight, rowHeader, upperLeft, upperRight, verticalScrollBar, verticalScrollBarPolicy, viewport
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.print.Printable
NO_SUCH_PAGE, PAGE_EXISTS
 
Fields inherited from interface javax.swing.ScrollPaneConstants
COLUMN_HEADER, HORIZONTAL_SCROLLBAR, HORIZONTAL_SCROLLBAR_ALWAYS, HORIZONTAL_SCROLLBAR_AS_NEEDED, HORIZONTAL_SCROLLBAR_NEVER, HORIZONTAL_SCROLLBAR_POLICY, LOWER_LEADING_CORNER, LOWER_LEFT_CORNER, LOWER_RIGHT_CORNER, LOWER_TRAILING_CORNER, ROW_HEADER, UPPER_LEADING_CORNER, UPPER_LEFT_CORNER, UPPER_RIGHT_CORNER, UPPER_TRAILING_CORNER, VERTICAL_SCROLLBAR, VERTICAL_SCROLLBAR_ALWAYS, VERTICAL_SCROLLBAR_AS_NEEDED, VERTICAL_SCROLLBAR_NEVER, VERTICAL_SCROLLBAR_POLICY, VIEWPORT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
JGraphEditorDiagramPane(JGraphEditorDiagram diagram, org.jgraph.JGraph graph)
          Constructs a new graph pane for the specified diagram and graph.
 
Method Summary
protected  double computePageScale()
          Computes the scale for the page autoscale policy.
protected  double computePageWidthScale(int border)
          Computes the scale for the pagewidth autoscale policy.
protected  double computeWindowScale(int border)
          Computes the scale for the window autoscale policy.
 PropertyChangeListener createAutoScaleResetListener()
          Hook for subclassers to create the autoscale reset listener.
protected  void createRulers()
          Hook for subclassers to create the rulers.
protected  JViewport createViewport()
          Hook for subclassers to create the viewport.
 int getAutoScalePolicy()
          Returns the autoscale policy.
 ImageIcon getBackgroundImage()
          Returns the background image.
 JGraphEditorDiagram getDiagram()
          Returns the diagram.
 org.jgraph.JGraph getGraph()
          Returns the inner graph.
 org.jgraph.graph.GraphUndoManager getGraphUndoManager()
          Returns the graph undo manager.
 JGraphEditorRuler getHorizontalRuler()
          Returns the horizontal ruler.
 BufferedImage getImage(Color bg, int inset)
          Returns a BufferedImage for the graph using inset as an empty border around the cells of the graph.
 PageFormat getPageFormat()
          Returns the page format of the background page.
 double getPageScale()
          Returns the scale of the page metrics.
static JGraphEditorDiagramPane getParentDiagramPane(Component component)
          Returns the parent diagram pane of the specified component, or the component itself if it is a editor diagram pane.
 JGraphEditorRuler getVerticalRuler()
          Returns the vertical ruler.
 boolean isMetric()
          Returns true if the rulers use metric units.
 boolean isPageVisible()
          Returns true if the background page is visible.
 boolean isRulersVisible()
          Returns true if the rulers are to be displayed.
 int print(Graphics g, PageFormat printFormat, int page)
          Prints the specified page on the specified graphics using pageForm for the page format.
 void setAutoScalePolicy(int autoScalePolicy)
          Sets the autoscale policy.
 void setBackgroundImage(ImageIcon backgroundImage)
          Sets the background image.
 void setGraphUndoManager(org.jgraph.graph.GraphUndoManager undoManager)
          Sets the graph undo manager.
 void setMetric(boolean isMetric)
          Specifies if the rulers should use metric units.
 void setPageFormat(PageFormat pageFormat)
          Sets the page format of the background page.Fires a property change event for PROPERTY_PAGEFORMAT.
 void setPageScale(double pageScale)
          Sets the scale of the page metrics.Fires a property change event for PROPERTY_PAGESCALE.
 void setPageVisible(boolean isPageVisible)
          Sets if the background page should be visible.Fires a property change event for PROPERTY_PAGEVISIBLE.
 void setRulersVisible(boolean isRulersVisible)
          Sets if the rulers are to be displayed.
protected  void updateMinimumSize()
          Updates the minimum size of the graph according to the current state of the background page: if the page is not visible then the minimum size is set to null, otherwise the minimum size is set to the smallest area of pages containing the graph.
protected  void updateScale()
          Updates the scale based on the autoscale policy.
 
Methods inherited from class javax.swing.JScrollPane
createHorizontalScrollBar, createVerticalScrollBar, getAccessibleContext, getColumnHeader, getCorner, getHorizontalScrollBar, getHorizontalScrollBarPolicy, getRowHeader, getUI, getUIClassID, getVerticalScrollBar, getVerticalScrollBarPolicy, getViewport, getViewportBorder, getViewportBorderBounds, isValidateRoot, isWheelScrollingEnabled, paramString, setColumnHeader, setColumnHeaderView, setComponentOrientation, setCorner, setHorizontalScrollBar, setHorizontalScrollBarPolicy, setLayout, setRowHeader, setRowHeaderView, setUI, setVerticalScrollBar, setVerticalScrollBarPolicy, setViewport, setViewportBorder, setViewportView, setWheelScrollingEnabled, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFont, setForeground, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

DEFAULT_PAGESCALE

public static final double DEFAULT_PAGESCALE
Specifies the default page scale. Default is 1.5

See Also:
Constant Field Values

DEFAULT_HISTORYSIZE

public static final int DEFAULT_HISTORYSIZE
Specifies the size of the undo history. Default is 100.

See Also:
Constant Field Values

DEFAULT_ISMETRIC

public static final boolean DEFAULT_ISMETRIC
Specifies the default unit system. Default is metric.

See Also:
Constant Field Values

AUTOSCALE_POLICY_NONE

public static final int AUTOSCALE_POLICY_NONE
Defines the no autoscaling policy.

See Also:
Constant Field Values

AUTOSCALE_POLICY_WINDOW

public static final int AUTOSCALE_POLICY_WINDOW
Defines the window-size autoscaling policy.

See Also:
Constant Field Values

AUTOSCALE_POLICY_PAGE

public static final int AUTOSCALE_POLICY_PAGE
Defines the page autoscaling policy.

See Also:
Constant Field Values

AUTOSCALE_POLICY_PAGEWIDTH

public static final int AUTOSCALE_POLICY_PAGEWIDTH
Defines the pagewidth autoscaling policy.

See Also:
Constant Field Values

diagram

protected JGraphEditorDiagram diagram
References the diagram this pane represents.


pageFormat

protected PageFormat pageFormat
Background page format.


pageScale

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


verticalRuler

protected JGraphEditorRuler verticalRuler
Holds the rulers to be used in a parent scrollpane.


horizontalRuler

protected JGraphEditorRuler horizontalRuler
Holds the rulers to be used in a parent scrollpane.


isRulersVisible

protected boolean isRulersVisible
Specifies if the rules should be visible. Default is true.


isMetric

protected boolean isMetric
Specifies if the rulers should use metric units. Default is true.


isPageVisible

protected boolean isPageVisible
Specifies if the background page is visible. Default is true.


autoScalePolicy

protected int autoScalePolicy
Specified the autoscaling policy. Default is AUTOSCALE_POLICY_NONE.


backgroundImage

protected ImageIcon backgroundImage
Holds the background image.


undoManager

protected transient org.jgraph.graph.GraphUndoManager undoManager
Holds the undo manager for the graph.


graph

protected org.jgraph.JGraph graph
References the inner graph.


autoScaleResetListener

protected PropertyChangeListener autoScaleResetListener
Holds the autoscale reset listener to be used with the graph. This listener is used to reset the autoscale policy to none if the scale of the graph is changed manually, ie. not by means of automatic scaling.


PROPERTY_METRIC

public static String PROPERTY_METRIC
Bound property names for the respective properties.


PROPERTY_PAGEVISIBLE

public static String PROPERTY_PAGEVISIBLE
Bound property names for the respective properties.


PROPERTY_BACKGROUNDIMAGE

public static String PROPERTY_BACKGROUNDIMAGE
Bound property names for the respective properties.


PROPERTY_RULERSVISIBLE

public static String PROPERTY_RULERSVISIBLE
Bound property names for the respective properties.


PROPERTY_PAGEFORMAT

public static String PROPERTY_PAGEFORMAT
Bound property names for the respective properties.


PROPERTY_AUTOSCALEPOLICY

public static String PROPERTY_AUTOSCALEPOLICY
Bound property names for the respective properties.


PROPERTY_PAGESCALE

public static String PROPERTY_PAGESCALE
Bound property names for the respective properties.

Constructor Detail

JGraphEditorDiagramPane

public JGraphEditorDiagramPane(JGraphEditorDiagram diagram,
                               org.jgraph.JGraph graph)
Constructs a new graph pane for the specified diagram and graph.

Method Detail

createAutoScaleResetListener

public PropertyChangeListener createAutoScaleResetListener()
Hook for subclassers to create the autoscale reset listener.

Returns:
Returns a new autoscale reset listener.

createViewport

protected JViewport createViewport()
Hook for subclassers to create the viewport.

Returns:
Returns a new viewport to be used in the panel.

createRulers

protected void createRulers()
Hook for subclassers to create the rulers. This implementation sets the horizontalRuler and verticalRuler.


getImage

public BufferedImage getImage(Color bg,
                              int inset)
Returns a BufferedImage for the graph using inset as an empty border around the cells of the graph. If bg is null then a transparent background is applied to the image, else the background is filled with the bg color. Therefore, one should only use a null background if the fileformat support transparency, eg. GIF and PNG. For JPG, you can use Color.WHITE for example. This implementation also takes into account potential background images.

Returns:
Returns an image of the graph.

getGraphUndoManager

public org.jgraph.graph.GraphUndoManager getGraphUndoManager()
Returns the graph undo manager.

Returns:
Returns the graphUndoManager.

setGraphUndoManager

public void setGraphUndoManager(org.jgraph.graph.GraphUndoManager undoManager)
Sets the graph undo manager.

Parameters:
undoManager - The graphUndoManager to set.

getGraph

public org.jgraph.JGraph getGraph()
Returns the inner graph.

Returns:
Returns the graph.

getDiagram

public JGraphEditorDiagram getDiagram()
Returns the diagram.

Returns:
Returns the cacheNode.

isMetric

public boolean isMetric()
Returns true if the rulers use metric units.

Returns:
Returns the isMetric.

setMetric

public void setMetric(boolean isMetric)
Specifies if the rulers should use metric units. Fires a property change event for PROPERTY_METRIC.

Parameters:
isMetric - The isMetric to set.

isRulersVisible

public boolean isRulersVisible()
Returns true if the rulers are to be displayed.

Returns:
Returns the isRulersVisible.

setRulersVisible

public void setRulersVisible(boolean isRulersVisible)
Sets if the rulers are to be displayed. Fires a property change event for