Class MultiColumnListView<T>

java.lang.Object
javafx.scene.Node
javafx.scene.Parent
javafx.scene.layout.Region
javafx.scene.control.Control
com.dlsc.gemsfx.MultiColumnListView<T>
Type Parameters:
T - the item types, e.g. "Issues" or "Tickets"

CSS Styleable Properties:

CSS Properties
PropertyTypeDescription
-fx-disable-drag-and-dropBooleanWhether to disable drag and drop.
-fx-show-headersBooleanWhether to show column headers.
All Implemented Interfaces:
javafx.css.Styleable, javafx.event.EventTarget, javafx.scene.control.Skinnable

public class MultiColumnListView<T> extends javafx.scene.control.Control
A view for displaying multiple columns where each column consists of a header control and a ListView. The control allows the user to rearrange the items in each ListView and also to drag and drop items from one column to another.

Internally the control wraps every model object inside an instance of MultiColumnListView.ColumnItem. This allows the control to create the two marker items that are used to visualize the "from" and the "to" location of a drag and drop operation all by itself. Applications only ever deal with their own model objects of type T.

In addition the view supports a placeholder node (see placeholderProperty()) which will be shown instead of the columns whenever the list of columns is empty. The default placeholder is a label that reads "No columns defined." and that is surrounded by a dashed border. The placeholder can be replaced with any other node or removed completely by setting the property to null.

Controlling drag and drop: two callbacks allow applications to restrict which items may be dragged and where they may be dropped. Both callbacks return true for everything by default, and drag and drop can be switched off completely via disableDragAndDropProperty().

Drag and drop callbacks
CallbackSignatureDescription
dragPossibleCallback Callback<T, Boolean> Invoked when the user starts to drag an item. The callback receives the model object of type T that is about to be dragged and returns true if the drag operation is allowed for that item. Returning false makes the item non-draggable.
dropPossibleCallback Callback<DropParameter<T>, Boolean> Invoked while the user drags an item over a possible drop location. The callback receives a MultiColumnListView.DropParameter which carries the dragged item (MultiColumnListView.DropParameter.getItem()) and the target column (MultiColumnListView.DropParameter.getColumn()). Returning false rejects the drop, so that neither the drop markers appear nor the drop itself is performed.

Example: only allow "done" items to be dragged and only allow drops into a column that is not full.

MultiColumnListView<Task> view = new MultiColumnListView<>();
view.setDragPossibleCallback(task -> task.isDone());
view.setDropPossibleCallback(param -> param.getColumn().getItems().size() < 10);

Drag and drop events: the view fires instances of MultiColumnListView.MultiColumnListViewEvent for all relevant steps of a drag and drop operation, including the steps that were vetoed by the two callbacks described above. Every event carries the dragged item (MultiColumnListView.MultiColumnListViewEvent.getDraggedItem()), the involved column (MultiColumnListView.MultiColumnListViewEvent.getColumn()), and the item index inside that column (MultiColumnListView.MultiColumnListViewEvent.getIndex()).

