Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## sim.util.media.chart
Class ChartGenerator

    java.lang.Object
      java.awt.Component
          java.awt.Container
              javax.swing.JComponent
                  javax.swing.JPanel
                      sim.util.media.chart.ChartGenerator

All Implemented Interfaces:
  java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible

Direct Known Subclasses:
  HistogramGenerator, TimeSeriesChartGenerator

    public abstract class ChartGenerator

extends javax.swing.JPanel

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 need to override at least four methods: getSeriesDataset(), update(), removeSeries(index), and buildChart(). 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:

- The `chart` proper, stored in a `chartPanel`. This panel is in turn stored in a JScrollPane.
- The `globalAttributes`, a collection of Components on the top-left which control global features of the chart (its title, axis labels, etc.)
- The `seriesAttributes`, a scrollable collection of Components on the bottom-left which control features of each separate series in the chart. Each seriesAttribute is associated in turn with a Stoppable (stored in the list `stoppables`) which will have its `stop()` method called when the series is deleted from the chart.

See Also:
  Serialized Form

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.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
`protected javax.swing.JFrame` | `frame` The JFrame which stores the whole chart.
`protected javax.swing.Box` | `globalAttributes` A holder for global attributes components
`protected javax.swing.Box` | `seriesAttributes` A holder for series attributes components
`protected PropertyField` | `titleField` The global attributes chart title field.
`protected PropertyField` | `xLabel` The global attributes domain axis field.
`protected javax.swing.JCheckBox` | `xLog` The global attributes logarithmic domain axis check box.
`protected PropertyField` | `yLabel` The global attributes range axis field.
`protected javax.swing.JCheckBox` | `yLog` The global attributes logarithmic range axis check box.

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
`protected abstract void` | `buildChart()` Override this to construct the appropriate kind of chart.
`javax.swing.JFrame` | `createFrame(GUIState state)` Returns a JFrame suitable or housing the ChartGenerator.
`ChartPanel` | `getChartPanel()` Returns the ChartPanel holding the chart.
`java.lang.String` | `getDomainAxisLabel()` Returns the name of the Domain Axis label -- usually this is the X axis.
`java.awt.Component` | `getGlobalAttribute(int index)` Returns the global attribute panel of the given index.
`int` | `getGlobalAttributeCount()` Returns the number of global attribute panels.
`java.lang.String` | `getRangeAxisLabel()` Returns the name of the Range Axis Label -- usually this is the Y axis.
`SeriesAttributes` | `getSeriesAttributes(int seriesIndex)`
`abstract AbstractSeriesDataset` | `getSeriesDataset()` Override this to return the JFreeChart data set used by your Chart.
`java.lang.String` | `getTitle()` Returns the title of the chart
`abstract 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.
`abstract void` | `removeSeries(int index)` Override this to remove a series from the chart.
`void` | `setDomainAxisLabel(java.lang.String val)` Sets the name of the Domain Axis label -- usually this is the X axis.
`void` | `setRangeAxisLabel(java.lang.String val)` Sets the name of the Range Axis label -- usually this is the Y axis.
`void` | `setTitle(java.lang.String title)` Sets the title of the chart (and the window frame).
`abstract void` | `update()` Override this to update the chart to reflect new data.

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, 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, 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

### globalAttributes

    protected javax.swing.Box globalAttributes

  A holder for global attributes components

### seriesAttributes

    protected javax.swing.Box seriesAttributes

  A holder for series attributes components

### chart

    protected JFreeChart chart

  The chart

### chartPanel

    protected ChartPanel chartPanel

  The panel which holds and draws the chart

### chartHolder

    protected javax.swing.JScrollPane chartHolder

  The JScrollPane which holdw the ChartPanel

### frame

    protected javax.swing.JFrame frame

  The JFrame which stores the whole chart. Set in createFrame(), else null.

### titleField

    protected PropertyField titleField

  The global attributes chart title field.

### xLabel

    protected PropertyField xLabel

  The global attributes domain axis field.

### yLabel

    protected PropertyField yLabel

  The global attributes range axis field.

### yLog

    protected javax.swing.JCheckBox yLog

  The global attributes logarithmic range axis check box.

### xLog

    protected javax.swing.JCheckBox xLog

  The global attributes logarithmic domain axis check box.

Constructor Detail

### ChartGenerator

    public ChartGenerator()

  Generates a new ChartGenerator with a blank chart. Before anything else, buildChart() is called.

Method Detail

### getSeriesAttributes

    public SeriesAttributes getSeriesAttributes(int seriesIndex)

### getSeriesDataset

    public abstract AbstractSeriesDataset getSeriesDataset()

  Override this to return the JFreeChart data set used by your Chart. For example, time series charts might return the XYSeriesCollection.

### update

    public abstract void update()

  Override this to update the chart to reflect new data.

### removeSeries

    public abstract void removeSeries(int index)

  Override this to remove a series from the chart.

### moveSeries

    public abstract void moveSeries(int index,
                                    boolean up)

  Override this to move a series relative to other series.

### buildChart

    protected abstract void buildChart()

  Override this to construct the appropriate kind of chart. This is the first thing called from the constructor; so certain of your instance variables may not have been set yet and you may need to set them yourself.

### removeAllSeries

    public void removeAllSeries()

  Deletes all series from the chart.

### quit

    public void quit()

  Prepares the chart to be garbage collected. If you override this, be sure to call super.quit()

### getChartPanel

    public ChartPanel getChartPanel()

  Returns the ChartPanel holding the chart.

### addGlobalAttribute

    public void addGlobalAttribute(java.awt.Component component)

  Adds a global attribute panel to the frame

### getGlobalAttribute

    public java.awt.Component getGlobalAttribute(int index)

  Returns the global attribute panel of the given index.

### getGlobalAttributeCount

    public int getGlobalAttributeCount()

  Returns the number of global attribute panels.

### removeGlobalAttribute

    public java.awt.Component removeGlobalAttribute(int index)

  Remooves the global attribute at the given index and returns it.

### setTitle

    public void setTitle(java.lang.String title)

  Sets the title of the chart (and the window frame).

### getTitle

    public java.lang.String getTitle()

  Returns the title of the chart

### setRangeAxisLabel

    public void setRangeAxisLabel(java.lang.String val)

  Sets the name of the Range Axis label -- usually this is the Y axis.

### getRangeAxisLabel

    public java.lang.String getRangeAxisLabel()

  Returns the name of the Range Axis Label -- usually this is the Y axis.

### setDomainAxisLabel

    public void setDomainAxisLabel(java.lang.String val)

  Sets the name of the Domain Axis label -- usually this is the X axis.

### getDomainAxisLabel

    public java.lang.String getDomainAxisLabel()

  Returns the name of the Domain Axis label -- usually this is the X axis.

### createFrame

    public javax.swing.JFrame createFrame(GUIState state)

  Returns a JFrame suitable or housing the ChartGenerator. This frame largely calls chart.quit() when the JFrame is being closed.

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD