Class ExportToolbar

    • Constructor Detail

      • 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 Detail

      • 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

        public IModel<StringgetFileNameModel()
        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

        public IModel<StringgetMessageModel()
        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.
      • 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