Event types
Event typeFired when
MultiColumnListView.MultiColumnListViewEvent.ANY Super type of all events fired by this control, useful for registering a single handler for all drag and drop events.
MultiColumnListView.MultiColumnListViewEvent.DRAG_STARTED The user started to drag an item and the dragPossibleCallback allowed it.
MultiColumnListView.MultiColumnListViewEvent.DRAG_NOT_POSSIBLE The user tried to drag an item but the dragPossibleCallback returned false.
MultiColumnListView.MultiColumnListViewEvent.DRAG_OVER A dragged item is hovering over a valid drop location.
MultiColumnListView.MultiColumnListViewEvent.DROP_NOT_POSSIBLE A dragged item is hovering over, or was dropped on, a location that the dropPossibleCallback rejected.
MultiColumnListView.MultiColumnListViewEvent.ITEM_MOVED An item was successfully dropped and hence moved to its new column and index.
MultiColumnListView.MultiColumnListViewEvent.DRAG_ENDED The drag operation has finished, no matter whether it was successful or not. This event type is currently not fired by the control itself and is meant to be used by applications that implement their own drag and drop handling.
view.addEventHandler(MultiColumnListViewEvent.ITEM_MOVED, evt ->
        System.out.println(evt.getDraggedItem() + " moved to index " + evt.getIndex()));
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static final class 
    A wrapper around the model objects shown by the MultiColumnListView control.
    static class 
    A special list cell to be used in combination with the MultiColumnListView control.
    static class 
    Parameters passed to the drop validation callback.
    static class 
    The model object representing a single column.
    static class 
    Represents an event specific to the MultiColumnListView component.
  • Property Summary

    Properties
    Type
    Property
    Description
    final javafx.beans.property.ObjectProperty<javafx.util.Callback<MultiColumnListView<T>, MultiColumnListView.ColumnListCell<T>>>
    The cell factory that will be used for each one of the ListView instances.
    final javafx.beans.property.ListProperty<MultiColumnListView.ListViewColumn<T>>
    A list of columns that define how many columns will be shown inside the view.
    final javafx.beans.property.BooleanProperty
    Controls whether the user can rearrange items via drag and drop or not.
    final javafx.beans.property.ObjectProperty<T>
    The item currently being dragged, or null if no drag operation is in progress.
    javafx.beans.property.ObjectProperty<javafx.util.Callback<T,Boolean>>
    The callback used to decide whether an item may be dragged.
    final javafx.beans.property.ObjectProperty<javafx.util.Callback<MultiColumnListView.DropParameter<T>, Boolean>>
    The callback used to decide whether a dragged item may be dropped on a column.
    final javafx.beans.property.ObjectProperty<javafx.util.Callback<MultiColumnListView<T>, javafx.scene.control.ListView<MultiColumnListView.ColumnItem<T>>>>
    Stores the callback that will be invoked to produce new ListView instances.
    final javafx.beans.property.ObjectProperty<LoadingPane.Status>
    Provides a property that holds the current loading status of the control.
    final javafx.beans.property.ObjectProperty<LoadingPane.Size>
    Represents the size of the loading status indicator used in the control.
    final javafx.beans.property.ObjectProperty<javafx.scene.Node>
    The node that will be shown instead of the columns when no columns have been added to the view (see columnsProperty()).
    final javafx.beans.property.ObjectProperty<javafx.scene.control.ProgressIndicator>
    The progress indicator that will be used to display percentage progress or the indeterminate state of the loading progress.
    final javafx.beans.property.ObjectProperty<javafx.util.Callback<Integer, javafx.scene.Node>>
    An optional factory for creating separators that will be placed between columns.
    final javafx.beans.property.BooleanProperty
    Determines whether the headers will be shown or not.

    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
  • Field Summary

    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
    Constructs a new view.
  • Method Summary

    Modifier and Type
    Method
    Description
    final javafx.beans.property.ObjectProperty<javafx.util.Callback<MultiColumnListView<T>, MultiColumnListView.ColumnListCell<T>>>
    The cell factory that will be used for each one of the ListView instances.
    final javafx.beans.property.ListProperty<MultiColumnListView.ListViewColumn<T>>
    A list of columns that define how many columns will be shown inside the view.
    protected javafx.scene.control.Skin<?>
     
    final javafx.beans.property.BooleanProperty
    Controls whether the user can rearrange items via drag and drop or not.
    final javafx.beans.property.ObjectProperty<T>
    The item currently being dragged, or null if no drag operation is in progress.
    javafx.beans.property.ObjectProperty<javafx.util.Callback<T,Boolean>>
    The callback used to decide whether an item may be dragged.
    final javafx.beans.property.ObjectProperty<javafx.util.Callback<MultiColumnListView.DropParameter<T>, Boolean>>
    The callback used to decide whether a dragged item may be dropped on a column.
    Gets the value of the cellFactory property.
    static List<javafx.css.CssMetaData<? extends javafx.css.Styleable, ?>>
    Returns the CSS metadata for this control class.
    final javafx.collections.ObservableList<MultiColumnListView.ListViewColumn<T>>
    Gets the value of the columns property.
    List<javafx.css.CssMetaData<? extends javafx.css.Styleable, ?>>
     
    The wrapper of the item that is currently being dragged, or null if no drag operation is in progress.
    final T
    Gets the value of the draggedItem property.
    final javafx.collections.ObservableList<T>
    Returns the items currently involved in a drag operation.
    javafx.util.Callback<T,Boolean>
    Gets the value of the dragPossibleCallback property.
    final javafx.util.Callback<MultiColumnListView.DropParameter<T>, Boolean>
    Gets the value of the dropPossibleCallback property.
    The item that is used to visualize the "from" location of an ongoing drag and drop operation.
    final javafx.util.Callback<MultiColumnListView<T>, javafx.scene.control.ListView<MultiColumnListView.ColumnItem<T>>>
    Gets the value of the listViewFactory property.
    Gets the value of the loadingStatus property.
    Gets the value of the loadingStatusSize property.
    final javafx.scene.Node
    Gets the value of the placeholder property.
    final javafx.scene.control.ProgressIndicator
    Gets the value of the progressIndicator property.
    final javafx.util.Callback<Integer, javafx.scene.Node>
    Gets the value of the separatorFactory property.
    The item that is used to visualize the "to" location of an ongoing drag and drop operation.
     
    final boolean
    Gets the value of the disableDragAndDrop property.
    final boolean
    Gets the value of the showHeaders property.
    final javafx.beans.property.ObjectProperty<javafx.util.Callback<MultiColumnListView<T>, javafx.scene.control.ListView<MultiColumnListView.ColumnItem<T>>>>
    Stores the callback that will be invoked to produce new ListView instances.
    final javafx.beans.property.ObjectProperty<LoadingPane.Status>
    Provides a property that holds the current loading status of the control.
    final javafx.beans.property.ObjectProperty<LoadingPane.Size>
    Represents the size of the loading status indicator used in the control.
    final javafx.beans.property.ObjectProperty<javafx.scene.Node>
    The node that will be shown instead of the columns when no columns have been added to the view (see columnsProperty()).
    final javafx.beans.property.ObjectProperty<javafx.scene.control.ProgressIndicator>
    The progress indicator that will be used to display percentage progress or the indeterminate state of the loading progress.
    final javafx.beans.property.ObjectProperty<javafx.util.Callback<Integer, javafx.scene.Node>>
    An optional factory for creating separators that will be placed between columns.
    final void
    Sets the value of the cellFactory property.
    final void
    setColumns(javafx.collections.ObservableList<MultiColumnListView.ListViewColumn<T>> columns)
    Sets the value of the columns property.
    final void
    setDisableDragAndDrop(boolean disableDragAndDrop)
    Sets the value of the disableDragAndDrop property.
    final void
    setDraggedItem(T draggedItem)
    Sets the value of the draggedItem property.
    void
    setDragPossibleCallback(javafx.util.Callback<T,Boolean> dragPossibleCallback)
    Sets the value of the dragPossibleCallback property.
    final void
    setDropPossibleCallback(javafx.util.Callback<MultiColumnListView.DropParameter<T>, Boolean> dropPossibleCallback)
    Sets the value of the dropPossibleCallback property.
    final void
    setListViewFactory(javafx.util.Callback<MultiColumnListView<T>, javafx.scene.control.ListView<MultiColumnListView.ColumnItem<T>>> listViewFactory)
    Sets the value of the listViewFactory property.
    final void
    Sets the value of the loadingStatus property.
    final void
    Sets the value of the loadingStatusSize property.
    final void
    setPlaceholder(javafx.scene.Node placeholder)
    Sets the value of the placeholder property.
    final void
    setProgressIndicator(javafx.scene.control.ProgressIndicator progressIndicator)
    Sets the value of the progressIndicator property.
    final void
    setSeparatorFactory(javafx.util.Callback<Integer, javafx.scene.Node> separatorFactory)
    Sets the value of the separatorFactory property.
    final void
    setShowHeaders(boolean showHeaders)
    Sets the value of the showHeaders property.
    final javafx.beans.property.BooleanProperty
    Determines whether the headers will be shown or not.

    Methods inherited from class javafx.scene.control.Control

    computeMaxHeight, computeMaxWidth, computeMinHeight, computeMinWidth, computePrefHeight, computePrefWidth, contextMenuProperty, executeAccessibleAction, getBaselineOffset, getContextMenu, getCssMetaData, getInitialFocusTraversable, getSkin, getTooltip, isResizable, layoutChildren, queryAccessibleAttribute, 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 Object

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

    Methods inherited from interface javafx.css.Styleable

    getStyleableNode
  • Property Details

  • Constructor Details

    • MultiColumnListView

      public MultiColumnListView()
      Constructs a new view.
  • Method Details

    • createDefaultSkin

      protected javafx.scene.control.Skin<?> createDefaultSkin()
      Overrides:
      createDefaultSkin in class javafx.scene.control.Control
    • getUserAgentStylesheet

      public String getUserAgentStylesheet()
      Overrides:
      getUserAgentStylesheet in class javafx.scene.layout.Region
    • getDropPossibleCallback

      public final javafx.util.Callback<MultiColumnListView.DropParameter<T>, Boolean> getDropPossibleCallback()
      Gets the value of the dropPossibleCallback property.
      Property description:
      The callback used to decide whether a dragged item may be dropped on a column.
      Returns:
      the value of the dropPossibleCallback property
      See Also:
    • dropPossibleCallbackProperty

      public final javafx.beans.property.ObjectProperty<javafx.util.Callback<MultiColumnListView.DropParameter<T>, Boolean>> dropPossibleCallbackProperty()
      The callback used to decide whether a dragged item may be dropped on a column.
      Returns:
      the drop validation callback property
      See Also:
    • setDropPossibleCallback

      public final void setDropPossibleCallback(javafx.util.Callback<MultiColumnListView.DropParameter<T>, Boolean> dropPossibleCallback)
      Sets the value of the dropPossibleCallback property.
      Property description:
      The callback used to decide whether a dragged item may be dropped on a column.
      Parameters:
      dropPossibleCallback - the value for the dropPossibleCallback property
      See Also:
    • getDragPossibleCallback

      public javafx.util.Callback<T,Boolean> getDragPossibleCallback()
      Gets the value of the dragPossibleCallback property.
      Property description:
      The callback used to decide whether an item may be dragged.
      Returns:
      the value of the dragPossibleCallback property
      See Also:
    • dragPossibleCallbackProperty

      public javafx.beans.property.ObjectProperty<javafx.util.Callback<T,Boolean>> dragPossibleCallbackProperty()
      The callback used to decide whether an item may be dragged.
      Returns:
      the drag validation callback property
      See Also:
    • setDragPossibleCallback

      public void setDragPossibleCallback(javafx.util.Callback<T,Boolean> dragPossibleCallback)
      Sets the value of the dragPossibleCallback property.
      Property description:
      The callback used to decide whether an item may be dragged.
      Parameters:
      dragPossibleCallback - the value for the dragPossibleCallback property
      See Also:
    • getProgressIndicator

      public final javafx.scene.control.ProgressIndicator getProgressIndicator()
      Gets the value of the progressIndicator property.
      Property description:
      The progress indicator that will be used to display percentage progress or the indeterminate state of the loading progress.
      Returns:
      the value of the progressIndicator property
      See Also:
    • progressIndicatorProperty

      public final javafx.beans.property.ObjectProperty<javafx.scene.control.ProgressIndicator> progressIndicatorProperty()
      The progress indicator that will be used to display percentage progress or the indeterminate state of the loading progress.
      Returns:
      the progress indicator
      See Also:
    • setProgressIndicator

      public final void setProgressIndicator(javafx.scene.control.ProgressIndicator progressIndicator)
      Sets the value of the progressIndicator property.
      Property description:
      The progress indicator that will be used to display percentage progress or the indeterminate state of the loading progress.
      Parameters:
      progressIndicator - the value for the progressIndicator property
      See Also:
    • getLoadingStatus

      public final LoadingPane.Status getLoadingStatus()
      Gets the value of the loadingStatus property.
      Property description:
      Provides a property that holds the current loading status of the control. This status indicates whether the control is in a loading state, displaying an error, or ready to display the content.
      Returns:
      the value of the loadingStatus property
      See Also:
    • loadingStatusProperty

      public final javafx.beans.property.ObjectProperty<LoadingPane.Status> loadingStatusProperty()
      Provides a property that holds the current loading status of the control. This status indicates whether the control is in a loading state, displaying an error, or ready to display the content.
      Returns:
      an ObjectProperty representing the LoadingPane.Status of the control
      See Also:
    • setLoadingStatus

      public final void setLoadingStatus(LoadingPane.Status loadingStatus)
      Sets the value of the loadingStatus property.
      Property description:
      Provides a property that holds the current loading status of the control. This status indicates whether the control is in a loading state, displaying an error, or ready to display the content.
      Parameters:
      loadingStatus - the value for the loadingStatus property
      See Also:
    • getLoadingStatusSize

      public final LoadingPane.Size getLoadingStatusSize()
      Gets the value of the loadingStatusSize property.
      Property description:
      Represents the size of the loading status indicator used in the control. This property determines the visual size (e.g., SMALL, MEDIUM, LARGE) of the loading status and can be updated dynamically to reflect size changes in the UI.

      The default value is Size.MEDIUM.

      Returns:
      the value of the loadingStatusSize property
      See Also:
    • loadingStatusSizeProperty

      public final javafx.beans.property.ObjectProperty<LoadingPane.Size> loadingStatusSizeProperty()
      Represents the size of the loading status indicator used in the control. This property determines the visual size (e.g., SMALL, MEDIUM, LARGE) of the loading status and can be updated dynamically to reflect size changes in the UI.

      The default value is Size.MEDIUM.

      Returns:
      the loadingStatusSize property
      See Also:
    • setLoadingStatusSize

      public final void setLoadingStatusSize(LoadingPane.Size loadingStatusSize)
      Sets the value of the loadingStatusSize property.
      Property description:
      Represents the size of the loading status indicator used in the control. This property determines the visual size (e.g., SMALL, MEDIUM, LARGE) of the loading status and can be updated dynamically to reflect size changes in the UI.

      The default value is Size.MEDIUM.

      Parameters:
      loadingStatusSize - the value for the loadingStatusSize property
      See Also:
    • isShowHeaders

      public final boolean isShowHeaders()
      Gets the value of the showHeaders property.
      Property description:
      Determines whether the headers will be shown or not. Toggling this property will trigger a rebuild of the view.

      Can be set via CSS using the -fx-show-headers property. Valid values are: true, false. The default value is true.

      Returns:
      the value of the showHeaders property
      See Also:
    • showHeadersProperty

      public final javafx.beans.property.BooleanProperty showHeadersProperty()
      Determines whether the headers will be shown or not. Toggling this property will trigger a rebuild of the view.

      Can be set via CSS using the -fx-show-headers property. Valid values are: true, false. The default value is true.

      Returns:
      true if the headers should be shown
      See Also:
    • setShowHeaders

      public final void setShowHeaders(boolean showHeaders)
      Sets the value of the showHeaders property.
      Property description:
      Determines whether the headers will be shown or not. Toggling this property will trigger a rebuild of the view.

      Can be set via CSS using the -fx-show-headers property. Valid values are: true, false. The default value is true.

      Parameters:
      showHeaders - the value for the showHeaders property
      See Also:
    • getListViewFactory

      public final javafx.util.Callback<MultiColumnListView<T>, javafx.scene.control.ListView<MultiColumnListView.ColumnItem<T>>> getListViewFactory()
      Gets the value of the listViewFactory property.
      Property description:
      Stores the callback that will be invoked to produce new ListView instances.
      Returns:
      the value of the listViewFactory property
      See Also:
    • listViewFactoryProperty

      public final javafx.beans.property.ObjectProperty<javafx.util.Callback<MultiColumnListView<T>, javafx.scene.control.ListView<MultiColumnListView.ColumnItem<T>>>> listViewFactoryProperty()
      Stores the callback that will be invoked to produce new ListView instances.
      Returns:
      the factory for creating the required list views, one for each column
      See Also:
    • setListViewFactory

      public final void setListViewFactory(javafx.util.Callback<MultiColumnListView<T>, javafx.scene.control.ListView<MultiColumnListView.ColumnItem<T>>> listViewFactory)
      Sets the value of the listViewFactory property.
      Property description:
      Stores the callback that will be invoked to produce new ListView instances.
      Parameters:
      listViewFactory - the value for the listViewFactory property
      See Also:
    • getColumns

      public final javafx.collections.ObservableList<MultiColumnListView.ListViewColumn<T>> getColumns()
      Gets the value of the columns property.
      Property description:
      A list of columns that define how many columns will be shown inside the view. The model objects in this list also store the header and the data for each column.
      Returns:
      the value of the columns property
      See Also:
    • columnsProperty

      public final javafx.beans.property.ListProperty<MultiColumnListView.ListViewColumn<T>> columnsProperty()
      A list of columns that define how many columns will be shown inside the view. The model objects in this list also store the header and the data for each column.
      Returns:
      the list of columns
      See Also:
    • setColumns

      public final void setColumns(javafx.collections.ObservableList<MultiColumnListView.ListViewColumn<T>> columns)
      Sets the value of the columns property.
      Property description:
      A list of columns that define how many columns will be shown inside the view. The model objects in this list also store the header and the data for each column.
      Parameters:
      columns - the value for the columns property
      See Also:
    • getPlaceholder

      public final javafx.scene.Node getPlaceholder()
      Gets the value of the placeholder property.
      Property description:
      The node that will be shown instead of the columns when no columns have been added to the view (see columnsProperty()). The default placeholder is a label that reads "No columns defined." and that is surrounded by a dashed border.

      The placeholder node will be resized to fill the entire area of the control. No placeholder will be shown if this property is set to null. The placeholder will also not be shown while the control is loading or showing an error (see loadingStatusProperty()).

      Returns:
      the value of the placeholder property
      See Also:
    • placeholderProperty

      public final javafx.beans.property.ObjectProperty<javafx.scene.Node> placeholderProperty()
      The node that will be shown instead of the columns when no columns have been added to the view (see columnsProperty()). The default placeholder is a label that reads "No columns defined." and that is surrounded by a dashed border.

      The placeholder node will be resized to fill the entire area of the control. No placeholder will be shown if this property is set to null. The placeholder will also not be shown while the control is loading or showing an error (see loadingStatusProperty()).

      Returns:
      the node shown when the view does not have any columns
      See Also:
    • setPlaceholder

      public final void setPlaceholder(javafx.scene.Node placeholder)
      Sets the value of the placeholder property.
      Property description:
      The node that will be shown instead of the columns when no columns have been added to the view (see columnsProperty()). The default placeholder is a label that reads "No columns defined." and that is surrounded by a dashed border.

      The placeholder node will be resized to fill the entire area of the control. No placeholder will be shown if this property is set to null. The placeholder will also not be shown while the control is loading or showing an error (see loadingStatusProperty()).

      Parameters:
      placeholder - the value for the placeholder property
      See Also:
    • getCellFactory

      public final javafx.util.Callback<MultiColumnListView<T>, MultiColumnListView.ColumnListCell<T>> getCellFactory()
      Gets the value of the cellFactory property.
      Property description:
      The cell factory that will be used for each one of the ListView instances. The default factory produces MultiColumnListView.ColumnListCell instances which show the item inside a pane with a dashed border and a centered label.
      Returns:
      the value of the cellFactory property
      See Also:
    • cellFactoryProperty

      public final javafx.beans.property.ObjectProperty<javafx.util.Callback<MultiColumnListView<T>, MultiColumnListView.ColumnListCell<T>>> cellFactoryProperty()
      The cell factory that will be used for each one of the ListView instances. The default factory produces MultiColumnListView.ColumnListCell instances which show the item inside a pane with a dashed border and a centered label.
      Returns:
      the cell factory
      See Also:
    • setCellFactory

      public final void setCellFactory(javafx.util.Callback<MultiColumnListView<T>, MultiColumnListView.ColumnListCell<T>> cellFactory)
      Sets the value of the cellFactory property.
      Property description:
      The cell factory that will be used for each one of the ListView instances. The default factory produces MultiColumnListView.ColumnListCell instances which show the item inside a pane with a dashed border and a centered label.
      Parameters:
      cellFactory - the value for the cellFactory property
      See Also:
    • getSeparatorFactory

      public final javafx.util.Callback<Integer, javafx.scene.Node> getSeparatorFactory()
      Gets the value of the separatorFactory property.
      Property description:
      An optional factory for creating separators that will be placed between columns. The default implementation creates a region and adds the style class "column-separator". No separators will be added to the view when the factory is being set to null.
      Returns:
      the value of the separatorFactory property
      See Also:
    • separatorFactoryProperty

      public final javafx.beans.property.ObjectProperty<javafx.util.Callback<Integer, javafx.scene.Node>> separatorFactoryProperty()
      An optional factory for creating separators that will be placed between columns. The default implementation creates a region and adds the style class "column-separator". No separators will be added to the view when the factory is being set to null.
      Returns:
      a separator node
      See Also:
    • setSeparatorFactory

      public final void setSeparatorFactory(javafx.util.Callback<Integer, javafx.scene.Node> separatorFactory)
      Sets the value of the separatorFactory property.
      Property description:
      An optional factory for creating separators that will be placed between columns. The default implementation creates a region and adds the style class "column-separator". No separators will be added to the view when the factory is being set to null.
      Parameters:
      separatorFactory - the value for the separatorFactory property
      See Also:
    • isDisableDragAndDrop

      public final boolean isDisableDragAndDrop()
      Gets the value of the disableDragAndDrop property.
      Property description:
      Controls whether the user can rearrange items via drag and drop or not.

      Can be set via CSS using the -fx-disable-drag-and-drop property. Valid values are: true, false. The default value is false.

      Returns:
      the value of the disableDragAndDrop property
      See Also:
    • disableDragAndDropProperty

      public final javafx.beans.property.BooleanProperty disableDragAndDropProperty()
      Controls whether the user can rearrange items via drag and drop or not.

      Can be set via CSS using the -fx-disable-drag-and-drop property. Valid values are: true, false. The default value is false.

      Returns:
      "true" if the control allows rearranging items via drag and drop
      See Also:
    • setDisableDragAndDrop

      public final void setDisableDragAndDrop(boolean disableDragAndDrop)
      Sets the value of the disableDragAndDrop property.
      Property description:
      Controls whether the user can rearrange items via drag and drop or not.

      Can be set via CSS using the -fx-disable-drag-and-drop property. Valid values are: true, false. The default value is false.

      Parameters:
      disableDragAndDrop - the value for the disableDragAndDrop property
      See Also:
    • getClassCssMetaData

      public static List<javafx.css.CssMetaData<? extends javafx.css.Styleable, ?>> getClassCssMetaData()
      Returns the CSS metadata for this control class.
      Returns:
      the CSS metadata
    • getControlCssMetaData

      public List<javafx.css.CssMetaData<? extends javafx.css.Styleable, ?>> getControlCssMetaData()
      Overrides:
      getControlCssMetaData in class javafx.scene.control.Control
    • getDraggedItem

      public final T getDraggedItem()
      Gets the value of the draggedItem property.
      Property description:
      The item currently being dragged, or null if no drag operation is in progress.
      Returns:
      the value of the draggedItem property
      See Also:
    • draggedItemProperty

      public final javafx.beans.property.ObjectProperty<T> draggedItemProperty()
      The item currently being dragged, or null if no drag operation is in progress.
      Returns:
      the dragged item property
      See Also:
    • setDraggedItem

      public final void setDraggedItem(T draggedItem)
      Sets the value of the draggedItem property.
      Property description:
      The item currently being dragged, or null if no drag operation is in progress.
      Parameters:
      draggedItem - the value for the draggedItem property
      See Also:
    • getDraggedItems

      public final javafx.collections.ObservableList<T> getDraggedItems()
      Returns the items currently involved in a drag operation.
      Returns:
      the dragged items
    • getFromPlaceholder

      public final MultiColumnListView.ColumnItem<T> getFromPlaceholder()
      The item that is used to visualize the "from" location of an ongoing drag and drop operation. The item is created and managed by the control itself.
      Returns:
      the "from" placeholder item
    • getToPlaceholder

      public final MultiColumnListView.ColumnItem<T> getToPlaceholder()
      The item that is used to visualize the "to" location of an ongoing drag and drop operation. The item is created and managed by the control itself.
      Returns:
      the "to" placeholder item
    • getDraggedColumnItem

      public final MultiColumnListView.ColumnItem<T> getDraggedColumnItem()
      The wrapper of the item that is currently being dragged, or null if no drag operation is in progress.
      Returns:
      the wrapper of the currently dragged item