Class PdoCrud<T extends PersistentDomainObject<T>>

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

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

    • PdoCrud

      public PdoCrud()
  • Method Details

    • setEditable

      public void setEditable(boolean editable)
      Sets whether the user can change the editor's contents.
      Parameters:
      editable - true if editable
    • isEditable

      public boolean isEditable()
      Gets whether the user can change the editor's contents.
      Returns:
      true if editable
    • isEditing

      public boolean isEditing()
      Returns whether the PDO is being edited effectively.
      Returns:
      true if isEditable() and editing is allowed according to the security rules
    • isModal

      public boolean isModal()
      Returns whether CRUD should be treated as modal.
      Returns:
      true if modal
    • setModal

      public void setModal(boolean modal)
      Sets this CRUD should be treated as modal.
      Modality cannot be retrieved from the stage because there may be no stage yet.
      Parameters:
      modal - true if modal
    • setPdoList

      public void setPdoList(javafx.collections.ObservableList<T> pdoList)
      Sets a list of PDOs to walk through via the up and next buttons.
      Parameters:
      pdoList - the pdos, null to disable list navigation
    • getPdoList

      public List<T> getPdoList()
      Gets the list of pdos to walk through.
      Returns:
      the pdos
    • setEditor

      public void setEditor(PdoEditor<T> editor)
      Sets the pdo editor.
      Parameters:
      editor - the editor
    • getEditor

      public PdoEditor<T> getEditor()
      Gets the pdo editor.
      Returns:
      editor
    • setPdo

      public void setPdo(T pdo)
      Sets the pdo to edit.
      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
    • updateTitle

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

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

      public void tree()
      Shows the browser tree of the current PDO.
    • previous

      public void previous()
      Navigates to the previous PDO in the list.
    • next

      public void next()
      Navigates to the next PDO in the list.
    • security

      public void security()
      Shows the security dialog.
    • newPdo

      public void newPdo()
      Discards the current PDO and edits a new one.
    • save

      public void save()
      Saves the current PDO.
    • delete

      public void delete()
      Deletes the current PDO.
    • cancel

      public void cancel()
      Closes this CRUD.
    • find

      public void find()
      Searches for a PDO.
    • releasePdo

      public void releasePdo(Consumer<Boolean> released)
      Releases the current PDO.
      Parameters:
      released - invoked with true if released, false if not (user answered CANCEL)
    • print

      public void print()
      Prints the PDO.
    • getButtonBox

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

      public void removeAllPdoEventListeners()
      Removes all PDO-event handlers and filters.
      The method is provided to avoid memleaks.
    • addPdoEventFilter

      public void addPdoEventFilter(javafx.event.EventType<PdoEvent> eventType, javafx.event.EventHandler<PdoEvent> eventFilter)
      Adds a PDO-event filter.
      Parameters:
      eventType - the event type
      eventFilter - the filter
    • removePdoEventFilter

      public void removePdoEventFilter(javafx.event.EventType<PdoEvent> eventType, javafx.event.EventHandler<PdoEvent> eventFilter)
      Removes a PDO-event filter.
      Parameters:
      eventType - the event type
      eventFilter - the filter
    • addPdoEventHandler

      public void addPdoEventHandler(javafx.event.EventType<PdoEvent> eventType, javafx.event.EventHandler<PdoEvent> eventHandler)
      Adds a PDO-event handler.
      Parameters:
      eventType - the event type
      eventHandler - the handler
    • removePdoEventHandler

      public void removePdoEventHandler(javafx.event.EventType<PdoEvent> eventType, javafx.event.EventHandler<PdoEvent> eventHandler)
      Removes a PDO-event handler.
      Parameters:
      eventType - the event type
      eventHandler - the handler
    • updateButtons

      protected void updateButtons()
      Updates the visibility and disabled state of the buttons.
    • updatePrevNextButtons

      protected void updatePrevNextButtons()
      Enables/Disables the previous and next buttons.
    • closeIfModal

      protected boolean closeIfModal()
      Closes the stage if modal.
      Returns:
      true if closed
    • showValidationResults

      protected void showValidationResults(org.tentackle.validate.ValidationFailedException ex)
      Shows the validation errors.
      Parameters:
      ex - the validation exception