Class DrawableLoadFilter

  • All Implemented Interfaces:
    Serializable, Cloneable, DataFilter, DataSource, DataTarget

    public class DrawableLoadFilter
    extends Object
    implements DataFilter
    The DrawableLoadFilter is used to load drawable image files (like WMF's) during the report generation process. This filter expects its datasource to return a java.net.URL. If the datasource does not return an URL, null is returned as result of calling "getValue()".

    This filter is mostly used in conjunction with the URLFilter, which creates URLs from Strings and files if nessesary.

    The url is used to create a new Drawable object which is returned to the caller. The loaded/created Drawable is also stored in an internal cache.

    This filter can be used to dynamically change images of a report, a very nice feature for photo albums and catalogs for instance.

    This filter will return null, if something else than an URL was retrieved from the assigned datasource

    Author:
    Thomas Morgner
    See Also:
    Serialized Form
    • Constructor Detail

      • DrawableLoadFilter

        public DrawableLoadFilter()
        creates a new ImageLoadFilter with a cache size of 10.
      • DrawableLoadFilter

        public DrawableLoadFilter​(int cacheSize)
        Creates a new ImageLoadFilter with the defined cache size.
        Parameters:
        cacheSize - the cache size.
    • Method Detail

      • getValue

        public Object getValue​(ExpressionRuntime runtime,
                               ReportElement element)
        Reads this filter's datasource and if the source returned an URL, tries to form a imagereference. If the image is loaded in a previous run and is still in the cache, no new reference is created and the previously loaded reference is returned.
        Specified by:
        getValue in interface DataSource
        Parameters:
        runtime - the expression runtime that is used to evaluate formulas and expressions when computing the value of this filter.
        element -
        Returns:
        the current value for this filter.
      • getDataSource

        public DataSource getDataSource()
        Returns the data source for the filter.
        Specified by:
        getDataSource in interface DataTarget
        Returns:
        The data source.
      • setDataSource

        public void setDataSource​(DataSource ds)
        Sets the data source.
        Specified by:
        setDataSource in interface DataTarget
        Parameters:
        ds - The data source.