Class PMIChartPanel
java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JPanel
org.jfree.chart.ChartPanel
com.inductiveautomation.factorypmi.application.components.chart.PMIChartPanel
- All Implemented Interfaces:
LocaleListener
,ComponentLifecycle
,ExtensibleComponent
,QualityMonitor
,VisionComponent
,ActionListener
,MouseListener
,MouseMotionListener
,ImageObserver
,MenuContainer
,Printable
,Serializable
,EventListener
,Accessible
,org.jfree.chart.event.ChartChangeListener
,org.jfree.chart.event.ChartProgressListener
- Direct Known Subclasses:
AbstractVisionChartComponent
,PMIBarChart
,PMIBoxWhiskerChart
,PMIGanttChart
,PMILineChartPanel
,PMIPieChart
,PMIStatusChart
public class PMIChartPanel
extends org.jfree.chart.ChartPanel
implements VisionComponent, LocaleListener, ExtensibleComponent
A subclass of JFreeChart's ChartPanel that overrides doSaveAs() and createChartPrintJob() to have FPMI compatible
popup windows for FSE mode.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class javax.swing.JPanel
JPanel.AccessibleJPanel
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected boolean
protected VisionClientContext
The current ClientContext that is set on startupComponent()protected int
protected Map<String,
ExtensionFunction> protected boolean
protected boolean
protected boolean
protected boolean
protected boolean
Fields inherited from class org.jfree.chart.ChartPanel
DEFAULT_BUFFER_USED, DEFAULT_HEIGHT, DEFAULT_MAXIMUM_DRAW_HEIGHT, DEFAULT_MAXIMUM_DRAW_WIDTH, DEFAULT_MINIMUM_DRAW_HEIGHT, DEFAULT_MINIMUM_DRAW_WIDTH, DEFAULT_WIDTH, DEFAULT_ZOOM_TRIGGER_DISTANCE, localizationResources, PRINT_COMMAND, PROPERTIES_COMMAND, SAVE_COMMAND, ZOOM_IN_BOTH_COMMAND, ZOOM_IN_DOMAIN_COMMAND, ZOOM_IN_RANGE_COMMAND, ZOOM_OUT_BOTH_COMMAND, ZOOM_OUT_DOMAIN_COMMAND, ZOOM_OUT_RANGE_COMMAND, ZOOM_RESET_BOTH_COMMAND, ZOOM_RESET_DOMAIN_COMMAND, ZOOM_RESET_RANGE_COMMAND
Fields inherited from class javax.swing.JComponent
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
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
Fields inherited from interface com.inductiveautomation.vision.api.client.components.model.ComponentLifecycle
COMPONENT_RUNNING
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
Fields inherited from interface com.inductiveautomation.ignition.client.model.LocaleListener
LOCAL_CHANGE_EVENT
Fields inherited from interface java.awt.print.Printable
NO_SUCH_PAGE, PAGE_EXISTS
Fields inherited from interface com.inductiveautomation.vision.api.client.components.model.VisionComponent
COMPONENT_LOCKED, COMPONENT_PERMISSIONS, COMPONENT_SECURITY, COMPONENT_TRANSLATIONS
-
Constructor Summary
ConstructorsConstructorDescriptionPMIChartPanel
(org.jfree.chart.JFreeChart chart) PMIChartPanel
(org.jfree.chart.JFreeChart chart, boolean properties, boolean save, boolean print, boolean zoom, boolean tooltips) PMIChartPanel
(org.jfree.chart.JFreeChart chart, boolean properties, boolean save, boolean print, boolean zoom, boolean tooltips, int minimumDrawWidth, int minimumDrawHeight) PMIChartPanel
(org.jfree.chart.JFreeChart chart, int minimumDrawWidth, int minimumDrawHeight) PMIChartPanel
(org.jfree.chart.JFreeChart chart, int width, int height, int minimumDrawWidth, int minimumDrawHeight, int maximumDrawWidth, int maximumDrawHeight, boolean useBuffer, boolean properties, boolean save, boolean print, boolean zoom, boolean tooltips) -
Method Summary
Modifier and TypeMethodDescriptionvoid
Creates a print job for the chart.protected JPopupMenu
createPopupMenu
(boolean properties, boolean save, boolean print, boolean zoom) Creates a popup menu for the panel.protected void
displayPopupMenu
(int x, int y) The idea is to modify the zooming options depending on the type of chart being displayed by the panel.void
doSaveAs()
Opens a file chooser and gives the user an opportunity to save the chart in PNG format.int
int
For backwards compatibility with scripts.Retrieves the data quality code.protected NumberFormat
getToolTipText
(MouseEvent event) boolean
boolean
void
localeChanged
(Locale newLocale) protected void
Subclasses should override this to provide shutdown logic.protected void
Subclasses should override this to provide startup logic.protected void
void
print()
void
setAntialias
(boolean ignored) void
setCursorCode
(int cursorCode) void
setDataQuality
(int value) void
void
void
setQuality
(QualityCode value) Sets the current data quality to the given valuevoid
setShowPopup
(boolean showPopup) void
setVisible
(boolean visible) final void
Called when the component is now shown anymore.final void
startupComponent
(VisionClientContext context) Called when the component is first shown.protected String
protected String
translateTerm
(String term) void
updateQuality
(String propName, QualityCode quality) Updates the quality for the given property name.Methods inherited from class org.jfree.chart.ChartPanel
actionPerformed, addChartMouseListener, chartChanged, chartProgress, doEditChartProperties, getAnchor, getChart, getChartRenderingInfo, getDefaultDirectoryForSaveAs, getDismissDelay, getEntityForPoint, getFillZoomRectangle, getHorizontalAxisTrace, getHorizontalTraceLine, getInitialDelay, getListeners, getMaximumDrawHeight, getMaximumDrawWidth, getMinimumDrawHeight, getMinimumDrawWidth, getPopupMenu, getRefreshBuffer, getReshowDelay, getScaleX, getScaleY, getScreenDataArea, getScreenDataArea, getVerticalAxisTrace, getVerticalTraceLine, getZoomAroundAnchor, getZoomInFactor, getZoomOutFactor, getZoomTriggerDistance, isDomainZoomable, isEnforceFileExtensions, isRangeZoomable, mouseClicked, mouseDragged, mouseEntered, mouseExited, mouseMoved, mousePressed, mouseReleased, paintComponent, print, removeChartMouseListener, restoreAutoBounds, restoreAutoDomainBounds, restoreAutoRangeBounds, scale, setAnchor, setChart, setDefaultDirectoryForSaveAs, setDismissDelay, setDisplayToolTips, setDomainZoomable, setEnforceFileExtensions, setFillZoomRectangle, setHorizontalAxisTrace, setHorizontalTraceLine, setInitialDelay, setMaximumDrawHeight, setMaximumDrawWidth, setMinimumDrawHeight, setMinimumDrawWidth, setMouseZoomable, setMouseZoomable, setPopupMenu, setRangeZoomable, setRefreshBuffer, setReshowDelay, setVerticalAxisTrace, setVerticalTraceLine, setZoomAroundAnchor, setZoomInFactor, setZoomOutFactor, setZoomTriggerDistance, translateJava2DToScreen, translateScreenToJava2D, updateUI, zoom, zoomInBoth, zoomInDomain, zoomInRange, zoomOutBoth, zoomOutDomain, zoomOutRange
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI
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, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, 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, 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, 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, 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, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
Field Details
-
context
The current ClientContext that is set on startupComponent() -
cursorCode
protected int cursorCode -
antialias
protected boolean antialias -
extensionFunctions
-
properties
protected boolean properties -
save
protected boolean save -
print
protected boolean print -
zoom
protected boolean zoom -
showPopup
protected boolean showPopup
-
-
Constructor Details
-
PMIChartPanel
public PMIChartPanel(org.jfree.chart.JFreeChart chart) -
PMIChartPanel
public PMIChartPanel(org.jfree.chart.JFreeChart chart, int minimumDrawWidth, int minimumDrawHeight) -
PMIChartPanel
public PMIChartPanel(org.jfree.chart.JFreeChart chart, boolean properties, boolean save, boolean print, boolean zoom, boolean tooltips) -
PMIChartPanel
public PMIChartPanel(org.jfree.chart.JFreeChart chart, boolean properties, boolean save, boolean print, boolean zoom, boolean tooltips, int minimumDrawWidth, int minimumDrawHeight) -
PMIChartPanel
public PMIChartPanel(org.jfree.chart.JFreeChart chart, int width, int height, int minimumDrawWidth, int minimumDrawHeight, int maximumDrawWidth, int maximumDrawHeight, boolean useBuffer, boolean properties, boolean save, boolean print, boolean zoom, boolean tooltips)
-
-
Method Details
-
getCursorCode
public int getCursorCode() -
setCursorCode
public void setCursorCode(int cursorCode) -
isShowPopup
public boolean isShowPopup() -
setShowPopup
public void setShowPopup(boolean showPopup) -
setVisible
public void setVisible(boolean visible) - Overrides:
setVisible
in classJComponent
-
setName
-
getToolTipText
- Overrides:
getToolTipText
in classJComponent
-
getToolTipText
- Overrides:
getToolTipText
in classorg.jfree.chart.ChartPanel
-
isAntialias
public boolean isAntialias() -
setAntialias
public void setAntialias(boolean ignored) -
doSaveAs
Opens a file chooser and gives the user an opportunity to save the chart in PNG format.- Overrides:
doSaveAs
in classorg.jfree.chart.ChartPanel
- Throws:
IOException
- if there is an I/O error.
-
print
public void print() -
createChartPrintJob
public void createChartPrintJob()Creates a print job for the chart.- Overrides:
createChartPrintJob
in classorg.jfree.chart.ChartPanel
-
translate
-
translateTerm
-
createPopupMenu
Creates a popup menu for the panel. Overridden here to get the localized properties from BundleUtil.- Overrides:
createPopupMenu
in classorg.jfree.chart.ChartPanel
- Parameters:
properties
- include a menu item for the chart property editor.save
- include a menu item for saving the chart.print
- include a menu item for printing the chart.zoom
- include menu items for zooming.- Returns:
- The popup menu.
-
getQuality
Description copied from interface:QualityMonitor
Retrieves the data quality code.- Specified by:
getQuality
in interfaceQualityMonitor
-
getDataQuality
public int getDataQuality()Description copied from interface:QualityMonitor
For backwards compatibility with scripts. Would be awesome if this could just be a default method, but there's a bug (JDK-8071693) that makes that not work with property introspection.- Specified by:
getDataQuality
in interfaceQualityMonitor
-
setDataQuality
public void setDataQuality(int value) - Specified by:
setDataQuality
in interfaceQualityMonitor
-
setQuality
Description copied from interface:QualityMonitor
Sets the current data quality to the given value- Specified by:
setQuality
in interfaceQualityMonitor
-
updateQuality
Description copied from interface:QualityMonitor
Updates the quality for the given property name. The monitor will then evaluate a new quality based on the quality of its other properties. Overall, the worst quality is chosen.- Specified by:
updateQuality
in interfaceQualityMonitor
-
paintChildren
- Overrides:
paintChildren
in classJComponent
-
startupComponent
Description copied from interface:ComponentLifecycle
Called when the component is first shown.- Specified by:
startupComponent
in interfaceComponentLifecycle
-
shutdownComponent
public final void shutdownComponent()Description copied from interface:ComponentLifecycle
Called when the component is now shown anymore. Any long-running processes should be stopped. All bindings will have also been shutdown.- Specified by:
shutdownComponent
in interfaceComponentLifecycle
-
getAppContext
- Specified by:
getAppContext
in interfaceComponentLifecycle
-
onStartup
protected void onStartup()Subclasses should override this to provide startup logic. -
onShutdown
protected void onShutdown()Subclasses should override this to provide shutdown logic. -
displayPopupMenu
protected void displayPopupMenu(int x, int y) The idea is to modify the zooming options depending on the type of chart being displayed by the panel.- Overrides:
displayPopupMenu
in classorg.jfree.chart.ChartPanel
- Parameters:
x
- horizontal position of the popup.y
- vertical position of the popup.
-
localeChanged
- Specified by:
localeChanged
in interfaceLocaleListener
-
getScientificNumberFormat
- Returns:
- A
ScientificNumberFormat
instance with significant digits ofSIG_DIGITS
and threshold ofTHRESHOLD
.
-
getExtensionFunctions
- Specified by:
getExtensionFunctions
in interfaceExtensibleComponent
-
setExtensionFunctions
- Specified by:
setExtensionFunctions
in interfaceExtensibleComponent
-