Module org.tentackle.fx.rdc
Package org.tentackle.fx.rdc.search
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 Summary
Constructors Constructor Description PdoSearch()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidbindOkButton()Binds the ok button so that it is enabled only if a PDO is selected.voidcancel()Close and cancel.voidclearSelection()Clears the selection.voidclose()Close the search.voidconfigure()voidcreatePdo()Creates a new PDO.protected javafx.scene.NodecreatePlaceHolder()Creates the placeholder node for the empty search result in table view.voidfilterResult()Filters the result.protected javafx.collections.ObservableList<T>filterViewablePdos(List<T> pdos)Filters the viewable PDOs from the list and converts toObservableList.voidfind()Runs the search and displays the results.FxHBoxgetButtonBox()Gets the HBox containing all buttons.Consumer<T>getDoubleClickHandler()Gets the double click handler.PdoFinder<T>getFinder()Gets the pdo finder.javafx.collections.ObservableList<T>getItems()Gets the items shown in the table or tree.StringgetNoDataMessage()Gets the message displayed in tableview when there was no data found.TgetPdo()Gets the pdo.javafx.collections.ObservableList<T>getSelectedItems()Returns the selected PDOs.FxTableView<T>getTableView()Gets access to the table view.
If the tree is shown, it will be switched to the table view.javafx.collections.ObservableList<T>getTotalsItems()Gets the totals if shown.FxTreeView<T>getTreeView()Gets access to the tree view.
If the table is shown, it will be switched to the tree view.booleanisCreatePdoAllowed()Returns whether creating a new PDO is allowed.protected booleanisCrudShown()Returns whether a CRUD is currently shown for this search.booleanisFinderVisible()Returns whether the finder is visible.booleanisSingleSelectMode()Returns single selection mode.booleanisTreeShown()Returns whether the tree is shown instead of the table.voidsetCreatePdoAllowed(boolean allowed)Sets whether creating a new PDO is allowed.voidsetDoubleClickHandler(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).voidsetFinder(PdoFinder<T> finder)Sets the pdo finder.voidsetFinderVisible(boolean visible)Sets the visibility of the finder.
The method must be invoked after setPdo because the finder will be made visible according tovoidsetItems(List<T> pdos)Shows the search results.voidsetNoDataMessage(String noDataMessage)Sets the message displayed in tableview when there was no data found.voidsetPdo(T pdo)Sets the pdo as a template for the search.voidsetSingleSelectMode(boolean singleSelectMode)Sets the single selection mode.
This mode is usually used in a modal dialog to select exactly one PDO.voidsetTotals(javafx.collections.ObservableList<T> totals)Sets the totals.
Shows the results fromPdoFinder.createTotals(javafx.collections.ObservableList<T>)or hides the totals if none.voidshowTable()Switches to the table view.voidshowTree()Switches to the tree view.voidupdateTitle()Updates the window title if attached to its own stage.-
Methods inherited from class org.tentackle.fx.AbstractFxController
createBinder, getBinder, getContainer, getDefaultScopes, getFXMLFields, getFXMLMethods, getStage, getView, setView, validateInjections
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.tentackle.fx.FxController
getBinder, getContainer, getFXMLFields, getFXMLMethods, getStage, getView, setView, validateInjections
-
Methods inherited from interface org.tentackle.pdo.PdoProvider
on
-
-
-
-
Method Detail
-
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
-
setPdo
public void setPdo(T pdo)
Sets the pdo as a template for the search.- Specified by:
setPdoin interfacePdoController<T extends PersistentDomainObject<T>>- Parameters:
pdo- the pdo
-
getPdo
public T getPdo()
Gets the pdo.- Specified by:
getPdoin interfacePdoProvider<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 fromPdoFinder.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:
TotalsTableView
-
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 toObservableList.- 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:
configurein interfaceFxController- Overrides:
configurein classAbstractFxController
-
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
-
-