Class MultiColumnListView.ColumnListCell<T>

java.lang.Object
javafx.scene.Node
javafx.scene.Parent
javafx.scene.layout.Region
javafx.scene.control.Control
javafx.scene.control.Labeled
javafx.scene.control.Cell<MultiColumnListView.ColumnItem<T>>
javafx.scene.control.IndexedCell<MultiColumnListView.ColumnItem<T>>
javafx.scene.control.ListCell<MultiColumnListView.ColumnItem<T>>
com.dlsc.gemsfx.MultiColumnListView.ColumnListCell<T>
Type Parameters:
T - the type of the model objects shown by the list
All Implemented Interfaces:
javafx.css.Styleable, javafx.event.EventTarget, javafx.scene.control.Skinnable
Enclosing class:
MultiColumnListView<T>

public static class MultiColumnListView.ColumnListCell<T> extends javafx.scene.control.ListCell<MultiColumnListView.ColumnItem<T>>
A special list cell to be used in combination with the MultiColumnListView control. The cell adds drag and drop support for re-arranging list cells and for dragging them from one column to another.

The cells of the control show instances of MultiColumnListView.ColumnItem, which are wrappers around the application's model objects. Subclasses do not have to deal with these wrappers as they can simply override updateUserObject(Object, boolean) which receives the model object itself. The model object will be null whenever the cell shows one of the two placeholders used during drag and drop (see placeholderProperty(), fromPlaceholderProperty(), toPlaceholderProperty()).

  • Property Summary

    Properties
    Type
    Property
    Description
    final javafx.beans.property.ReadOnlyBooleanProperty
    A read-only property that is being set to true if the item in the cell is currently the "from" placeholder item.
    final javafx.beans.property.ReadOnlyBooleanProperty
    A read-only property that is being set to true if the item in the cell is currently either the "from" or the "to" placeholder item used during drag and drop operations.
    final javafx.beans.property.ReadOnlyBooleanProperty
    A read-only property that is being set to true if the item in the cell is currently the "to" placeholder item.

    Properties inherited from class javafx.scene.control.ListCell

    listView

    Properties inherited from class javafx.scene.control.IndexedCell

    index

    Properties inherited from class javafx.scene.control.Cell

    editable, editing, empty, item, selected

    Properties inherited from class javafx.scene.control.Labeled

    alignment, contentDisplay, ellipsisString, font, graphic, graphicTextGap, labelPadding, lineSpacing, mnemonicParsing, textAlignment, textFill, textOverrun, text, underline, wrapText

    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
    ColumnListCell(MultiColumnListView<T> multiColumnListView)
    Creates a new list cell.
  • Method Summary

    Modifier and Type
    Method
    Description
    final javafx.beans.property.ReadOnlyBooleanProperty
    A read-only property that is being set to true if the item in the cell is currently the "from" placeholder item.
    Returns the column containing this cell.
    protected final javafx.scene.control.Label
    Returns the label that is used by the default implementation of updateUserObject(Object, boolean) to show the text of the cell.
    protected final javafx.scene.layout.StackPane
    Returns the pane that is used as the graphic of the cell by the default implementation of updateUserObject(Object, boolean).
    Returns the MultiColumnListView control where the cell is being used.
    protected javafx.scene.Node
    Retrieves the node that will be used to create a drag image via the Node.snapshot(SnapshotParameters, WritableImage) method.
    final T
    Returns the model object currently shown by this cell.
    final boolean
    Gets the value of the fromPlaceholder property.
    final boolean
    Gets the value of the placeholder property.
    final boolean
    Gets the value of the toPlaceholder property.
    final javafx.beans.property.ReadOnlyBooleanProperty
    A read-only property that is being set to true if the item in the cell is currently either the "from" or the "to" placeholder item used during drag and drop operations.
    final javafx.beans.property.ReadOnlyBooleanProperty
    A read-only property that is being set to true if the item in the cell is currently the "to" placeholder item.
    void
    Updates the column reference used by this cell.
    protected final void
     
    protected void
    updateUserObject(T userObject, boolean empty)
    Updates the cell for the given model object.

    Methods inherited from class javafx.scene.control.ListCell

    cancelEdit, commitEdit, createDefaultSkin, executeAccessibleAction, getListView, listViewProperty, queryAccessibleAttribute, startEdit, updateListView

    Methods inherited from class javafx.scene.control.IndexedCell

    getIndex, indexProperty, updateIndex

    Methods inherited from class javafx.scene.control.Cell

    editableProperty, editingProperty, emptyProperty, getInitialFocusTraversable, getItem, isEditable, isEditing, isEmpty, isItemChanged, isSelected, itemProperty, layoutChildren, selectedProperty, setEditable, setItem, updateSelected

    Methods inherited from class javafx.scene.control.Labeled

    alignmentProperty, contentDisplayProperty, ellipsisStringProperty, fontProperty, getAlignment, getClassCssMetaData, getContentBias, getContentDisplay, getControlCssMetaData, getEllipsisString, getFont, getGraphic, getGraphicTextGap, getInitialAlignment, getLabelPadding, getLineSpacing, getText, getTextAlignment, getTextFill, getTextOverrun, graphicProperty, graphicTextGapProperty, isMnemonicParsing, isUnderline, isWrapText, labelPaddingProperty, lineSpacingProperty, mnemonicParsingProperty, setAlignment, setContentDisplay, setEllipsisString, setFont, setGraphic, setGraphicTextGap, setLineSpacing, setMnemonicParsing, setText, setTextAlignment, setTextFill, setTextOverrun, setUnderline, setWrapText, textAlignmentProperty, textFillProperty, textOverrunProperty, textProperty, toString, underlineProperty, wrapTextProperty

    Methods inherited from class javafx.scene.control.Control

    computeMaxHeight, computeMaxWidth, computeMinHeight, computeMinWidth, computePrefHeight, computePrefWidth, contextMenuProperty, getBaselineOffset, getContextMenu, getCssMetaData, getSkin, getTooltip, isResizable, 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, getUserAgentStylesheet, 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, 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, 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

    • placeholder

      public final javafx.beans.property.ReadOnlyBooleanProperty placeholderProperty
      A read-only property that is being set to true if the item in the cell is currently either the "from" or the "to" placeholder item used during drag and drop operations.
      See Also:
    • fromPlaceholder

      public final javafx.beans.property.ReadOnlyBooleanProperty fromPlaceholderProperty
      A read-only property that is being set to true if the item in the cell is currently the "from" placeholder item.
      See Also:
    • toPlaceholder

      public final javafx.beans.property.ReadOnlyBooleanProperty toPlaceholderProperty
      A read-only property that is being set to true if the item in the cell is currently the "to" placeholder item.
      See Also:
  • Constructor Details

    • ColumnListCell

      public ColumnListCell(MultiColumnListView<T> multiColumnListView)
      Creates a new list cell.
      Parameters:
      multiColumnListView - reference to the MultiColumnListView control where the cell is being used
  • Method Details

    • getColumn

      public final MultiColumnListView.ListViewColumn<T> getColumn()
      Returns the column containing this cell.
      Returns:
      the column containing this cell
    • getUserObject

      public final T getUserObject()
      Returns the model object currently shown by this cell. The method returns null if the cell is empty or if the cell currently shows one of the two drag and drop placeholders.
      Returns:
      the model object shown by this cell
    • getSnapshotNode

      protected javafx.scene.Node getSnapshotNode()
      Retrieves the node that will be used to create a drag image via the Node.snapshot(SnapshotParameters, WritableImage) method.
      Returns:
      the snapshot node
    • getMultiColumnListView

      public final MultiColumnListView<T> getMultiColumnListView()
      Returns the MultiColumnListView control where the cell is being used.
      Returns:
      the parent control
    • updateItem

      protected final void updateItem(MultiColumnListView.ColumnItem<T> item, boolean empty)
      Overrides:
      updateItem in class javafx.scene.control.Cell<MultiColumnListView.ColumnItem<T>>
    • updateUserObject

      protected void updateUserObject(T userObject, boolean empty)
      Updates the cell for the given model object. This method will be called by the cell whenever its item changes. Subclasses should override this method instead of updateItem(ColumnItem, boolean), which is final.

      The given model object will be null when the cell is empty or when the cell currently shows one of the two drag and drop placeholders. Use isFromPlaceholder() and isToPlaceholder() to distinguish these cases.

      The default implementation does not use the text of the cell but rather shows a "rich" graphic (see getContentPane()): a pane with a dashed border that contains a centered label (see getContentLabel()). Subclasses that override this method can either keep using that pane, replace the graphic with a node of their own, or simply call Labeled.setText(String) for a text-only cell.

      Parameters:
      userObject - the model object shown by this cell, possibly null
      empty - true if the cell is empty
    • getContentLabel

      protected final javafx.scene.control.Label getContentLabel()
      Returns the label that is used by the default implementation of updateUserObject(Object, boolean) to show the text of the cell. The label is centered inside the content pane and uses the style class "content-label".
      Returns:
      the label showing the text of the cell
    • getContentPane

      protected final javafx.scene.layout.StackPane getContentPane()
      Returns the pane that is used as the graphic of the cell by the default implementation of updateUserObject(Object, boolean). The pane uses the style class "content-pane", is styled with a dashed border, and centers the content label. The pane always spans the entire width of the cell.
      Returns:
      the pane used as the graphic of the cell
    • isPlaceholder

      public final boolean isPlaceholder()
      Gets the value of the placeholder property.
      Property description:
      A read-only property that is being set to true if the item in the cell is currently either the "from" or the "to" placeholder item used during drag and drop operations.
      Returns:
      the value of the placeholder property
      See Also:
    • placeholderProperty

      public final javafx.beans.property.ReadOnlyBooleanProperty placeholderProperty()
      A read-only property that is being set to true if the item in the cell is currently either the "from" or the "to" placeholder item used during drag and drop operations.
      Returns:
      true if the currently shown item is either the "from" or the "to" placeholder object
      See Also:
    • isFromPlaceholder

      public final boolean isFromPlaceholder()
      Gets the value of the fromPlaceholder property.
      Property description:
      A read-only property that is being set to true if the item in the cell is currently the "from" placeholder item.
      Returns:
      the value of the fromPlaceholder property
      See Also:
    • fromPlaceholderProperty

      public final javafx.beans.property.ReadOnlyBooleanProperty fromPlaceholderProperty()
      A read-only property that is being set to true if the item in the cell is currently the "from" placeholder item.
      Returns:
      true if the currently shown item is the "from" placeholder object
      See Also:
    • isToPlaceholder

      public final boolean isToPlaceholder()
      Gets the value of the toPlaceholder property.
      Property description:
      A read-only property that is being set to true if the item in the cell is currently the "to" placeholder item.
      Returns:
      the value of the toPlaceholder property
      See Also:
    • toPlaceholderProperty

      public final javafx.beans.property.ReadOnlyBooleanProperty toPlaceholderProperty()
      A read-only property that is being set to true if the item in the cell is currently the "to" placeholder item.
      Returns:
      true if the currently shown item is the "to" placeholder object
      See Also:
    • updateColumn

      public void updateColumn(MultiColumnListView.ListViewColumn<T> column)
      Updates the column reference used by this cell.
      Parameters:
      column - the column containing this cell