org.das2.graph.DasCanvas

Canvas for das2 graphics. The DasCanvas contains any number of DasCanvasComponents such as axes, plots, colorbars, etc.

DasCanvas( )

Creates a new instance of DasCanvas.

DasCanvas( int width, int height )

Creates a new instance of DasCanvas with the specified width and height


DEFAULT_LAYER

Default drawing layer of the JLayeredPane


PLOT_LAYER

Z-Layer for drawing the plot.


VERTICAL_AXIS_LAYER

Z-Layer for vertical axis. Presently lower than the horizontal axis, presumably to remove ambiguity


HORIZONTAL_AXIS_LAYER

Z-Layer


AXIS_LAYER

Z-Layer


ANNOTATION_LAYER

Z-Layer


GLASS_PANE_LAYER

Z-Layer


SAVE_AS_PNG_ACTION


SAVE_AS_SVG_ACTION


SAVE_AS_PDF_ACTION


EDIT_DAS_PROPERTIES_ACTION


PRINT_ACTION


REFRESH_ACTION


ABOUT_ACTION

Override Component.setBounds for debugging.


PROPERTIES_ACTION


broken


PROP_SCALEFONTS

The font used should be the base font scaled based on the canvas size. If this is false, then the canvas font is simply the base font.


PROP_BASEFONT

Property name for the base font.


PROP_PAINTCOUNT


add

add( org.das2.graph.DasCanvasComponent c, org.das2.graph.DasRow row, org.das2.graph.DasColumn column ) → void

This methods adds the specified DasCanvasComponent to this canvas.

Parameters

c - the component to be added to this canvas Note that the canvas will need to be revalidated after the component is added.
row - DasRow specifying the layout of the component.
column - DasColumn specifying the layout of the component.

Returns:

void (returns nothing)

[search for examples] [view on GitHub] [view on old javadoc] [view source]


addBottomDecorator

addBottomDecorator( org.das2.graph.Painter painter ) → void

add a decorator that will be painted on below all other objects. Each decorator object should complete painting within 100 milliseconds, and the total for all decorators should not exceed 300 milliseconds. This should be done on the event thread.

Parameters

painter - a Painter

Returns:

void (returns nothing)

[search for examples] [view on GitHub] [view on old javadoc] [view source]


addTopDecorator

addTopDecorator( org.das2.graph.Painter painter ) → void

add a decorator that will be painted on top of all other objects. Each decorator object should complete painting within 100 milliseconds, and the total for all decorators should not exceed 300 milliseconds. This should be done on the event thread.

Parameters

painter - a Painter

Returns:

void (returns nothing)

[search for examples] [view on GitHub] [view on old javadoc] [view source]


changePerformed

changePerformed( Object client, Object lockObject ) → void

indicate to the canvas that a change is now complete.

Parameters

client - the client registering the change
lockObject - an object identifying the change

Returns:

void (returns nothing)

See Also:

ChangesSupport


[search for examples] [view on GitHub] [view on old javadoc] [view source]


childIsDirty

childIsDirty( org.das2.graph.DasCanvas c ) → boolean

scans through all the canvas components and returns true if any are in a "dirty" state and need repainting.

Parameters

c - a DasCanvas

Returns:

true if any canvas component is dirty.

[search for examples] [view on GitHub] [view on old javadoc] [view source]


createFormCanvas

createFormCanvas( String name, int width, int height ) → org.das2.graph.DasCanvas

Parameters

name - a String
width - an int
height - an int

Returns:

DasCanvas with a name.

[search for examples] [view on GitHub] [view on old javadoc] [view source]


devicePositionList

devicePositionList( ) → java.util.List

returns a list of all the rows and columns on the canvas.

Returns:

a java.util.List

[search for examples] [view on GitHub] [view on old javadoc] [view source]


getActions

getActions( ) → javax.swing.Action[]

Returns:

javax.swing.Action[]

[search for examples] [view on GitHub] [view on old javadoc] [view source]


getApplication

getApplication( ) → org.das2.DasApplication

Returns:

org.das2.DasApplication

[search for examples] [view on GitHub] [view on old javadoc] [view source]


getBaseFont

getBaseFont( ) → java.awt.Font

the base font, which is the font or the font which is scaled when scaleFont is true.

Returns:

the base font, which is the font or the font which is scaled when scaleFont is true.

[search for examples] [view on GitHub] [view on old javadoc] [view source]


getCanvasComponentAt

getCanvasComponentAt( int x, int y ) → org.das2.graph.DasCanvasComponent

Returns the DasCanvasComponent that contains the (x, y) location. If there is no component at that location, this method returns null

Parameters

x - the x coordinate
y - the y coordinate

Returns:

the component at the specified point, or null

[search for examples] [view on GitHub] [view on old javadoc] [view source]


getCanvasComponents

getCanvasComponents( int index ) → org.das2.graph.DasCanvasComponent

return the component at the index.

Parameters

index - the index

Returns:

the component at the index.

[search for examples] [view on GitHub] [view on old javadoc] [view source]

getCanvasComponents( ) → org.das2.graph.DasCanvasComponent[]

getCellAt

getCellAt( int x, int y ) → org.das2.graph.DasCanvas.Cell

TODO

Parameters

x - an int
y - an int

Returns:

an org.das2.graph.DasCanvas.Cell

[search for examples] [view on GitHub] [view on old javadoc] [view source]


getDasApplication

getDasApplication( ) → org.das2.DasApplication

return the application object for this canvas.

Returns:

the application object for this canvas.

[search for examples] [view on GitHub] [view on old javadoc] [view source]


getDasName

getDasName( ) → String

return the name identifying the component.

Returns:

the name identifying the component.

[search for examples] [view on GitHub] [view on old javadoc] [view source]


getDevicePositionList

getDevicePositionList( ) → java.util.List

return a list of all the rows and columns.

Returns:

a list of all the rows and columns.

[search for examples] [view on GitHub] [view on old javadoc] [view source]


getDnDSupport

getDnDSupport( ) → org.das2.util.DnDSupport

TODO

Returns:

an org.das2.util.DnDSupport

[search for examples] [view on GitHub] [view on old javadoc] [view source]


getEditingMode

getEditingMode( ) → boolean

TODO

Returns:

a boolean

[search for examples] [view on GitHub] [view on old javadoc] [view source]


getFocusCanvas

getFocusCanvas( ) → org.das2.graph.DasCanvas

return the canvas that has the focus.

Returns:

an org.das2.graph.DasCanvas

[search for examples] [view on GitHub] [view on old javadoc] [view source]


getGlassPane

getGlassPane( ) → java.awt.Component

returns the GlassPane above all other components. This is used for drawing dragRenderers, etc.

Returns:

a java.awt.Component

[search for examples] [view on GitHub] [view on old javadoc] [view source]


getImage

getImage( int width, int height ) → java.awt.image.BufferedImage

