Class PdoSearch<T extends PersistentDomainObject<T>>

java.lang.Object
org.tentackle.fx.AbstractFxController
org.tentackle.fx.rdc.search.PdoSearch<T>
Type Parameters:
T - the PDO type
All Implemented Interfaces:
FxController, PdoController<T>, PdoProvider<T>, org.tentackle.validate.ScopeConfigurator

@FxControllerService(binding=NO) public class PdoSearch<T extends PersistentDomainObject<T>> extends AbstractFxController implements PdoController<T>
Search controller for PDOs.
Author:
harald
  • Constructor Details

    • PdoSearch

      public PdoSearch()
  • Method Details

    • getNoDataMessage

      public String getNoDataMessage()
      Gets the message displayed in tableview when there was no data found.
      Returns:
      the placeholder message, null if default message, empty if no message at all
    • setNoDataMessage

      public void setNoDataMessage(String noDataMessage)
      Sets the message displayed in tableview when there was no data found.
      Parameters:
      noDataMessage - the placeholder message, null if default message, empty if no message at all
    • getDoubleClickHandler

      public Consumer<T> getDoubleClickHandler()
      Gets the double click handler.
      Returns:
      the handler, null if default handler
    • setDoubleClickHandler

      public void setDoubleClickHandler(Consumer<T> doubleClickHandler)
      Sets the double-click handler.
      If the search dialog is non-modal and the user double-clicks on a row of the table view, this handler will be invoked instead of the default (showing the PDO editor, if any provided).
      Parameters:
      doubleClickHandler - the handler, null to clear
    • getButtonBox

      public FxHBox getButtonBox()
      Gets the HBox containing all buttons.
      Returns:
      the button container
    • setFinder

      public void setFinder(PdoFinder<T> finder)
      Sets the pdo finder.
      Parameters:
      finder - the finder
    • getFinder

      public PdoFinder<T> getFinder()
      Gets the pdo finder.
      Returns:
      the finder
    • setPdo

      public void setPdo(T pdo)
      Sets the pdo as a template for the search.
      Specified by:
      setPdo in interface PdoController<T extends PersistentDomainObject<T>>
      Parameters:
      pdo - the pdo
    • getPdo

      public T getPdo()
      Gets the pdo.
      Specified by:
      getPdo in interface PdoProvider<T extends PersistentDomainObject<T>>
      Returns:
      the pdo
    • setFinderVisible

      public void setFinderVisible(boolean visible)
      Sets the visibility of the finder.
      The method must be invoked after setPdo because the finder will be made visible according to
      Parameters:
      visible - true if visible
    • isFinderVisible

      public boolean isFinderVisible()
      Returns whether the finder is visible.
      Returns:
      true if visible
    • setSingleSelectMode

      public void setSingleSelectMode(boolean singleSelectMode)
      Sets the single selection mode.
      This mode is usually used in a modal dialog to select exactly one PDO.
      Parameters:
      singleSelectMode - true if select a single PDO
    • isSingleSelectMode

      public boolean isSingleSelectMode()
      Returns single selection mode.
      Returns:
      true if select a single PDO
    • setCreatePdoAllowed

      public void setCreatePdoAllowed(boolean allowed)
      Sets whether creating a new PDO is allowed.
      Parameters:
      allowed - true if allowed
    • isCreatePdoAllowed

      public boolean isCreatePdoAllowed()
      Returns whether creating a new PDO is allowed.
      Returns:
      true if allowed
    • setTotals

      public void setTotals(javafx.collections.ObservableList<T> totals)
      Sets the totals.
      Shows the results from PdoFinder.createTotals(javafx.collections.ObservableList<T>) or hides the totals if none.
      Parameters:
      totals - the totals (usually one item), null or empty if none
      See Also:
    • getTotalsItems

      public javafx.collections.ObservableList<T> getTotalsItems()
      Gets the totals if shown.
      Returns:
      the totals, null if no totals
    • updateTitle

      public void updateTitle()
      Updates the window title if attached to its own stage.
    • find

      public void find()
      Runs the search and displays the results.
    • filterViewablePdos

      protected javafx.collections.ObservableList<T> filterViewablePdos(List<T> pdos)
      Filters the viewable PDOs from the list and converts to ObservableList.
      Parameters:
      pdos - the pdos, null is treated as empty
      Returns:
      the PDOs with view permission
    • setItems

      public void setItems(List<T> pdos)
      Shows the search results.
      Parameters:
      pdos - the found PDO, null or empty to clear
    • getItems

      public javafx.collections.ObservableList<T> getItems()
      Gets the items shown in the table or tree.
      Returns:
      the items
    • filterResult

      public void filterResult()
      Filters the result.
    • getSelectedItems

      public javafx.collections.ObservableList<T> getSelectedItems()
      Returns the selected PDOs.
      Returns:
      the selected PDOs, empty list, if nothing selected
    • clearSelection

      public void clearSelection()
      Clears the selection.
    • isTreeShown

      public boolean isTreeShown()
      Returns whether the tree is shown instead of the table.
      Returns:
      true if tree shown, else table shown
    • showTree

      public void showTree()
      Switches to the tree view.
    • getTreeView

      public FxTreeView<T> getTreeView()
      Gets access to the tree view.
      If the table is shown, it will be switched to the tree view.
      Returns:
      the table view
    • showTable

      public void showTable()
      Switches to the table view.
    • getTableView

      public FxTableView<T> getTableView()
      Gets access to the table view.
      If the tree is shown, it will be switched to the table view.
      Returns:
      the table view
    • cancel

      public void cancel()
      Close and cancel.
    • close

      public void close()
      Close the search.
    • createPdo

      public void createPdo()
      Creates a new PDO.
    • configure

      public void configure()
      Specified by:
      configure in interface FxController
      Overrides:
      configure in class AbstractFxController
    • bindOkButton

      protected void bindOkButton()
      Binds the ok button so that it is enabled only if a PDO is selected.
    • isCrudShown

      protected boolean isCrudShown()
      Returns whether a CRUD is currently shown for this search.
      Returns:
      true if shown
    • createPlaceHolder

      protected javafx.scene.Node createPlaceHolder()
      Creates the placeholder node for the empty search result in table view.
      Returns:
      the node, null if use tableview's default placeholder