Class FilteredTableView<S>

java.lang.Object
javafx.scene.Node
javafx.scene.Parent
javafx.scene.layout.Region
javafx.scene.control.Control
javafx.scene.control.TableView<S>
org.controlsfx.control.tableview2.TableView2<S>
org.controlsfx.control.tableview2.FilteredTableView<S>
Type Parameters:
S - The type of the objects contained within the FilteredTableView items list.
All Implemented Interfaces:
javafx.css.Styleable, javafx.event.EventTarget, javafx.scene.control.Skinnable

public class FilteredTableView<S> extends TableView2<S>
A subclass of TableView2 that provides extended filtering options. The table items have to be wrapped with a FilteredList. configureForFiltering is a convenient method that can be used for that purpose.

Features


A filter icon is displayed in the column's header, and its color will show if the column has a predicate applied or not.
A PopupFilter control can be used to display filtering options. This control can be displayed via FilteredTableColumn.onFilterAction.
Alternatively, a SouthFilter control can be placed in the south header node.

Sample

Let's provide the underlying data model, based on a Person class.

 
 public class Person {
     private StringProperty firstName;
     public void setFirstName(String value) { firstNameProperty().set(value); }
     public String getFirstName() { return firstNameProperty().get(); }
     public StringProperty firstNameProperty() {
         if (firstName == null) firstName = new SimpleStringProperty(this, "firstName");
         return firstName;
     }

     private StringProperty lastName;
     public void setLastName(String value) { lastNameProperty().set(value); }
     public String getLastName() { return lastNameProperty().get(); }
     public StringProperty lastNameProperty() {
         if (lastName == null) lastName = new SimpleStringProperty(this, "lastName");
         return lastName;
     }
 }

A FilteredTableView can be created, and filled with an observable list of people, that has to be wrapped with a SortedList and a FilteredList, in order to apply sorting and filtering:

 
 FilteredTableView<Person> table = new FilteredTableView<Person>();
 ObservableList<Person> people = getPeople();
 FilteredList<Person> filteredPeople = new FilteredList<>(people);
 filteredPeople.predicateProperty().bind(table.predicateProperty());
 SortedList<Person> sortedPeople = new SortedList<>(filteredPeople);
 sortedPeople.comparatorProperty().bind(table.comparatorProperty());
 table.setItems(sortedPeople);
 

Alternatively, configureForFiltering can be used:

 
 FilteredTableView<Person> table = new FilteredTableView<Person>();
 ObservableList<Person> people = getPeople();
 FilteredTableView.configureForFiltering(table, people);
 

Now we add two columns to the table:

 
 FilteredTableColumn<Person,String> firstNameCol = new FilteredTableColumn<>("First Name");
 firstNameCol.setCellValueFactory(p -> p.getValue().firstNameProperty());
 FilteredTableColumn<Person,String> lastNameCol = new FilteredTableColumn<>("Last Name");
 lastNameCol.setCellValueFactory(p -> p.getValue().lastNameProperty());

 table.getColumns().setAll(firstNameCol, lastNameCol);

A cell factory that allows commit on focus lost can be set:

 
 firstName.setCellFactory(TextField2TableCell.forTableColumn());

We can fix some row and columns, and also show the row header:

 
 table.getFixedColumns().setAll(firstNameColumn);
 table.getFixedRows().setAll(0, 1, 2);

 table.setRowHeaderVisible(true);

A popup filter editor can be easily added to a column header:

 
 PopupFilter<Person, String> popupFirstNameFilter = new PopupStringFilter<>(firstName);
 firstName.setOnFilterAction(e -> popupFirstNameFilter.showPopup());
 

