Class ReportViewer
java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JPanel
com.inductiveautomation.vision.api.client.components.model.AbstractVisionPanel
com.inductiveautomation.reporting.components.ReportViewer
- All Implemented Interfaces:
DynamicPropertyProvider
,LocaleListener
,MutableDynamicPropertyProvider
,StyleProvider
,ComponentLifecycle
,ExtensibleComponent
,QualityMonitor
,VisionComponent
,ImageObserver
,MenuContainer
,Serializable
,Accessible
filename: ReportViewer.java
author: Perry
The ReportViewer component allows the display of a Report in an Ignition Client Window.
Implements DynamicPropertyProvider to override the default component inheritance of MutableDynamicPropertyProvider as Report-specific Properties originate from the ReportDataSourceConfig object's ReportParameters. ReportParameters should be configured in the ReportDataEditor of a given Report.
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected class
protected class
ReportLoader is the background process that runs to collect the data for a report without blocking the UI thread.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 TypeFieldDescriptionstatic final String
protected ReportViewer.ControlsPanel
static final ExecutorService
Warning: This executor is shared across different instances of ReportViewers, as such it should not be shutdown by any individual instance.protected JPopupMenu
Fields inherited from class com.inductiveautomation.vision.api.client.components.model.AbstractVisionPanel
antialias, context, cursorCode, dynamicProps
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.binding.MutableDynamicPropertyProvider
RESERVED_SET_KEY
Fields inherited from interface com.inductiveautomation.vision.api.client.components.model.VisionComponent
COMPONENT_LOCKED, COMPONENT_PERMISSIONS, COMPONENT_SECURITY, COMPONENT_TRANSLATIONS
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
bulkSetValues
(Map<String, Object> map) protected boolean
Gets the background color of this component.byte[]
Allows scripts to get the bytes in PDF format.byte[]
Allows scripts to get the bytes in png format.int
int
getPropertyValue
(String name) float
protected JPopupMenu
initMenu()
boolean
boolean
isPropertyDefined
(String name) boolean
boolean
void
loadReport() starts most of the checking and loading duties for the ReportViewer.void
localeChanged
(Locale newLocale) void
Subclasses should override this to provide shutdown logic.void
We override these PropertyProvider methods to expose the ReportResource's parameters as custom properties in the Property Editor, but we don't want the names to be editable outside of the ReportData configuration panel.void
print()
void
void
saveAsHTML
(String fname, boolean continuous) void
Deprecated.saveAsXlsx
(String filename) saves theRMDocument
in xlsx format to the supplied file name.void
setBackground
(Color bg) void
setCurrentPage
(int pageNumber) void
void
void
setFitPanel
(boolean fitPanel) void
setForeground
(Color fg) void
setPageCount
(int unused) void
setPanelBackground
(Color panelBackground) void
setPropertyValue
(String name, Object value) The Property (aka Report Parameter) values can be set from the Property editor to override the default value.void
setPropertyValueQuiet
(String name, Object value) Sets the property value without reloading the report.void
setReportLoading
(boolean reportLoading) void
setReportPath
(String reportPath) void
setShowControls
(boolean show) void
setSuggestedFilename
(String suggestedFilename) void
setZoomFactor
(float zoomFactor) void
Methods inherited from class com.inductiveautomation.vision.api.client.components.model.AbstractVisionPanel
getAppContext, getCursorCode, getDataQuality, getQuality, getStyles, getToolTipText, initStyleListener, isAntialias, isComponentRunning, paintChildren, paintComponent, paintOverlayOverChildren, setAntialias, setCursorCode, setDataQuality, setName, setQuality, setStyles, setToolTipText, setVisible, shutdownComponent, startupComponent, translate, updateQuality
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, 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, 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, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, 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, 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
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface com.inductiveautomation.vision.api.client.components.model.ComponentLifecycle
getAppContext, shutdownComponent, startupComponent
-
Field Details
-
CAT_REPORTING
- See Also:
-
EXPORT_EXECUTOR
Warning: This executor is shared across different instances of ReportViewers, as such it should not be shutdown by any individual instance. If at any time this executor is shutdown, future instances of ReportViewers will no longer be able to produce PDF exports. -
popupMenu
-
controls
-
-
Constructor Details
-
ReportViewer
public ReportViewer()
-
-
Method Details
-
onStartup
public void onStartup()We override these PropertyProvider methods to expose the ReportResource's parameters as custom properties in the Property Editor, but we don't want the names to be editable outside of the ReportData configuration panel. Otherwise, AbstractVisionPanel implements MutableDynamicPropertyProvider which would allow Custom Properties panels.- Overrides:
onStartup
in classAbstractVisionPanel
-
onShutdown
public void onShutdown()Description copied from class:AbstractVisionPanel
Subclasses should override this to provide shutdown logic.- Overrides:
onShutdown
in classAbstractVisionPanel
-
getProperties
- Specified by:
getProperties
in interfaceDynamicPropertyProvider
- Overrides:
getProperties
in classAbstractVisionPanel
-
getDynamicProps
- Specified by:
getDynamicProps
in interfaceMutableDynamicPropertyProvider
- Overrides:
getDynamicProps
in classAbstractVisionPanel
-
setDynamicProps
- Specified by:
setDynamicProps
in interfaceMutableDynamicPropertyProvider
- Overrides:
setDynamicProps
in classAbstractVisionPanel
-
setPropertyValue
The Property (aka Report Parameter) values can be set from the Property editor to override the default value. Property names are based on the Report Data panel Parameter names. These properties can be null/empty, but if a default is not specified the key won't get run in the report.- Specified by:
setPropertyValue
in interfaceDynamicPropertyProvider
- Overrides:
setPropertyValue
in classAbstractVisionPanel
- Throws:
ClassCastException
-
setPropertyValueQuiet
Sets the property value without reloading the report. Used by the report converter- Throws:
ClassCastException
-
bulkSetValues
-
getPropertyValue
- Specified by:
getPropertyValue
in interfaceDynamicPropertyProvider
- Overrides:
getPropertyValue
in classAbstractVisionPanel
-
isPropertyDefined
- Specified by:
isPropertyDefined
in interfaceDynamicPropertyProvider
- Overrides:
isPropertyDefined
in classAbstractVisionPanel
-
isReportLoading
public boolean isReportLoading() -
setReportLoading
public void setReportLoading(boolean reportLoading) -
getReportPath
-
setReportPath
-
loadReport
public void loadReport()loadReport() starts most of the checking and loading duties for the ReportViewer. If the context has loaded and there is a reportPath entered, it will try to find the resource, show the loading animation pane, and call the SwingWorker to handle the RDP calls to collect the data configuration, update the Component's property (aka parameter) list, and finally run/draw the report. -
setBackground
- Overrides:
setBackground
in classJComponent
-
getBackground
Gets the background color of this component.- Overrides:
getBackground
in classComponent
-
setForeground
- Overrides:
setForeground
in classJComponent
-
getExtensionFunctions
- Specified by:
getExtensionFunctions
in interfaceExtensibleComponent
-
setExtensionFunctions
- Specified by:
setExtensionFunctions
in interfaceExtensibleComponent
-
localeChanged
- Specified by:
localeChanged
in interfaceLocaleListener
- Overrides:
localeChanged
in classAbstractVisionPanel
-
getZoomFactor
public float getZoomFactor() -
setZoomFactor
public void setZoomFactor(float zoomFactor) -
isFitPanel
public boolean isFitPanel() -
setFitPanel
public void setFitPanel(boolean fitPanel) -
getCurrentPage
public int getCurrentPage() -
setCurrentPage
public void setCurrentPage(int pageNumber) -
getPageCount
public int getPageCount() -
setPageCount
public void setPageCount(int unused) -
initMenu
-
print
public void print() -
print
-
print
-
getBytesPDF
@Nullable public byte[] getBytesPDF()Allows scripts to get the bytes in PDF format. Useful for emailing or saving to a database.- Returns:
- Bytes of report in PDF format, or null if trial is expired.
-
getBytesPNG
@Nullable public byte[] getBytesPNG()Allows scripts to get the bytes in png format. Useful for emailing or saving to a database.- Returns:
- Bytes of report in png format, or null if trial is expired.
-
saveAsPDF
-
saveAsHTML
-
saveAsPNG
-
saveAsXls
Deprecated. -
saveAsXlsx
saves theRMDocument
in xlsx format to the supplied file name.- Parameters:
filename
- the filename to save to- Returns:
- the path to the saved file or
null
if the action was unsuccessful or canceled
-
checkExpirationAccess
protected boolean checkExpirationAccess() -
getPanelBackground
-
setPanelBackground
-
setSuggestedFilename
-
getSuggestedFilename
-
isShowControls
public boolean isShowControls() -
setShowControls
public void setShowControls(boolean show) -
updateControlVisibility
public void updateControlVisibility()
-
saveAsXlsx(String)