com.jgraph.util

Class JGraphPrintingScrollPane

public class JGraphPrintingScrollPane 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.
Nested Class Summary
classJGraphPrintingScrollPane.Viewport
Viewport for diagram panes that is in charge of painting the background image or page.
Field Summary
static doubleDEFAULT_PAGESCALE
Specifies the default page scale.
protected JGraphgraph
References the inner graph.
protected booleanisPageVisible
Specifies if the background page is visible.
protected PageFormatpageFormat
Background page format.
protected doublepageScale
Defines the scaling for the background page metrics.
static StringPROPERTY_AUTOSCALEPOLICY
Bound property names for the respective properties.
static StringPROPERTY_BACKGROUNDIMAGE
Bound property names for the respective properties.
static StringPROPERTY_METRIC
Bound property names for the respective properties.
static StringPROPERTY_PAGEFORMAT
Bound property names for the respective properties.
static StringPROPERTY_PAGESCALE
Bound property names for the respective properties.
static StringPROPERTY_PAGEVISIBLE
Bound property names for the respective properties.
static StringPROPERTY_RULERSVISIBLE
Bound property names for the respective properties.
Method Summary
protected doublecomputePageScale()
Computes the scale for the page autoscale policy.
protected doublecomputePageWidthScale(int border)
Computes the scale for the pagewidth autoscale policy.
protected doublecomputeWindowScale(int border)
Computes the scale for the window autoscale policy.
JGraphgetGraph()
Returns the inner graph.
PageFormatgetPageFormat()
Returns the page format of the background page.
doublegetPageScale()
Returns the scale of the page metrics.
booleanisPageVisible()
Returns true if the background page is visible.
intprint(Graphics g, PageFormat printFormat, int page)
Prints the specified page on the specified graphics using pageForm for the page format.
voidsetPageFormat(PageFormat pageFormat)
Sets the page format of the background page.Fires a property change event for PROPERTY_PAGEFORMAT.
voidsetPageScale(double pageScale)
Sets the scale of the page metrics.Fires a property change event for PROPERTY_PAGESCALE.
voidsetPageVisible(boolean isPageVisible)
Sets if the background page should be visible.Fires a property change event for PROPERTY_PAGEVISIBLE.
protected voidupdateMinimumSize()
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.

Field Detail

DEFAULT_PAGESCALE

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

graph

protected JGraph graph
References the inner graph.

isPageVisible

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

pageFormat

protected PageFormat pageFormat
Background page format.

pageScale

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

PROPERTY_AUTOSCALEPOLICY

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

PROPERTY_BACKGROUNDIMAGE

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

PROPERTY_METRIC

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

PROPERTY_PAGEFORMAT

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

PROPERTY_PAGESCALE

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

PROPERTY_PAGEVISIBLE

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

PROPERTY_RULERSVISIBLE

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

Method Detail

computePageScale

protected double computePageScale()
Computes the scale for the page autoscale policy.

Returns: Returns the scale to use for the graph.

computePageWidthScale

protected double computePageWidthScale(int border)
Computes the scale for the pagewidth autoscale policy.

Parameters: border The border to use.

Returns: Returns the scale to use for the graph.

computeWindowScale

protected double computeWindowScale(int border)
Computes the scale for the window autoscale policy.

Parameters: border The border to use.

Returns: Returns the scale to use for the graph.

getGraph

public JGraph getGraph()
Returns the inner graph.

Returns: Returns the graph.

getPageFormat

public PageFormat getPageFormat()
Returns the page format of the background page.

Returns: Returns the pageFormat.

getPageScale

public double getPageScale()
Returns the scale of the page metrics.

Returns: Returns the pageScale.

isPageVisible

public boolean isPageVisible()
Returns true if the background page is visible.

Returns: Returns the isPageVisible.

print

public int print(Graphics g, PageFormat printFormat, int page)
Prints the specified page on the specified graphics using pageForm for the page format.

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.

setPageFormat

public void setPageFormat(PageFormat pageFormat)
Sets the page format of the background page.Fires a property change event for PROPERTY_PAGEFORMAT.

Parameters: pageFormat The pageFormat to set.

setPageScale

public void setPageScale(double pageScale)
Sets the scale of the page metrics.Fires a property change event for PROPERTY_PAGESCALE.

Parameters: pageScale The pageScale to set.

setPageVisible

public void setPageVisible(boolean isPageVisible)
Sets if the background page should be visible.Fires a property change event for PROPERTY_PAGEVISIBLE.

Parameters: isPageVisible The isPageVisible to set.

updateMinimumSize

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.
Copyright (C) 2001-2009 JGraph Ltd. All rights reserved.