Alternatively, a south filter editor can be added to the south node:

 
 SouthFilter<Person, String> editorFirstNameFilter = new SouthFilter<>(firstName, String.class);
 firstName.setSouthNode(editorFirstNameFilter);
 
  • Property Summary

    Properties
    Type
    Property
    Description
    final javafx.beans.property.ObjectProperty<javafx.util.Callback<javafx.scene.control.TableView<S>,Boolean>>
    The filter policy specifies how filtering in this FilteredTableView should be performed.
    final javafx.beans.property.ObjectProperty<javafx.event.EventHandler<FilterEvent<javafx.scene.control.TableView<S>>>>
    Called when there's a request to filter the control.
    final javafx.beans.property.ReadOnlyObjectProperty<Predicate<S>>
    The predicate property is a read-only property that is representative of the current state of the filter list.

    Properties inherited from class javafx.scene.control.TableView

    columnResizePolicy, comparator, editable, editingCell, fixedCellSize, focusModel, items, onScrollToColumn, onScrollTo, onSort, placeholder, rowFactory, selectionModel, sortPolicy, tableMenuButtonVisible

    Properties inherited from class javafx.scene.control.Control

    contextMenu, skin, tooltip

    Properties inherited from class javafx.scene.layout.Region

    background, border, cacheShape, centerShape, height, insets, maxHeight, maxWidth, minHeight, minWidth, opaqueInsets, padding, prefHeight, prefWidth, scaleShape, shape, snapToPixel, width

    Properties inherited from class javafx.scene.Parent

    needsLayout

    Properties inherited from class javafx.scene.Node

    accessibleHelp, accessibleRoleDescription, accessibleRole, accessibleText, blendMode, boundsInLocal, boundsInParent, cacheHint, cache, clip, cursor, depthTest, disabled, disable, effectiveNodeOrientation, effect, eventDispatcher, focused, focusTraversable, hover, id, inputMethodRequests, layoutBounds, layoutX, layoutY, localToParentTransform, localToSceneTransform, managed, mouseTransparent, nodeOrientation, onContextMenuRequested, onDragDetected, onDragDone, onDragDropped, onDragEntered, onDragExited, onDragOver, onInputMethodTextChanged, onKeyPressed, onKeyReleased, onKeyTyped, onMouseClicked, onMouseDragEntered, onMouseDragExited, onMouseDragged, onMouseDragOver, onMouseDragReleased, onMouseEntered, onMouseExited, onMouseMoved, onMousePressed, onMouseReleased, onRotate, onRotationFinished, onRotationStarted, onScrollFinished, onScroll, onScrollStarted, onSwipeDown, onSwipeLeft, onSwipeRight, onSwipeUp, onTouchMoved, onTouchPressed, onTouchReleased, onTouchStationary, onZoomFinished, onZoom, onZoomStarted, opacity, parent, pickOnBounds, pressed, rotate, rotationAxis, scaleX, scaleY, scaleZ, scene, style, translateX, translateY, translateZ, viewOrder, visible
  • Nested Class Summary

    Nested classes/interfaces inherited from class org.controlsfx.control.tableview2.TableView2

    TableView2.SpanType

    Nested classes/interfaces inherited from class javafx.scene.control.TableView

    javafx.scene.control.TableView.ResizeFeatures<S>, javafx.scene.control.TableView.TableViewFocusModel<S>, javafx.scene.control.TableView.TableViewSelectionModel<S>
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final javafx.util.Callback<FilteredTableView,Boolean>
    The default filter policy that this FilteredTableView will use if no other policy is specified.

    Fields inherited from class javafx.scene.control.TableView

    CONSTRAINED_RESIZE_POLICY, DEFAULT_SORT_POLICY, UNCONSTRAINED_RESIZE_POLICY

    Fields inherited from class javafx.scene.layout.Region

    USE_COMPUTED_SIZE, USE_PREF_SIZE

    Fields inherited from class javafx.scene.Node

    BASELINE_OFFSET_SAME_AS_HEIGHT
  • Constructor Summary

    Constructors
    Constructor
    Description
    Creates a FilteredTableView control.
    FilteredTableView(javafx.collections.ObservableList<S> items)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static <S> void
    configureForFiltering(FilteredTableView<S> tableView, javafx.collections.ObservableList<S> items)
    Convenient method to set the items for the FilteredTableView by wrapping them with a FilteredList and a SortedList, that are also bound properly to the table's predicateProperty() and TableView.comparatorProperty().
    void
    The filter method forces the TableView to re-run its filtering algorithm.
    final javafx.beans.property.ObjectProperty<javafx.util.Callback<javafx.scene.control.TableView<S>,Boolean>>
    The filter policy specifies how filtering in this FilteredTableView should be performed.
    final javafx.util.Callback<javafx.scene.control.TableView<S>,Boolean>
    Gets the value of the filterPolicy property.
    final javafx.event.EventHandler<FilterEvent<javafx.scene.control.TableView<S>>>
    Gets the value of the onFilter property.
    final Predicate<S>
    Gets the value of the predicate property.
    final javafx.beans.property.ObjectProperty<javafx.event.EventHandler<FilterEvent<javafx.scene.control.TableView<S>>>>
    Called when there's a request to filter the control.
    final javafx.beans.property.ReadOnlyObjectProperty<Predicate<S>>
    The predicate property is a read-only property that is representative of the current state of the filter list.
    void
    Resets all the filters applied, to both tableView and filtered columns
    void
    setBackingList(javafx.collections.ObservableList<S> backingList)
    Sets the original observable list, before it is wrapped into a FilteredList and a SortedList.
    final void
    setFilterPolicy(javafx.util.Callback<javafx.scene.control.TableView<S>,Boolean> callback)
    Sets the value of the filterPolicy property.
    final void
    setOnFilter(javafx.event.EventHandler<FilterEvent<javafx.scene.control.TableView<S>>> value)
    Sets the value of the onFilter property.

    Methods inherited from class javafx.scene.control.TableView

    columnResizePolicyProperty, comparatorProperty, edit, editableProperty, editingCellProperty, fixedCellSizeProperty, focusModelProperty, getClassCssMetaData, getColumnResizePolicy, getColumns, getComparator, getControlCssMetaData, getEditingCell, getFixedCellSize, getFocusModel, getItems, getOnScrollTo, getOnScrollToColumn, getOnSort, getPlaceholder, getRowFactory, getSelectionModel, getSortOrder, getSortPolicy, getVisibleLeafColumn, getVisibleLeafColumns, getVisibleLeafIndex, isEditable, isTableMenuButtonVisible, itemsProperty, onScrollToColumnProperty, onScrollToProperty, onSortProperty, placeholderProperty, queryAccessibleAttribute, refresh, resizeColumn, rowFactoryProperty, scrollTo, scrollTo, scrollToColumn, scrollToColumnIndex, selectionModelProperty, setColumnResizePolicy, setEditable, setFixedCellSize, setFocusModel, setItems, setOnScrollTo, setOnScrollToColumn, setOnSort, setPlaceholder, setRowFactory, setSelectionModel, setSortPolicy, setTableMenuButtonVisible, sortPolicyProperty, tableMenuButtonVisibleProperty

    Methods inherited from class javafx.scene.control.Control

    computeMaxHeight, computeMaxWidth, computeMinHeight, computeMinWidth, computePrefHeight, computePrefWidth, contextMenuProperty, executeAccessibleAction, getBaselineOffset, getContextMenu, getCssMetaData, getInitialFocusTraversable, getSkin, getTooltip, isResizable, layoutChildren, setContextMenu, setSkin, setTooltip, skinProperty, tooltipProperty

    Methods inherited from class javafx.scene.layout.Region

    backgroundProperty, borderProperty, cacheShapeProperty, centerShapeProperty, getBackground, getBorder, getHeight, getInsets, getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, getOpaqueInsets, getPadding, getPrefHeight, getPrefWidth, getShape, getWidth, heightProperty, insetsProperty, isCacheShape, isCenterShape, isScaleShape, isSnapToPixel, layoutInArea, layoutInArea, layoutInArea, layoutInArea, maxHeight, maxHeightProperty, maxWidth, maxWidthProperty, minHeight, minHeightProperty, minWidth, minWidthProperty, opaqueInsetsProperty, paddingProperty, positionInArea, positionInArea, prefHeight, prefHeightProperty, prefWidth, prefWidthProperty, resize, scaleShapeProperty, setBackground, setBorder, setCacheShape, setCenterShape, setHeight, setMaxHeight, setMaxSize, setMaxWidth, setMinHeight, setMinSize, setMinWidth, setOpaqueInsets, setPadding, setPrefHeight, setPrefSize, setPrefWidth, setScaleShape, setShape, setSnapToPixel, setWidth, shapeProperty, snappedBottomInset, snappedLeftInset, snappedRightInset, snappedTopInset, snapPosition, snapPositionX, snapPositionY, snapSize, snapSizeX, snapSizeY, snapSpace, snapSpaceX, snapSpaceY, snapToPixelProperty, widthProperty

    Methods inherited from class javafx.scene.Parent

    getChildren, getChildrenUnmodifiable, getManagedChildren, getStylesheets, isNeedsLayout, layout, lookup, needsLayoutProperty, requestLayout, requestParentLayout, setNeedsLayout, updateBounds

    Methods inherited from class javafx.scene.Node

    accessibleHelpProperty, accessibleRoleDescriptionProperty, accessibleRoleProperty, accessibleTextProperty, addEventFilter, addEventHandler, applyCss, autosize, blendModeProperty, boundsInLocalProperty, boundsInParentProperty, buildEventDispatchChain, cacheHintProperty, cacheProperty, clipProperty, computeAreaInScreen, contains, contains, cursorProperty, depthTestProperty, disabledProperty, disableProperty, effectiveNodeOrientationProperty, effectProperty, eventDispatcherProperty, fireEvent, focusedProperty, focusTraversableProperty, getAccessibleHelp, getAccessibleRole, getAccessibleRoleDescription, getAccessibleText, getBlendMode, getBoundsInLocal, getBoundsInParent, getCacheHint, getClip, getContentBias, getCursor, getDepthTest, getEffect, getEffectiveNodeOrientation, getEventDispatcher, getId, getInitialCursor, getInputMethodRequests, getLayoutBounds, getLayoutX, getLayoutY, getLocalToParentTransform, getLocalToSceneTransform, getNodeOrientation, getOnContextMenuRequested, getOnDragDetected, getOnDragDone, getOnDragDropped, getOnDragEntered, getOnDragExited, getOnDragOver, getOnInputMethodTextChanged, getOnKeyPressed, getOnKeyReleased, getOnKeyTyped, getOnMouseClicked, getOnMouseDragEntered, getOnMouseDragExited, getOnMouseDragged, getOnMouseDragOver, getOnMouseDragReleased, getOnMouseEntered, getOnMouseExited, getOnMouseMoved, getOnMousePressed, getOnMouseReleased, getOnRotate, getOnRotationFinished, getOnRotationStarted, getOnScroll, getOnScrollFinished, getOnScrollStarted, getOnSwipeDown, getOnSwipeLeft, getOnSwipeRight, getOnSwipeUp, getOnTouchMoved, getOnTouchPressed, getOnTouchReleased, getOnTouchStationary, getOnZoom, getOnZoomFinished, getOnZoomStarted, getOpacity, getParent, getProperties, getPseudoClassStates, getRotate, getRotationAxis, getScaleX, getScaleY, getScaleZ, getScene, getStyle, getStyleableParent, getStyleClass, getTransforms, getTranslateX, getTranslateY, getTranslateZ, getTypeSelector, getUserData, getViewOrder, hasProperties, hoverProperty, idProperty, inputMethodRequestsProperty, intersects, intersects, isCache, isDisable, isDisabled, isFocused, isFocusTraversable, isHover, isManaged, isMouseTransparent, isPickOnBounds, isPressed, isVisible, layoutBoundsProperty, layoutXProperty, layoutYProperty, localToParent, localToParent, localToParent, localToParent, localToParent, localToParentTransformProperty, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToSceneTransformProperty, localToScreen, localToScreen, localToScreen, localToScreen, localToScreen, lookupAll, managedProperty, mouseTransparentProperty, nodeOrientationProperty, notifyAccessibleAttributeChanged, onContextMenuRequestedProperty, onDragDetectedProperty, onDragDoneProperty, onDragDroppedProperty, onDragEnteredProperty, onDragExitedProperty, onDragOverProperty, onInputMethodTextChangedProperty, onKeyPressedProperty, onKeyReleasedProperty, onKeyTypedProperty, onMouseClickedProperty, onMouseDragEnteredProperty, onMouseDragExitedProperty, onMouseDraggedProperty, onMouseDragOverProperty, onMouseDragReleasedProperty, onMouseEnteredProperty, onMouseExitedProperty, onMouseMovedProperty, onMousePressedProperty, onMouseReleasedProperty, onRotateProperty, onRotationFinishedProperty, onRotationStartedProperty, onScrollFinishedProperty, onScrollProperty, onScrollStartedProperty, onSwipeDownProperty, onSwipeLeftProperty, onSwipeRightProperty, onSwipeUpProperty, onTouchMovedProperty, onTouchPressedProperty, onTouchReleasedProperty, onTouchStationaryProperty, onZoomFinishedProperty, onZoomProperty, onZoomStartedProperty, opacityProperty, parentProperty, parentToLocal, parentToLocal, parentToLocal, parentToLocal, parentToLocal, pickOnBoundsProperty, pressedProperty, pseudoClassStateChanged, relocate, removeEventFilter, removeEventHandler, requestFocus, resizeRelocate, rotateProperty, rotationAxisProperty, scaleXProperty, scaleYProperty, scaleZProperty, sceneProperty, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, screenToLocal, screenToLocal, screenToLocal, setAccessibleHelp, setAccessibleRole, setAccessibleRoleDescription, setAccessibleText, setBlendMode, setCache, setCacheHint, setClip, setCursor, setDepthTest, setDisable, setDisabled, setEffect, setEventDispatcher, setEventHandler, setFocused, setFocusTraversable, setHover, setId, setInputMethodRequests, setLayoutX, setLayoutY, setManaged, setMouseTransparent, setNodeOrientation, setOnContextMenuRequested, setOnDragDetected, setOnDragDone, setOnDragDropped, setOnDragEntered, setOnDragExited, setOnDragOver, setOnInputMethodTextChanged, setOnKeyPressed, setOnKeyReleased, setOnKeyTyped, setOnMouseClicked, setOnMouseDragEntered, setOnMouseDragExited, setOnMouseDragged, setOnMouseDragOver, setOnMouseDragReleased, setOnMouseEntered, setOnMouseExited, setOnMouseMoved, setOnMousePressed, setOnMouseReleased, setOnRotate, setOnRotationFinished, setOnRotationStarted, setOnScroll, setOnScrollFinished, setOnScrollStarted, setOnSwipeDown, setOnSwipeLeft, setOnSwipeRight, setOnSwipeUp, setOnTouchMoved, setOnTouchPressed, setOnTouchReleased, setOnTouchStationary, setOnZoom, setOnZoomFinished, setOnZoomStarted, setOpacity, setPickOnBounds, setPressed, setRotate, setRotationAxis, setScaleX, setScaleY, setScaleZ, setStyle, setTranslateX, setTranslateY, setTranslateZ, setUserData, setViewOrder, setVisible, snapshot, snapshot, startDragAndDrop, startFullDrag, styleProperty, toBack, toFront, toString, translateXProperty, translateYProperty, translateZProperty, usesMirroring, viewOrderProperty, visibleProperty

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

    Methods inherited from interface javafx.css.Styleable

    getStyleableNode
  • Property Details

    • predicate

      public final javafx.beans.property.ReadOnlyObjectProperty<Predicate<S>> predicateProperty
      The predicate property is a read-only property that is representative of the current state of the filter list. The filter list contains the columns that have been added to it either programmatically or via a user clicking on the headers themselves.
      See Also:
    • filterPolicy

      public final javafx.beans.property.ObjectProperty<javafx.util.Callback<javafx.scene.control.TableView<S>,Boolean>> filterPolicyProperty
      The filter policy specifies how filtering in this FilteredTableView should be performed. For example, a basic filter policy may just call FXCollections.filter(tableView.getItems()), whereas a more advanced filter policy may call to a database to perform the necessary filtering on the server-side.

      FilteredTableView ships with a default filter policy that does precisely as mentioned above: it simply attempts to filter the items list in-place.

      It is recommended that rather than override the filter method that a different filter policy be provided instead.

      See Also:
    • onFilter

      public final javafx.beans.property.ObjectProperty<javafx.event.EventHandler<FilterEvent<javafx.scene.control.TableView<S>>>> onFilterProperty
      Called when there's a request to filter the control.
      See Also:
  • Field Details

    • DEFAULT_FILTER_POLICY

      public static final javafx.util.Callback<FilteredTableView,Boolean> DEFAULT_FILTER_POLICY
      The default filter policy that this FilteredTableView will use if no other policy is specified. The filter policy is a simple Callback that accepts a FilteredTableView as the sole argument and expects a Boolean response representing whether the filter succeeded (true) or not (false).
  • Constructor Details

    • FilteredTableView

      public FilteredTableView()
      Creates a FilteredTableView control.
    • FilteredTableView

      public FilteredTableView(javafx.collections.ObservableList<S> items)
  • Method Details

    • configureForFiltering

      public static <S> void configureForFiltering(FilteredTableView<S> tableView, javafx.collections.ObservableList<S> items)
      Convenient method to set the items for the FilteredTableView by wrapping them with a FilteredList and a SortedList, that are also bound properly to the table's predicateProperty() and TableView.comparatorProperty().
      Type Parameters:
      S - The type of the objects contained within the FilteredTableView items list
      Parameters:
      tableView - The FilteredTableView
      items - The items list
    • setBackingList

      public void setBackingList(javafx.collections.ObservableList<S> backingList)
      Sets the original observable list, before it is wrapped into a FilteredList and a SortedList. It is required to track the changes in the underlying data model (back-end, or cell editing)
      Parameters:
      backingList - The original ObservableList
      See Also:
    • getPredicate

      public final Predicate<S> getPredicate()
      Gets the value of the predicate property.
      Property description:
      The predicate property is a read-only property that is representative of the current state of the filter list. The filter list contains the columns that have been added to it either programmatically or via a user clicking on the headers themselves.
      Returns:
      the value of the predicate property
      See Also:
    • predicateProperty

      public final javafx.beans.property.ReadOnlyObjectProperty<Predicate<S>> predicateProperty()
      The predicate property is a read-only property that is representative of the current state of the filter list. The filter list contains the columns that have been added to it either programmatically or via a user clicking on the headers themselves.
      Returns:
      the predicate property
      See Also:
    • setFilterPolicy

      public final void setFilterPolicy(javafx.util.Callback<javafx.scene.control.TableView<S>,Boolean> callback)
      Sets the value of the filterPolicy property.
      Property description:
      The filter policy specifies how filtering in this FilteredTableView should be performed. For example, a basic filter policy may just call FXCollections.filter(tableView.getItems()), whereas a more advanced filter policy may call to a database to perform the necessary filtering on the server-side.

      FilteredTableView ships with a default filter policy that does precisely as mentioned above: it simply attempts to filter the items list in-place.

      It is recommended that rather than override the filter method that a different filter policy be provided instead.

      Parameters:
      callback - the value for the filterPolicy property
      See Also:
    • getFilterPolicy

      public final javafx.util.Callback<javafx.scene.control.TableView<S>,Boolean> getFilterPolicy()
      Gets the value of the filterPolicy property.
      Property description:
      The filter policy specifies how filtering in this FilteredTableView should be performed. For example, a basic filter policy may just call FXCollections.filter(tableView.getItems()), whereas a more advanced filter policy may call to a database to perform the necessary filtering on the server-side.

      FilteredTableView ships with a default filter policy that does precisely as mentioned above: it simply attempts to filter the items list in-place.

      It is recommended that rather than override the filter method that a different filter policy be provided instead.

      Returns:
      the value of the filterPolicy property
      See Also:
    • filterPolicyProperty

      public final javafx.beans.property.ObjectProperty<javafx.util.Callback<javafx.scene.control.TableView<S>,Boolean>> filterPolicyProperty()
      The filter policy specifies how filtering in this FilteredTableView should be performed. For example, a basic filter policy may just call FXCollections.filter(tableView.getItems()), whereas a more advanced filter policy may call to a database to perform the necessary filtering on the server-side.

      FilteredTableView ships with a default filter policy that does precisely as mentioned above: it simply attempts to filter the items list in-place.

      It is recommended that rather than override the filter method that a different filter policy be provided instead.

      Returns:
      the filterPolicy property
      See Also:
    • setOnFilter

      public final void setOnFilter(javafx.event.EventHandler<FilterEvent<javafx.scene.control.TableView<S>>> value)
      Sets the value of the onFilter property.
      Property description:
      Called when there's a request to filter the control.
      Parameters:
      value - the value for the onFilter property
      See Also:
    • getOnFilter

      public final javafx.event.EventHandler<FilterEvent<javafx.scene.control.TableView<S>>> getOnFilter()
      Gets the value of the onFilter property.
      Property description:
      Called when there's a request to filter the control.
      Returns:
      the value of the onFilter property
      See Also:
    • onFilterProperty

      public final javafx.beans.property.ObjectProperty<javafx.event.EventHandler<FilterEvent<javafx.scene.control.TableView<S>>>> onFilterProperty()
      Called when there's a request to filter the control.
      Returns:
      the onFilter property
      See Also:
    • resetFilter

      public void resetFilter()
      Resets all the filters applied, to both tableView and filtered columns
    • filter

      public void filter()
      The filter method forces the TableView to re-run its filtering algorithm. More often than not it is not necessary to call this method directly, as it is automatically called when the filter policy, or the state of the FilteredTableColumn filter predicate changes. In other words, this method should only be called directly when something external changes and a filter is required.