public abstract class AbstractPlot extends JFrame implements Identifiable, Dataset
Copyright (c) 2013-2019 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved.
BSD-style license. See OpenTrafficSim License.
JFrame.AccessibleJFrame
Frame.AccessibleAWTFrame
Window.AccessibleAWTWindow, Window.Type
Container.AccessibleAWTContainer
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
Modifier and Type | Field and Description |
---|---|
static Time |
DEFAULT_INITIAL_UPPER_TIME_BOUND
Initial upper bound for the time scale.
|
static EventType |
GRAPH_ADD_EVENT
The (regular, not timed) event type for pub/sub indicating the addition of a graph.
|
static EventType |
GRAPH_REMOVE_EVENT
The (regular, not timed) event type for pub/sub indicating the removal of a graph.
|
accessibleContext, EXIT_ON_CLOSE, rootPane, rootPaneCheckingEnabled
CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSOR
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
Constructor and Description |
---|
AbstractPlot(String caption,
Duration updateInterval,
OTSSimulatorInterface simulator,
Duration delay)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
void |
addChangeListener(DatasetChangeListener listener) |
protected void |
addPopUpMenuItems(JPopupMenu popupMenu)
Overridable method to add pop up items.
|
byte[] |
encodeAsPng(int width,
int height,
double fontSize)
Returns the chart as a byte array representing a png image.
|
String |
getCaption()
Return the caption of this graph.
|
protected JFreeChart |
getChart()
Returns the chart.
|
protected ChartMouseListener |
getChartMouseListener()
Overridable; may return a chart listener for additional functions.
|
abstract GraphType |
getGraphType()
Return the graph type for transceiver.
|
DatasetGroup |
getGroup() |
String |
getId() |
protected abstract String |
getStatusLabel(double domainValue,
double rangeValue)
Returns the status label when the mouse is over the given location.
|
protected Time |
getUpdateTime()
Returns time until which data should be plotted.
|
protected abstract void |
increaseTime(Time time)
Increase the simulated time span.
|
void |
notifyPlotChange()
Notify all change listeners.
|
void |
removeChangeListener(DatasetChangeListener listener) |
protected void |
setAutoBoundDomain(XYPlot plot)
Overridable; activates auto bounds on domain axis from user input.
|
protected void |
setAutoBoundRange(XYPlot plot)
Overridable; activates auto bounds on range axis from user input.
|
protected void |
setChart(JFreeChart chart)
Sets the chart and adds menus and listeners.
|
void |
setGroup(DatasetGroup group) |
protected void |
setStatusLabel(String label)
Manually set status label from sub class.
|
protected void |
setUpdateInterval(Duration interval)
Sets a new update interval.
|
protected void |
update()
Redraws the plot and schedules the next update.
|
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update
addNotify, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setBackground, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setOpacity, setResizable, setShape, setState, setTitle, setUndecorated
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBackground, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOpacity, getOwnedWindows, getOwner, getOwnerlessWindows, getShape, getToolkit, getType, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isAutoRequestFocus, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isOpaque, isShowing, isValidateRoot, pack, paint, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setAutoRequestFocus, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocation, setLocation, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setType, setVisible, show, toBack, toFront
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusDownCycle, validate, validateTree
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resize, resize, revalidate, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setMaximumSize, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getFont, postEvent
public static final EventType GRAPH_ADD_EVENT
public static final EventType GRAPH_REMOVE_EVENT
public static final Time DEFAULT_INITIAL_UPPER_TIME_BOUND
public AbstractPlot(String caption, Duration updateInterval, OTSSimulatorInterface simulator, Duration delay)
caption
- String; captionupdateInterval
- Duration; regular update interval (simulation time)simulator
- OTSSimulatorInterface; simulatordelay
- Duration; delay so critical future events have occurred, e.g. GTU's next move's to extend trajectoriesprotected void setChart(JFreeChart chart)
chart
- JFreeChart; chartpublic byte[] encodeAsPng(int width, int height, double fontSize) throws IOException
width
- int; widthheight
- int; heightfontSize
- double; font size (16 is the original on screen size)IOException
- on IO exceptionpublic final DatasetGroup getGroup()
public final void setGroup(DatasetGroup group)
protected void addPopUpMenuItems(JPopupMenu popupMenu)
popupMenu
- JPopupMenu; pop up menuprotected void setAutoBoundDomain(XYPlot plot)
XYPlot
s,
but the auto bounds command comes from the ChartPanel
that this class creates. In case the used plot is a
XYPlot
, this method is then invoked. Sub classes with auto domain bounds that work with an XYPlot
should
implement this. The method is not abstract as the use of XYPlot
is not obligated.plot
- XYPlot; plotprotected void setAutoBoundRange(XYPlot plot)
XYPlot
s,
but the auto bounds command comes from the ChartPanel
that this class creates. In case the used plot is a
XYPlot
, this method is then invoked. Sub classes with auto range bounds that work with an XYPlot
should
implement this. The method is not abstract as the use of XYPlot
is not obligated.plot
- XYPlot; plotprotected ChartMouseListener getChartMouseListener()
null
by defaultpublic abstract GraphType getGraphType()
protected abstract String getStatusLabel(double domainValue, double rangeValue)
domainValue
- double; domain value (x-axis)rangeValue
- double; range value (y-axis)protected abstract void increaseTime(Time time)
time
- Time; time to increase toprotected void update()
public final void notifyPlotChange()
protected final void setUpdateInterval(Duration interval)
interval
- Duration; update intervalprotected final Time getUpdateTime()
protected final JFreeChart getChart()
public final String getId()
getId
in interface Identifiable
public final void addChangeListener(DatasetChangeListener listener)
addChangeListener
in interface Dataset
public final void removeChangeListener(DatasetChangeListener listener)
removeChangeListener
in interface Dataset
protected final void setStatusLabel(String label)
label
- String; label to setpublic final String getCaption()
Copyright © 2014–2019 Delft University of Technology. All rights reserved.