|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjava.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JPanel
sim.util.media.chart.ChartGenerator
public abstract class ChartGenerator
ChartGenerator is a JPanel which displays a chart using the JFreeChart library. The class is abstract: you'll need to use a concrete subclass to build a specific kind of chart. The facility allows multiple time series to be displayed at one time, to be exported to PDF, and to be dynamically added and removed.
Subclasses only really need to override one method: buildChart(), which creates the chart and the chartPanel and loads them into the chartHolder, then finally sets the series dataset. Subclasses will also find it convenient to override update() to update the chart specially each time it's repainted, removeSeries(index) to remove a series, or moveSeries(index, boolean) to change the order of series. In a subclass's constructor it may also modify the global attributes to make ones special to its kind of chart as well. Finally, note that ChartGenerator has no standard API for adding a series to the chart, nor any standard way to modify this series once it has been added. This is because JFreeChart has non-standard, non-consistent APIs for different kinds of charts. You will need to implement these on a per-chart basis as you see fit.
ChartGenerator displays three regions:
Nested Class Summary |
---|
Nested classes/interfaces inherited from class javax.swing.JPanel |
---|
javax.swing.JPanel.AccessibleJPanel |
Nested classes/interfaces inherited from class javax.swing.JComponent |
---|
javax.swing.JComponent.AccessibleJComponent |
Nested classes/interfaces inherited from class java.awt.Container |
---|
java.awt.Container.AccessibleAWTContainer |
Nested classes/interfaces inherited from class java.awt.Component |
---|
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy |
Field Summary | |
---|---|
protected JFreeChart |
chart
The chart |
protected javax.swing.JScrollPane |
chartHolder
The JScrollPane which holdw the ChartPanel |
protected ChartPanel |
chartPanel
The panel which holds and draws the chart |
static long |
FORCE_KEY
|
protected javax.swing.Box |
globalAttributes
A holder for global attributes components |
protected javax.swing.Box |
seriesAttributes
A holder for series attributes components |
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.image.ImageObserver |
---|
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH |
Constructor Summary | |
---|---|
ChartGenerator()
Generates a new ChartGenerator with a blank chart. |
Method Summary | |
---|---|
void |
addGlobalAttribute(java.awt.Component component)
Adds a global attribute panel to the frame |
void |
addLegend()
Add a legend to the chart unless the chart already has one. |
protected abstract void |
buildChart()
Override this to construct the appropriate kind of chart. |
javax.swing.JFrame |
createFrame()
Returns a JFrame suitable or housing the ChartGenerator. |
javax.swing.JFrame |
createFrame(java.lang.Object simulation)
|
JFreeChart |
getChart()
Returns the underlying chart. |
ChartPanel |
getChartPanel()
Returns the ChartPanel holding the chart. |
java.lang.String |
getDomainAxisLabel()
Deprecated. Returns the name of the Domain Axis label -- usually this is the X axis. |
javax.swing.JFrame |
getFrame()
Returns the JFrame which stores the whole chart. |
java.awt.Component |
getGlobalAttribute(int index)
Returns the global attribute panel of the given index. |
int |
getGlobalAttributeCount()
Deprecated. Use getNumGlobalAttributes |
int |
getNumGlobalAttributes()
Returns the number of global attribute panels. |
int |
getNumSeriesAttributes()
|
java.lang.String |
getRangeAxisLabel()
Deprecated. Returns the name of the Range Axis Label -- usually this is the Y axis. |
protected SeriesAttributes |
getSeriesAttribute(int i)
|
protected SeriesAttributes[] |
getSeriesAttributes()
|
XYDataset |
getSeriesDataset()
|
java.lang.String |
getTitle()
Returns the title of the chart |
java.lang.String |
getXAxisLabel()
Returns the name of the X Axis label. |
java.lang.String |
getYAxisLabel()
Returns the name of the Y Axis label. |
boolean |
isXAxisLogScaled()
|
boolean |
isYAxisLogScaled()
|
void |
moveSeries(int index,
boolean up)
Override this to move a series relative to other series. |
void |
quit()
Prepares the chart to be garbage collected. |
void |
removeAllSeries()
Deletes all series from the chart. |
java.awt.Component |
removeGlobalAttribute(int index)
Remooves the global attribute at the given index and returns it. |
void |
removeSeries(int index)
Override this to remove a series from the chart. |
void |
setDomainAxisLabel(java.lang.String val)
Deprecated. Sets the name of the Domain Axis label -- usually this is the X axis. |
void |
setDomainAxisRange(double lower,
double upper)
Deprecated. |
void |
setRangeAxisLabel(java.lang.String val)
Deprecated. Sets the name of the Range Axis label -- usually this is the Y axis. |
void |
setRangeAxisRange(double lower,
double upper)
Deprecated. |
protected void |
setSeriesAttributes(SeriesAttributes[] c)
|
void |
setSeriesDataset(XYDataset obj)
|
void |
setTitle(java.lang.String title)
Sets the title of the chart (and the window frame). |
void |
setXAxisLabel(java.lang.String val)
Sets the name of the X Axis label. |
void |
setXAxisLogScaled(boolean isLogScaled)
|
void |
setXAxisRange(double lower,
double upper)
|
void |
setYAxisLabel(java.lang.String val)
Sets the name of the Y Axis label. |
void |
setYAxisLogScaled(boolean isLogScaled)
|
void |
setYAxisRange(double lower,
double upper)
|
void |
startMovie()
Starts a Quicktime movie on the given ChartGenerator. |
void |
stopMovie()
Stops a Quicktime movie and cleans up, flushing the remaining frames out to disk. |
protected void |
update()
Override this to update the chart to reflect new data. |
void |
update(long key,
boolean newData)
Key must be 0 or higher. |
void |
updateChartLater(long key)
Posts a request to update the chart on the Swing event queue to happen next time repaints etc. |
void |
updateChartWithin(long key,
long milliseconds)
Updates the inspector asynchronously sometime before the given milliseconds have transpired. |
Methods inherited from class javax.swing.JPanel |
---|
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI |
Methods inherited from class javax.swing.JComponent |
---|
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, 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, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, 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, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, 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, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, 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 |
---|
protected javax.swing.Box globalAttributes
protected javax.swing.Box seriesAttributes
protected JFreeChart chart
protected ChartPanel chartPanel
protected javax.swing.JScrollPane chartHolder
public static final long FORCE_KEY
Constructor Detail |
---|
public ChartGenerator()
Method Detail |
---|
public javax.swing.JFrame getFrame()
public void setXAxisLogScaled(boolean isLogScaled)
public boolean isXAxisLogScaled()
public void setYAxisLogScaled(boolean isLogScaled)
public boolean isYAxisLogScaled()
public XYDataset getSeriesDataset()
public void setSeriesDataset(XYDataset obj)
public void update(long key, boolean newData)
protected void update()
protected SeriesAttributes getSeriesAttribute(int i)
public int getNumSeriesAttributes()
protected SeriesAttributes[] getSeriesAttributes()
protected void setSeriesAttributes(SeriesAttributes[] c)
public void removeSeries(int index)
public void moveSeries(int index, boolean up)
protected abstract void buildChart()
public void startMovie()
public void stopMovie()
public void removeAllSeries()
public void quit()
public ChartPanel getChartPanel()
public void addGlobalAttribute(java.awt.Component component)
public java.awt.Component getGlobalAttribute(int index)
public int getGlobalAttributeCount()
public int getNumGlobalAttributes()
public java.awt.Component removeGlobalAttribute(int index)
public void setTitle(java.lang.String title)
public java.lang.String getTitle()
public void setRangeAxisLabel(java.lang.String val)
public void setYAxisLabel(java.lang.String val)
public java.lang.String getRangeAxisLabel()
public java.lang.String getYAxisLabel()
public void setDomainAxisLabel(java.lang.String val)
public void setXAxisLabel(java.lang.String val)
public java.lang.String getDomainAxisLabel()
public java.lang.String getXAxisLabel()
public JFreeChart getChart()
public javax.swing.JFrame createFrame()
public javax.swing.JFrame createFrame(java.lang.Object simulation)
public void addLegend()
public void setRangeAxisRange(double lower, double upper)
public void setYAxisRange(double lower, double upper)
public void setDomainAxisRange(double lower, double upper)
public void setXAxisRange(double lower, double upper)
public void updateChartWithin(long key, long milliseconds)
public void updateChartLater(long key)
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |