public abstract class ChartGenerator
extends javax.swing.JPanel
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:
Modifier and Type | Class and Description |
---|---|
static class |
ChartGenerator.UniqueString |
javax.swing.JPanel.AccessibleJPanel
javax.swing.JComponent.AccessibleJComponent
Modifier and Type | Field and Description |
---|---|
protected org.jfree.chart.JFreeChart |
chart
The chart
|
protected sim.util.media.chart.ChartGenerator.ScrollableChartPanel |
chartPanel
The panel which holds and draws the chart
|
double |
DEFAULT_CHART_HEIGHT |
double |
DEFAULT_CHART_PROPORTION |
static long |
FORCE_KEY |
protected javax.swing.Box |
globalAttributes
A holder for global attributes components
|
protected java.lang.String |
invalidChartTitle
This is set to a string indicating that the chart is invalid.
|
protected javax.swing.Box |
seriesAttributes
A holder for series attributes components
|
protected java.lang.String |
validChartTitle |
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
Constructor and Description |
---|
ChartGenerator()
Generates a new ChartGenerator with a blank chart.
|
Modifier and Type | Method and Description |
---|---|
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.
|
sim.util.media.chart.ChartGenerator.ScrollableChartPanel |
buildChartPanel(org.jfree.chart.JFreeChart chart) |
protected void |
buildGlobalAttributes(LabelledList list) |
javax.swing.JFrame |
createFrame()
Returns a JFrame suitable or housing the ChartGenerator.
|
javax.swing.JFrame |
createFrame(boolean inspector)
Returns a JFrame suitable or housing the ChartGenerator.
|
javax.swing.JFrame |
createFrame(java.lang.Object simulation)
Deprecated.
use createFrame()
|
org.jfree.chart.JFreeChart |
getChart()
Returns the underlying chart.
|
org.jfree.chart.ChartPanel |
getChartPanel()
Returns the ChartPanel holding the chart.
|
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() |
double |
getProportion() |
double |
getScale() |
protected SeriesAttributes |
getSeriesAttribute(int i) |
protected SeriesAttributes[] |
getSeriesAttributes() |
abstract int |
getSeriesCount() |
abstract org.jfree.data.general.Dataset |
getSeriesDataset() |
java.lang.String |
getTitle()
Returns the title of the chart
|
boolean |
isFixed() |
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 |
setChartPanel(sim.util.media.chart.ChartGenerator.ScrollableChartPanel chartPanel) |
void |
setFixed(boolean value) |
void |
setInvalidChartTitle(java.lang.String title)
Sets the invalid chart title if any.
|
void |
setProportion(double val) |
void |
setScale(double val) |
protected void |
setSeriesAttributes(SeriesAttributes[] c) |
abstract void |
setSeriesDataset(org.jfree.data.general.Dataset obj) |
void |
setTitle(java.lang.String title)
Sets the title of the chart (and the window frame).
|
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() |
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.
|
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
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, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, 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
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, transferFocusDownCycle, validate, validateTree
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, 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, transferFocusBackward, transferFocusUpCycle
protected javax.swing.Box globalAttributes
protected javax.swing.Box seriesAttributes
protected org.jfree.chart.JFreeChart chart
protected sim.util.media.chart.ChartGenerator.ScrollableChartPanel chartPanel
public static final long FORCE_KEY
protected java.lang.String invalidChartTitle
protected java.lang.String validChartTitle
public double DEFAULT_CHART_HEIGHT
public double DEFAULT_CHART_PROPORTION
public ChartGenerator()
public void setChartPanel(sim.util.media.chart.ChartGenerator.ScrollableChartPanel chartPanel)
public javax.swing.JFrame getFrame()
public abstract org.jfree.data.general.Dataset getSeriesDataset()
public abstract void setSeriesDataset(org.jfree.data.general.Dataset obj)
protected void update()
protected abstract void buildChart()
public void update(long key, boolean newData)
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)
public void startMovie()
public void stopMovie()
public abstract int getSeriesCount()
public void removeAllSeries()
public void quit()
public org.jfree.chart.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 setInvalidChartTitle(java.lang.String title)
public void setTitle(java.lang.String title)
public java.lang.String getTitle()
public org.jfree.chart.JFreeChart getChart()
protected void buildGlobalAttributes(LabelledList list)
public boolean isFixed()
public void setFixed(boolean value)
public double getScale()
public double getProportion()
public void setScale(double val)
public void setProportion(double val)
public javax.swing.JFrame createFrame()
public javax.swing.JFrame createFrame(boolean inspector)
public javax.swing.JFrame createFrame(java.lang.Object simulation)
public void addLegend()
public void updateChartWithin(long key, long milliseconds)
public void updateChartLater(long key)
public sim.util.media.chart.ChartGenerator.ScrollableChartPanel buildChartPanel(org.jfree.chart.JFreeChart chart)