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>, 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()
      Creates a CRUD controller.
  • 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
    • setEditing

      public void setEditing(boolean editing)
      Sets whether the PDO is being edited effectively.
      Parameters:
      editing - true if editing, else false
    • 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()
      Description copied from interface: FxController
      Configures the controller as the final step in initialization.
      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 boolean save()
      Saves the current PDO.
      The PDO is not saved if the form is invalid, if a PDO with the same unique domain key already exists, or if another user modified it meanwhile. The user is informed in all those cases and the editor keeps the pending changes, which is why callers that go on to discard the editor's contents must check the result.
      Returns:
      true if the PDO has been saved, false if it has not
    • 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)
    • releaseTokenLock

      public void releaseTokenLock(T pdo)
      Unlocks the given PDO.
      Parameters:
      pdo - the pdo
    • 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 memory leaks.
    • 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(ValidationFailedException ex)
      Shows the validation errors.
      Parameters:
      ex - the validation exception