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,java.awt.event.ActionListener,java.awt.event.MouseListener,java.awt.event.MouseMotionListener,java.awt.image.ImageObserver,java.awt.MenuContainer,java.awt.print.Printable,java.io.Serializable,java.util.EventListener,javax.accessibility.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:
- 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
-
-
Field Summary
Fields Modifier and Type Field Description protected booleanantialiasprotected VisionClientContextcontextThe current ClientContext that is set on startupComponent()protected intcursorCodeprotected java.util.Map<java.lang.String,ExtensionFunction>extensionFunctionsprotected booleanprintprotected booleanpropertiesprotected booleansaveprotected booleanshowPopupprotected booleanzoom-
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 com.inductiveautomation.vision.api.client.components.model.VisionComponent
COMPONENT_LOCKED, COMPONENT_PERMISSIONS, COMPONENT_SECURITY, COMPONENT_TRANSLATIONS
-
-
Constructor Summary
Constructors Constructor Description PMIChartPanel(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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcreateChartPrintJob()Creates a print job for the chart.protected javax.swing.JPopupMenucreatePopupMenu(boolean properties, boolean save, boolean print, boolean zoom)Creates a popup menu for the panel.protected voiddisplayPopupMenu(int x, int y)The idea is to modify the zooming options depending on the type of chart being displayed by the panel.voiddoSaveAs()Opens a file chooser and gives the user an opportunity to save the chart in PNG format.VisionClientContextgetAppContext()intgetCursorCode()intgetDataQuality()For backwards compatibility with scripts.java.util.Map<java.lang.String,ExtensionFunction>getExtensionFunctions()QualityCodegetQuality()Retrieves the data quality code.protected java.text.NumberFormatgetScientificNumberFormat()java.lang.StringgetToolTipText()java.lang.StringgetToolTipText(java.awt.event.MouseEvent event)booleanisAntialias()booleanisShowPopup()voidlocaleChanged(java.util.Locale newLocale)protected voidonShutdown()Subclasses should override this to provide shutdown logic.protected voidonStartup()Subclasses should override this to provide startup logic.protected voidpaintChildren(java.awt.Graphics g)voidprint()voidsetAntialias(boolean ignored)voidsetCursorCode(int cursorCode)voidsetDataQuality(int value)voidsetExtensionFunctions(java.util.Map<java.lang.String,ExtensionFunction> map)voidsetName(java.lang.String newName)voidsetQuality(QualityCode value)Sets the current data quality to the given valuevoidsetShowPopup(boolean showPopup)voidsetVisible(boolean visible)voidshutdownComponent()Called when the component is now shown anymore.voidstartupComponent(VisionClientContext context)Called when the component is first shown.protected java.lang.Stringtranslate(java.lang.String key)protected java.lang.StringtranslateTerm(java.lang.String term)voidupdateQuality(java.lang.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 Detail
-
context
protected VisionClientContext context
The current ClientContext that is set on startupComponent()
-
cursorCode
protected int cursorCode
-
antialias
protected boolean antialias
-
extensionFunctions
protected java.util.Map<java.lang.String,ExtensionFunction> extensionFunctions
-
properties
protected boolean properties
-
save
protected boolean save
-
print
protected boolean print
-
zoom
protected boolean zoom
-
showPopup
protected boolean showPopup
-
-
Constructor Detail
-
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 Detail
-
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:
setVisiblein classjavax.swing.JComponent
-
setName
public void setName(java.lang.String newName)
- Overrides:
setNamein classjava.awt.Component
-
getToolTipText
public java.lang.String getToolTipText()
- Overrides:
getToolTipTextin classjavax.swing.JComponent
-
getToolTipText
public java.lang.String getToolTipText(java.awt.event.MouseEvent event)
- Overrides:
getToolTipTextin classorg.jfree.chart.ChartPanel
-
isAntialias
public boolean isAntialias()
-
setAntialias
public void setAntialias(boolean ignored)
-
doSaveAs
public void doSaveAs() throws java.io.IOExceptionOpens a file chooser and gives the user an opportunity to save the chart in PNG format.- Overrides:
doSaveAsin classorg.jfree.chart.ChartPanel- Throws:
java.io.IOException- if there is an I/O error.
-
print
public void print()
-
createChartPrintJob
public void createChartPrintJob()
Creates a print job for the chart.- Overrides:
createChartPrintJobin classorg.jfree.chart.ChartPanel
-
translate
protected java.lang.String translate(java.lang.String key)
-
translateTerm
protected java.lang.String translateTerm(java.lang.String term)
-
createPopupMenu
protected javax.swing.JPopupMenu createPopupMenu(boolean properties, boolean save, boolean print, boolean zoom)Creates a popup menu for the panel. Overridden here to get the localized properties from BundleUtil.- Overrides:
createPopupMenuin 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
public QualityCode getQuality()
Description copied from interface:QualityMonitorRetrieves the data quality code.- Specified by:
getQualityin interfaceQualityMonitor
-
getDataQuality
public int getDataQuality()
Description copied from interface:QualityMonitorFor 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:
getDataQualityin interfaceQualityMonitor
-
setDataQuality
public void setDataQuality(int value)
- Specified by:
setDataQualityin interfaceQualityMonitor
-
setQuality
public void setQuality(QualityCode value)
Description copied from interface:QualityMonitorSets the current data quality to the given value- Specified by:
setQualityin interfaceQualityMonitor
-
updateQuality
public void updateQuality(java.lang.String propName, QualityCode quality)Description copied from interface:QualityMonitorUpdates 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:
updateQualityin interfaceQualityMonitor
-
paintChildren
protected void paintChildren(java.awt.Graphics g)
- Overrides:
paintChildrenin classjavax.swing.JComponent
-
startupComponent
public final void startupComponent(VisionClientContext context)
Description copied from interface:ComponentLifecycleCalled when the component is first shown.- Specified by:
startupComponentin interfaceComponentLifecycle
-
shutdownComponent
public final void shutdownComponent()
Description copied from interface:ComponentLifecycleCalled when the component is now shown anymore. Any long-running processes should be stopped. All bindings will have also been shutdown.- Specified by:
shutdownComponentin interfaceComponentLifecycle
-
getAppContext
public VisionClientContext getAppContext()
- Specified by:
getAppContextin 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:
displayPopupMenuin classorg.jfree.chart.ChartPanel- Parameters:
x- horizontal position of the popup.y- vertical position of the popup.
-
localeChanged
public void localeChanged(java.util.Locale newLocale)
- Specified by:
localeChangedin interfaceLocaleListener
-
getScientificNumberFormat
protected java.text.NumberFormat getScientificNumberFormat()
- Returns:
- A
ScientificNumberFormatinstance with significant digits ofSIG_DIGITSand threshold ofTHRESHOLD.
-
getExtensionFunctions
public java.util.Map<java.lang.String,ExtensionFunction> getExtensionFunctions()
- Specified by:
getExtensionFunctionsin interfaceExtensibleComponent
-
setExtensionFunctions
public void setExtensionFunctions(java.util.Map<java.lang.String,ExtensionFunction> map)
- Specified by:
setExtensionFunctionsin interfaceExtensibleComponent
-
-