Creates a BufferedImage by blocking until the image is ready. This includes waiting for datasets to load, etc. Works by submitting an invokeAfter request to the RequestProcessor that calls {@link #writeToImageImmediately(Image)}.

Parameters

width - an int
height - an int

Returns:

a BufferedImage

[search for examples] [view on GitHub] [view on old javadoc] [view source]


getImageMetadata

getImageMetadata( ) → String

returns JSON code that can be used to get plot positions and axes.

Returns:

a String

[search for examples] [view on GitHub] [view on old javadoc] [view source]


getImageNonPrint

getImageNonPrint( int width, int height ) → java.awt.Image

Creates a BufferedImage by blocking until the image is ready. This includes waiting for datasets to load, etc. Works by submitting an invokeAfter request to the RequestProcessor that calls {@link #writeToImageImmediately(Image)}. Note, this calls writeToImageImmediatelyNonPrint, which avoids the usual overhead of revalidating the DasPlot elements we normally do when printing to a new device.

Parameters

width - an int
height - an int

Returns:

an Image

[search for examples] [view on GitHub] [view on old javadoc] [view source]


getLineAt

getLineAt( int x, int y ) → org.das2.graph.DasCanvas.HotLine

TODO

Parameters

x - an int
y - an int

Returns:

an org.das2.graph.DasCanvas.HotLine

[search for examples] [view on GitHub] [view on old javadoc] [view source]


getMaximumSize

getMaximumSize( ) → java.awt.Dimension

simply returns getPreferredSize()

Returns:

getPreferredSize()

[search for examples] [view on GitHub] [view on old javadoc] [view source]


getPaintCount

getPaintCount( ) → int

provide a property which can be used to monitor updates.

Returns:

arbitrary int which will change as the canvas is painted.

[search for examples] [view on GitHub] [view on old javadoc] [view source]


getPreferredScrollableViewportSize

getPreferredScrollableViewportSize( ) → java.awt.Dimension

Returns:

java.awt.Dimension

[search for examples] [view on GitHub] [view on old javadoc] [view source]


getPrintable

getPrintable( ) → java.awt.print.Printable

Returns an instance of java.awt.print.Printable that can be used to render this canvas to a printer. The current implementation returns a reference to this canvas. This method is provided so that in the future, the canvas can delegate it's printing to another object.

Returns:

a Printable instance for rendering this component.

[search for examples] [view on GitHub] [view on old javadoc] [view source]


getPrintingTag

getPrintingTag( ) → String

printingTag is the DateFormat string to use to tag printed images.

Returns:

Value of property printingTag.

[search for examples] [view on GitHub] [view on old javadoc] [view source]


getScrollableBlockIncrement

getScrollableBlockIncrement( java.awt.Rectangle visibleRect, int orientation, int direction ) → int

Parameters

visibleRect - a Rectangle
orientation - an int
direction - an int

Returns:

int

[search for examples] [view on GitHub] [view on old javadoc] [view source]


getScrollableTracksViewportHeight

getScrollableTracksViewportHeight( ) → boolean

Returns:

boolean

[search for examples] [view on GitHub] [view on old javadoc] [view source]


getScrollableTracksViewportWidth

getScrollableTracksViewportWidth( ) → boolean

Returns:

boolean

[search for examples] [view on GitHub] [view on old javadoc] [view source]


getScrollableUnitIncrement

getScrollableUnitIncrement( java.awt.Rectangle visibleRect, int orientation, int direction ) → int

Parameters

visibleRect - a Rectangle
orientation - an int
direction - an int

Returns:

int

[search for examples] [view on GitHub] [view on old javadoc] [view source]


hasBottomDecorators

hasBottomDecorators( ) → boolean

returns true if there are any bottom decorators.

Returns:

true if there are any decorators.

[search for examples] [view on GitHub] [view on old javadoc] [view source]


hasTopDecorators

hasTopDecorators( ) → boolean

returns true if there are any top decorators.

Returns:

true if there are any decorators.

[search for examples] [view on GitHub] [view on old javadoc] [view source]


isAntiAlias

isAntiAlias( ) → boolean

true if data will be fully rendered with anti-aliasing.

Returns:

true if data will be fully rendered with anti-aliasing.

[search for examples] [view on GitHub] [view on old javadoc] [view source]


isDirty

isDirty( ) → boolean

returns true if work needs to be done to make the canvas clean. This checks each component's isDirty.

Returns:

true if work needs to be done to make the canvas clean

[search for examples] [view on GitHub] [view on old javadoc] [view source]


isFitted

isFitted( ) → boolean

If true, and the canvas was added to a scrollpane, the canvas will size itself to fit within the scrollpane.

Returns:

value of fitted property

[search for examples] [view on GitHub] [view on old javadoc] [view source]


isPendingChanges

isPendingChanges( Object lockObject ) → boolean

ask the canvas if the particular change is already pending.

Parameters

lockObject - an object identifying the change

Returns:

true if that particular change is pending.

See Also:

ChangesSupport


[search for examples] [view on GitHub] [view on old javadoc] [view source]

isPendingChanges( ) → boolean

isScaleFonts

isScaleFonts( ) → boolean

true if the fonts should be rescaled as the window size is changed.

Returns:

true if the fonts should be rescaled as the window size is changed.

[search for examples] [view on GitHub] [view on old javadoc] [view source]


isTextAntiAlias

isTextAntiAlias( ) → boolean

return true if fonts will be fully rendered.

Returns:

true if fonts will be fully rendered.

[search for examples] [view on GitHub] [view on old javadoc] [view source]


isValueAdjusting

isValueAdjusting( ) → boolean

returns true if an operation is being performed that should be treated as atomic.

Returns:

true if an operation is being performed that should be treated as atomic.

See Also:

ChangesSupport


[search for examples] [view on GitHub] [view on old javadoc] [view source]


lisPaintingForPrint

lisPaintingForPrint( ) → boolean

Java1.6 has this function native

Returns:

a boolean

[search for examples] [view on GitHub] [view on old javadoc] [view source]


makeCurrent

makeCurrent( ) → void

make this the current canvas

Returns:

void (returns nothing)

[search for examples] [view on GitHub] [view on old javadoc] [view source]


mutatorLock

mutatorLock( ) → java.util.concurrent.locks.Lock

access the lock for an atomic operation.

Returns:

the lock.

See Also:

ChangesSupport


[search for examples] [view on GitHub] [view on old javadoc] [view source]


otherPlotOnTop

otherPlotOnTop( org.das2.graph.DasAxis aThis ) → org.das2.graph.DasPlot

return a plot which shares this row and column, or null.

Parameters

aThis - a DasAxis

Returns:

a plot which shares this row and column, or null.

[search for examples] [view on GitHub] [view on old javadoc] [view source]


pendingChanges

pendingChanges( java.util.Map result ) → void

return a list of pending changes.

Parameters

result - a java.util.Map

Returns:

void (returns nothing)

See Also:

waitUntilIdle


[search for examples] [view on GitHub] [view on old javadoc] [view source]


performingChange

performingChange( Object client, Object lockObject ) → void

indicate to the canvas that a change is being performed.

Parameters

client - the client registering the change
lockObject - an object identifying the change

Returns:

void (returns nothing)

See Also:

ChangesSupport


[search for examples] [view on GitHub] [view on old javadoc] [view source]


prepareForOutput

prepareForOutput( int width, int height ) → void

resets the width and height, then waits for all update messages to be processed. In headless mode, the GUI components are validated. This must not be called from the event queue, because it uses eventQueueBlocker!

Parameters

width - the width of the output in pixels.
height - the width of the output in pixels.

Returns:

void (returns nothing)

[search for examples] [view on GitHub] [view on old javadoc] [view source]


print

print( java.awt.Graphics printGraphics, java.awt.print.PageFormat format, int pageIndex ) → int

Prints the canvas, scaling and possibly rotating it to improve fit.

Parameters

printGraphics - the Graphics object.
format - the PageFormat object.
pageIndex - should be 0, since the image will be on one page.

Returns:

Printable.PAGE_EXISTS or Printable.NO_SUCH_PAGE

[search for examples] [view on GitHub] [view on old javadoc] [view source]

print( java.awt.Graphics g1 ) → void

registerPendingChange

registerPendingChange( Object client, Object lockObject ) → void

indicate to the canvas that a change will be made soon. For example, the canvas should wait for the change to be performed before creating an image.

Parameters

client - the client registering the change
lockObject - an object identifying the change

Returns:

void (returns nothing)

See Also:

ChangesSupport


[search for examples] [view on GitHub] [view on old javadoc] [view source]


remove

remove( int index ) → void

Removes the component, specified by index, from this container, calling its uninstallComponent method if it's a DasCanvasComponent.

Parameters

index - the index of the component to be removed.

Returns:

void (returns nothing)

[search for examples] [view on GitHub] [view on old javadoc] [view source]

remove( java.awt.Component comp ) → void

removeBottomDecorator

removeBottomDecorator( org.das2.graph.Painter painter ) → void

remove the decorator. This should be done on the event thread.

Parameters

painter - a Painter

Returns:

void (returns nothing)

[search for examples] [view on GitHub] [view on old javadoc] [view source]


removeBottomDecorators

removeBottomDecorators( ) → void

remove all bottom decorators. This should be done on the event thread.

Returns:

void (returns nothing)

[search for examples] [view on GitHub] [view on old javadoc] [view source]


removeDasDevicePosition

removeDasDevicePosition( org.das2.graph.DasDevicePosition position ) → void

remove the device position from the list we keep track of. Note those with parent rows and columns should not be registered (or at least existing code doesn't add it).

Parameters

position - a DasDevicePosition

Returns:

void (returns nothing)

[search for examples] [view on GitHub] [view on old javadoc] [view source]


removeTopDecorator

removeTopDecorator( org.das2.graph.Painter painter ) → void

remove the decorator. This should be done on the event thread.

Parameters

painter - a Painter

Returns:

void (returns nothing)

[search for examples] [view on GitHub] [view on old javadoc] [view source]


removeTopDecorators

removeTopDecorators( ) → void

remove all top decorators. This should be done on the event thread.

Returns:

void (returns nothing)

[search for examples] [view on GitHub] [view on old javadoc] [view source]


removepwDevicePosition

Deprecated: use removeDasDevicePosition instead.

resizeAllComponents

resizeAllComponents( ) → void

introduced as a kludgy way for clients to force the canvas to resize all of its components. validate or revalidate should probably do this.

Returns:

void (returns nothing)

[search for examples] [view on GitHub] [view on old javadoc] [view source]


setAntiAlias

setAntiAlias( boolean antiAlias ) → void

true if data will be fully rendered with anti-aliasing.

Parameters

antiAlias - if data will be fully rendered with anti-aliasing.

Returns:

void (returns nothing)

[search for examples] [view on GitHub] [view on old javadoc] [view source]


setApplication

setApplication( org.das2.DasApplication application ) → void

Parameters

application - a DasApplication

Returns:

void (returns nothing)

[search for examples] [view on GitHub] [view on old javadoc] [view source]


setBaseFont

setBaseFont( java.awt.Font font ) → void

the base font, which is the font or the font which is scaled with canvas size when scaleFont is true.

Parameters

font - the font used to derive all other fonts.

Returns:

void (returns nothing)

[search for examples] [view on GitHub] [view on old javadoc] [view source]


setDasName

setDasName( String name ) → void

set the name identifying the component.

Parameters

name - the name identifying the component.

Returns:

void (returns nothing)

[search for examples] [view on GitHub] [view on old javadoc] [view source]


setDisableActions

setDisableActions( boolean val ) → void

Parameters

val - a boolean

Returns:

void (returns nothing)

[search for examples] [view on GitHub] [view on old javadoc] [view source]


setEditingMode

setEditingMode( boolean b ) → void

TODO

Parameters

b - a boolean

Returns:

void (returns nothing)

[search for examples] [view on GitHub] [view on old javadoc] [view source]


setFitted

setFitted( boolean fitted ) → void

If true, and the canvas was added to a scrollpane, the canvas will size itself to fit within the scrollpane.

Parameters

fitted - value of fitted property

Returns:

void (returns nothing)

[search for examples] [view on GitHub] [view on old javadoc] [view source]


setFont

setFont( java.awt.Font font ) → void

Parameters

font - a Font

Returns:

void (returns nothing)

[search for examples] [view on GitHub] [view on old javadoc] [view source]


setPreferredHeight

setPreferredHeight( int height ) → void

Sets the preferred height of the canvas to the specified height.

Parameters

height - the specified height

Returns:

void (returns nothing)

[search for examples] [view on GitHub] [view on old javadoc] [view source]


setPreferredWidth

setPreferredWidth( int width ) → void

Sets the preferred width of the canvas to the specified width.

Parameters

width - the specified width.

Returns:

void (returns nothing)

[search for examples] [view on GitHub] [view on old javadoc] [view source]


setPrintingTag

setPrintingTag( String printingTag ) → void

printingTag is the string to use to tag printed images. This can be 'yyyymmdd (SimpleDateFormat) or $Y$m$d, or just a string.

Parameters

printingTag - New value of property printingTag.

Returns:

void (returns nothing)

[search for examples] [view on GitHub] [view on old javadoc] [view source]


setScaleFonts

setScaleFonts( boolean scaleFonts ) → void

true if the fonts should be rescaled as the window size is changed.

Parameters

scaleFonts - true if the fonts should be rescaled as the window size is changed.

Returns:

void (returns nothing)

[search for examples] [view on GitHub] [view on old javadoc] [view source]


setTextAntiAlias

setTextAntiAlias( boolean textAntiAlias ) → void

true if fonts will be fully rendered.

Parameters

textAntiAlias - true if fonts will be fully rendered.

Returns:

void (returns nothing)

[search for examples] [view on GitHub] [view on old javadoc] [view source]


startDrag

startDrag( int x, int y, int action, java.awt.event.MouseEvent evt ) → boolean

TODO

Parameters

x - an int
y - an int
action - an int
evt - a MouseEvent

Returns:

a boolean

[search for examples] [view on GitHub] [view on old javadoc] [view source]


toString

toString( ) → String

Returns:

java.lang.String

[search for examples] [view on GitHub] [view on old javadoc] [view source]


waitUntilIdle

waitUntilIdle( boolean monitors ) → void

blocks until everything is idle, including no active monitors. PRESENTLY THIS DOES NOT CHECK MONITORS!

Parameters

monitors - a boolean

Returns:

void (returns nothing)

[search for examples] [view on GitHub] [view on old javadoc] [view source]

waitUntilIdle( ) → void

waitUntilValid

waitUntilValid( ) → void

process all pending operations and make sure we're repainted. See PlotCommand in Autoplot.

Returns:

void (returns nothing)

[search for examples] [view on GitHub] [view on old javadoc] [view source]


writeToGraphicsOutput

writeToGraphicsOutput( java.io.OutputStream out, org.das2.util.awt.GraphicsOutput go ) → void

write to various graphics devices such as png, pdf and svg. This handles the synchronization and parameter settings.

Parameters

out - OutputStream to receive the data
go - GraphicsOutput object.

Returns:

void (returns nothing)

[search for examples] [view on GitHub] [view on old javadoc] [view source]

writeToGraphicsOutput( String filename, String graphicsOutput ) → void

writeToImageImmediately

writeToImageImmediately( java.awt.Image image ) → void

Writes on to the image without waiting, using the print method. The graphics context is accessed with image.getGraphics.

Parameters

image - the image

Returns:

void (returns nothing)

[search for examples] [view on GitHub] [view on old javadoc] [view source]


writeToImageImmediatelyNoCount

writeToImageImmediatelyNoCount( java.awt.Image image ) → void

silly code so that Autoplot can get an image without incrementing paintCount.

Parameters

image - an Image

Returns:

void (returns nothing)

[search for examples] [view on GitHub] [view on old javadoc] [view source]


writeToImageImmediatelyNonPrint

writeToImageImmediatelyNonPrint( java.awt.Image image ) → void

This by passes the normal print method used in writeToImageImmedately, which sets the printing flags which tell the components, like DasPlot, to fully reset. This was introduced so that Autoplot could get thumbnails and an image of the canvas for its layout tab without having to reset.

Parameters

image - the image

Returns:

void (returns nothing)

[search for examples] [view on GitHub] [view on old javadoc] [view source]


writeToPDF

writeToPDF( String filename ) → void

write the canvas to a PDF file.

Parameters

filename - the PDF file name.

Returns:

void (returns nothing)

[search for examples] [view on GitHub] [view on old javadoc] [view source]


writeToPng

writeToPng( java.io.OutputStream out, int w, int h ) → void

uses getImage to get an image of the canvas and encodes it as a png. Note this now puts in a JSON representation of plot locations in the "plotInfo" tag. The plotInfo tag will contain:

   "size:[640,480]"
   "numberOfPlots:0"   
   "plots: { ... "  where each plot contains:
   "title" "xaxis" "yaxis"
}
See http://autoplot.org/richPng. It is the responsibility of the caller to close the stream.

Parameters

out - the outputStream. This is left open, so the opener code must close it!
w - width in pixels
h - height in pixels

Returns:

void (returns nothing)

[search for examples] [view on GitHub] [view on old javadoc] [view source]

writeToPng( String filename ) → void

writeToSVG

writeToSVG( String filename ) → void

Parameters

filename - the specified filename

Returns:

void (returns nothing)

[search for examples] [view on GitHub] [view on old javadoc] [view source]