Class ReportViewer

    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      protected class  ReportViewer.ControlsPanel  
      protected class  ReportViewer.ReportLoader
      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

        javax.swing.JPanel.AccessibleJPanel
      • Nested classes/interfaces inherited from class javax.swing.JComponent

        javax.swing.JComponent.AccessibleJComponent
      • Nested classes/interfaces inherited from class java.awt.Container

        java.awt.Container.AccessibleAWTContainer
      • Nested classes/interfaces inherited from class java.awt.Component

        java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
    • Constructor Summary

      Constructors 
      Constructor Description
      ReportViewer()  
    • Method Summary

      All Methods Instance Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      void bulkSetValues​(java.util.Map<java.lang.String,​java.lang.Object> map)  
      protected boolean checkExpirationAccess()  
      java.awt.Color getBackground()
      Gets the background color of this component.
      byte[] getBytesPDF()
      Allows scripts to get the bytes in PDF format.
      byte[] getBytesPNG()
      Allows scripts to get the bytes in png format.
      int getCurrentPage()  
      java.util.TreeMap<java.lang.String,​DynamicPropertyDescriptor> getDynamicProps()  
      java.util.Map<java.lang.String,​ExtensionFunction> getExtensionFunctions()  
      int getPageCount()  
      java.awt.Color getPanelBackground()  
      DynamicPropertyDescriptor[] getProperties()  
      java.lang.Object getPropertyValue​(java.lang.String name)  
      java.lang.String getReportPath()  
      java.lang.String getSuggestedFilename()  
      float getZoomFactor()  
      protected javax.swing.JPopupMenu initMenu()  
      boolean isFitPanel()  
      boolean isPropertyDefined​(java.lang.String name)  
      boolean isReportLoading()  
      boolean isShowControls()  
      void loadReport()
      loadReport() starts most of the checking and loading duties for the ReportViewer.
      void localeChanged​(java.util.Locale newLocale)  
      void onShutdown()
      Subclasses should override this to provide shutdown logic.
      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.
      void print()  
      void print​(java.lang.String printerName)  
      void print​(java.lang.String printerName, boolean showDialog)  
      java.lang.String saveAsHTML​(java.lang.String fname, boolean continuous)  
      java.lang.String saveAsPDF​(java.lang.String fname)  
      java.lang.String saveAsPNG​(java.lang.String fname)  
      java.lang.String saveAsXls​(java.lang.String fname)
      Deprecated.
      java.lang.String saveAsXlsx​(java.lang.String filename)
      saves the RMDocument in xlsx format to the supplied file name.
      void setBackground​(java.awt.Color bg)  
      void setCurrentPage​(int pageNumber)  
      void setDynamicProps​(java.util.TreeMap<java.lang.String,​DynamicPropertyDescriptor> map)  
      void setExtensionFunctions​(java.util.Map<java.lang.String,​ExtensionFunction> map)  
      void setFitPanel​(boolean fitPanel)  
      void setForeground​(java.awt.Color fg)  
      void setPageCount​(int unused)  
      void setPanelBackground​(java.awt.Color panelBackground)  
      void setPropertyValue​(java.lang.String name, java.lang.Object value)
      The Property (aka Report Parameter) values can be set from the Property editor to override the default value.
      void setPropertyValueQuiet​(java.lang.String name, java.lang.Object value)
      Sets the property value without reloading the report.
      void setReportLoading​(boolean reportLoading)  
      void setReportPath​(java.lang.String reportPath)  
      void setShowControls​(boolean show)  
      void setSuggestedFilename​(java.lang.String suggestedFilename)  
      void setZoomFactor​(float zoomFactor)  
      void updateControlVisibility()  
      • 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
    • Constructor Detail

      • ReportViewer

        public ReportViewer()
    • Method Detail

      • 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 class AbstractVisionPanel
      • setPropertyValue

        public void setPropertyValue​(java.lang.String name,
                                     java.lang.Object value)
                              throws java.lang.ClassCastException
        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 interface DynamicPropertyProvider
        Overrides:
        setPropertyValue in class AbstractVisionPanel
        Throws:
        java.lang.ClassCastException
      • setPropertyValueQuiet

        public void setPropertyValueQuiet​(java.lang.String name,
                                          java.lang.Object value)
                                   throws java.lang.ClassCastException
        Sets the property value without reloading the report. Used by the report converter
        Throws:
        java.lang.ClassCastException
      • bulkSetValues

        public void bulkSetValues​(java.util.Map<java.lang.String,​java.lang.Object> map)
      • isReportLoading

        public boolean isReportLoading()
      • setReportLoading

        public void setReportLoading​(boolean reportLoading)
      • getReportPath

        public java.lang.String getReportPath()
      • setReportPath

        public void setReportPath​(java.lang.String reportPath)
      • 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

        public void setBackground​(java.awt.Color bg)
        Overrides:
        setBackground in class javax.swing.JComponent
      • getBackground

        public java.awt.Color getBackground()
        Gets the background color of this component.
        Overrides:
        getBackground in class java.awt.Component
      • setForeground

        public void setForeground​(java.awt.Color fg)
        Overrides:
        setForeground in class javax.swing.JComponent
      • 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

        protected javax.swing.JPopupMenu initMenu()
      • print

        public void print()
      • print

        public void print​(java.lang.String printerName)
      • print

        public void print​(java.lang.String printerName,
                          boolean showDialog)
      • 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

        public java.lang.String saveAsPDF​(java.lang.String fname)
      • saveAsHTML

        @Nullable
        public java.lang.String saveAsHTML​(java.lang.String fname,
                                           boolean continuous)
      • saveAsPNG

        public java.lang.String saveAsPNG​(java.lang.String fname)
      • saveAsXls

        @Deprecated
        public java.lang.String saveAsXls​(java.lang.String fname)
        Deprecated.
      • saveAsXlsx

        public java.lang.String saveAsXlsx​(java.lang.String filename)
        saves the RMDocument 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

        public java.awt.Color getPanelBackground()
      • setPanelBackground

        public void setPanelBackground​(java.awt.Color panelBackground)
      • setSuggestedFilename

        public void setSuggestedFilename​(java.lang.String suggestedFilename)
      • getSuggestedFilename

        public java.lang.String getSuggestedFilename()
      • isShowControls

        public boolean isShowControls()
      • setShowControls

        public void setShowControls​(boolean show)
      • updateControlVisibility

        public void updateControlVisibility()