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 SummaryNested ClassesModifier and TypeClassDescriptionprotected classprotected classReportLoader 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.JPanelJPanel.AccessibleJPanelNested classes/interfaces inherited from class javax.swing.JComponentJComponent.AccessibleJComponentNested classes/interfaces inherited from class java.awt.ContainerContainer.AccessibleAWTContainerNested classes/interfaces inherited from class java.awt.ComponentComponent.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
- 
Field SummaryFieldsModifier and TypeFieldDescriptionstatic final Stringprotected ReportViewer.ControlsPanelprotected JPopupMenuFields inherited from class com.inductiveautomation.vision.api.client.components.model.AbstractVisionPanelantialias, context, cursorCode, dynamicPropsFields inherited from class javax.swing.JComponentlistenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOWFields inherited from class java.awt.ComponentaccessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENTFields inherited from interface com.inductiveautomation.vision.api.client.components.model.ComponentLifecycleCOMPONENT_RUNNINGFields inherited from interface java.awt.image.ImageObserverABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTHFields inherited from interface com.inductiveautomation.ignition.client.model.LocaleListenerLOCAL_CHANGE_EVENTFields inherited from interface com.inductiveautomation.vision.api.client.binding.MutableDynamicPropertyProviderRESERVED_SET_KEYFields inherited from interface com.inductiveautomation.vision.api.client.components.model.VisionComponentCOMPONENT_LOCKED, COMPONENT_PERMISSIONS, COMPONENT_SECURITY, COMPONENT_TRANSLATIONS
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionvoidbulkSetValues(Map<String, Object> map) protected booleanGets 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.intintgetPropertyValue(String name) floatprotected JPopupMenuinitMenu()booleanbooleanisPropertyDefined(String name) booleanbooleanvoidloadReport() starts most of the checking and loading duties for the ReportViewer.voidlocaleChanged(Locale newLocale) voidSubclasses should override this to provide shutdown logic.voidWe 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.voidprint()voidvoidsaveAsHTML(String fname, boolean continuous) Deprecated.saveAsXlsx(String filename) saves theRMDocumentin xlsx format to the supplied file name.voidsetBackground(Color bg) voidsetCurrentPage(int pageNumber) voidvoidvoidsetFitPanel(boolean fitPanel) voidsetForeground(Color fg) voidsetPageCount(int unused) voidsetPanelBackground(Color panelBackground) voidsetPropertyValue(String name, Object value) The Property (aka Report Parameter) values can be set from the Property editor to override the default value.voidsetPropertyValueQuiet(String name, Object value) Sets the property value without reloading the report.voidsetReportLoading(boolean reportLoading) voidsetReportPath(String reportPath) voidsetShowControls(boolean show) voidsetSuggestedFilename(String suggestedFilename) voidsetZoomFactor(float zoomFactor) voidMethods inherited from class com.inductiveautomation.vision.api.client.components.model.AbstractVisionPanelgetAppContext, getCursorCode, getDataQuality, getQuality, getStyles, getToolTipText, initStyleListener, isAntialias, isComponentRunning, paintChildren, paintComponent, paintOverlayOverChildren, setAntialias, setCursorCode, setDataQuality, setName, setQuality, setStyles, setToolTipText, setVisible, shutdownComponent, startupComponent, translate, updateQualityMethods inherited from class javax.swing.JPanelgetAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUIMethods inherited from class javax.swing.JComponentaddAncestorListener, 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, updateMethods inherited from class java.awt.Containeradd, 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, validateTreeMethods inherited from class java.awt.Componentaction, 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, transferFocusUpCycleMethods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface com.inductiveautomation.vision.api.client.components.model.ComponentLifecyclegetAppContext, shutdownComponent, startupComponent
- 
Field Details- 
CAT_REPORTING- See Also:
 
- 
popupMenu
- 
controls
 
- 
- 
Constructor Details- 
ReportViewerpublic ReportViewer()
 
- 
- 
Method Details- 
onStartuppublic 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:
- onStartupin class- AbstractVisionPanel
 
- 
onShutdownpublic void onShutdown()Description copied from class:AbstractVisionPanelSubclasses should override this to provide shutdown logic.- Overrides:
- onShutdownin class- AbstractVisionPanel
 
- 
getProperties- Specified by:
- getPropertiesin interface- DynamicPropertyProvider
- Overrides:
- getPropertiesin class- AbstractVisionPanel
 
- 
getDynamicProps- Specified by:
- getDynamicPropsin interface- MutableDynamicPropertyProvider
- Overrides:
- getDynamicPropsin class- AbstractVisionPanel
 
- 
setDynamicProps- Specified by:
- setDynamicPropsin interface- MutableDynamicPropertyProvider
- Overrides:
- setDynamicPropsin class- AbstractVisionPanel
 
- 
setPropertyValueThe 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:
- setPropertyValuein interface- DynamicPropertyProvider
- Overrides:
- setPropertyValuein class- AbstractVisionPanel
- Throws:
- ClassCastException
 
- 
setPropertyValueQuietSets the property value without reloading the report. Used by the report converter- Throws:
- ClassCastException
 
- 
bulkSetValues
- 
getPropertyValue- Specified by:
- getPropertyValuein interface- DynamicPropertyProvider
- Overrides:
- getPropertyValuein class- AbstractVisionPanel
 
- 
isPropertyDefined- Specified by:
- isPropertyDefinedin interface- DynamicPropertyProvider
- Overrides:
- isPropertyDefinedin class- AbstractVisionPanel
 
- 
isReportLoadingpublic boolean isReportLoading()
- 
setReportLoadingpublic void setReportLoading(boolean reportLoading) 
- 
getReportPath
- 
setReportPath
- 
loadReportpublic 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:
- setBackgroundin class- JComponent
 
- 
getBackgroundGets the background color of this component.- Overrides:
- getBackgroundin class- Component
 
- 
setForeground- Overrides:
- setForegroundin class- JComponent
 
- 
getExtensionFunctions- Specified by:
- getExtensionFunctionsin interface- ExtensibleComponent
 
- 
setExtensionFunctions- Specified by:
- setExtensionFunctionsin interface- ExtensibleComponent
 
- 
localeChanged- Specified by:
- localeChangedin interface- LocaleListener
- Overrides:
- localeChangedin class- AbstractVisionPanel
 
- 
getZoomFactorpublic float getZoomFactor()
- 
setZoomFactorpublic void setZoomFactor(float zoomFactor) 
- 
isFitPanelpublic boolean isFitPanel()
- 
setFitPanelpublic void setFitPanel(boolean fitPanel) 
- 
getCurrentPagepublic int getCurrentPage()
- 
setCurrentPagepublic void setCurrentPage(int pageNumber) 
- 
getPageCountpublic int getPageCount()
- 
setPageCountpublic void setPageCount(int unused) 
- 
initMenu
- 
printpublic 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
- 
saveAsXlsDeprecated.
- 
saveAsXlsxsaves theRMDocumentin xlsx format to the supplied file name.- Parameters:
- filename- the filename to save to
- Returns:
- the path to the saved file or nullif the action was unsuccessful or canceled
 
- 
checkExpirationAccessprotected boolean checkExpirationAccess()
- 
getPanelBackground
- 
setPanelBackground
- 
setSuggestedFilename
- 
getSuggestedFilename
- 
isShowControlspublic boolean isShowControls()
- 
setShowControlspublic void setShowControls(boolean show) 
- 
updateControlVisibilitypublic void updateControlVisibility()
 
- 
saveAsXlsx(String)