All Implemented Interfaces:
Serializable, Iterable<Component>, IEventSink, IEventSource, IFeedbackContributor, IConverterLocator, IMetadataContext<Serializable,Component>, IQueueRegion, IHeaderContributor, IRequestableComponent, IHierarchical<Component>, IClusterable

public class ExportToolbar extends AbstractToolbar
A toolbar that provides links to download the data represented by all IExportableColumns in the table exported to formats supported by the IDataExporters configured.
Author:
Jesse Long
See Also:
  • Constructor Details

    • ExportToolbar

      public ExportToolbar(DataTable<?,?> table)
      Creates a new instance with the default message model. This instance will use "export." as the exported file name prefix.
      Parameters:
      table - The data table this toolbar belongs to.
    • ExportToolbar

      public ExportToolbar(DataTable<?,?> table, IModel<String> fileNameModel)
      Creates a new instance with the provided data table and file name model.
      Parameters:
      table - The table to which this toolbar belongs.
      fileNameModel - The model of the file name. This should exclude the file extensions.
    • ExportToolbar

      public ExportToolbar(DataTable<?,?> table, IModel<String> messageModel, IModel<String> fileNameModel)
      Creates a new instance.
      Parameters:
      table - The table to which this toolbar belongs.
      messageModel - The model of the export message.
      fileNameModel - The model of the file name. This should exclude the file extensions.
  • Method Details

    • setMessageModel

      public ExportToolbar setMessageModel(IModel<String> messageModel)
      Sets the models of the export message displayed in the toolbar.
      Parameters:
      messageModel - the models of the export message displayed in the toolbar.
      Returns:
      this, for chaining.
    • setFileNameModel

      public ExportToolbar setFileNameModel(IModel<String> fileNameModel)
      Sets the model of the file name used for the exported data.
      Parameters:
      fileNameModel - The model of the file name used for the exported data.
      Returns:
      this, for chaining.
    • getFileNameModel

      Returns the model of the file name used for the exported data.
      Returns:
      the model of the file name used for the exported data.
    • getMessageModel

      Returns the model of the export message displayed in the toolbar.
      Returns:
      the model of the export message displayed in the toolbar.
    • onInitialize

      protected void onInitialize()
      This method is meant to be used as an alternative to initialize components. Usually the component's constructor is used for this task, but sometimes a component cannot be initialized in isolation, it may need to access its parent component or its markup in order to fully initialize. This method is invoked once per component's lifecycle when a path exists from this component to the Page thus providing the component with an atomic callback when the component's environment is built out.

      Overrides must call super#Component.onInitialize(). Usually this should be the first thing an override does, much like a constructor.

      Parent containers are guaranteed to be initialized before their children

      It is safe to use Component.getPage() in this method

      NOTE:The timing of this call is not precise, the contract is that it is called sometime before Component.onBeforeRender().

      Overrides:
      onInitialize in class MarkupContainer
    • createExportLink

      protected Component createExportLink(String componentId, IDataExporter dataExporter)
      Creates a new link to the exported data for the provided IDataExporter.
      Parameters:
      componentId - The component of the link.
      dataExporter - The data exporter to use to export the data.
      Returns:
      a new link to the exported data for the provided IDataExporter.
    • getCacheDuration

      How long should the export be cached.
      Returns:
      default is Duration.ZERO
    • onConfigure

      protected void onConfigure()
      Description copied from class: Component
      Called on all components before any component is rendered. This method should be used to configure such things as visibility and enabled flags.

      Overrides must call super.onConfigure(), usually before any other code

      NOTE: Component hierarchy should not be modified inside this method, instead it should be done in Component.onBeforeRender()

      NOTE: Why this method is preferrable to directly overriding Component.isVisible() and Component.isEnabled()? Because those methods are called multiple times even for processing of a single request. If they contain expensive logic they can slow down the response time of the entire page. Further, overriding those methods directly on form components may lead to inconsistent or unexpected state depending on when those methods are called in the form processing workflow. It is a better practice to push changes to state rather than pull.

      NOTE: If component's visibility or another property depends on another component you may call other.configure() followed by other.isVisible() as mentioned in Component.configure() javadoc.

      NOTE: Why should Component.onBeforeRender() not be used for this? Because if a component's visibility is controlled inside Component.onBeforeRender(), once invisible the component will never become visible again.

      Overrides:
      onConfigure in class Component
    • calculateVisibility

      protected void calculateVisibility()
      This toolbar is only visible if there are rows in the data set and if there are exportable columns in the data table and if there are data exporters added to the toolbar.
    • onDetach

      protected void onDetach()
      Description copied from class: Component
      Called to allow a component to detach resources after use. Overrides of this method MUST call the super implementation, the most logical place to do this is the last line of the override method.
      Overrides:
      onDetach in class MarkupContainer
    • addDataExporter

      Adds a IDataExporter to the list of data exporters to be used in this toolbar.
      Parameters:
      exporter - The IDataExporter to add to the toolbar.
      Returns:
      this, for chaining.