Class VFXDefaultTableColumn<T,C extends VFXTableCell<T>>

java.lang.Object
javafx.scene.Node
javafx.scene.Parent
javafx.scene.layout.Region
javafx.scene.control.Control
javafx.scene.control.Labeled
io.github.palexdev.mfxcore.controls.Labeled<VFXTableColumnBehavior<T,C>>
io.github.palexdev.virtualizedfx.table.VFXTableColumn<T,C>
io.github.palexdev.virtualizedfx.table.defaults.VFXDefaultTableColumn<T,C>
All Implemented Interfaces:
io.github.palexdev.mfxcore.behavior.WithBehavior<VFXTableColumnBehavior<T,C>>, VFXStyleable, WithCellFactory<T,C>, javafx.css.Styleable, javafx.event.EventTarget, javafx.scene.control.Skinnable

public class VFXDefaultTableColumn<T,C extends VFXTableCell<T>> extends VFXTableColumn<T,C>
Concrete and simple implementation of VFXTableColumn. Has its own skin: VFXDefaultTableColumnSkin.

These are the features this default implementation offers:

- the iconAlignmentProperty() allows you to specify the column's icon position

- the enableOverlayProperty() makes the column display an extra node which can be used to indicate selection or hovering. By default, the node is not visible; you'll have to define its style in CSS. This behavior is defined in the default skin.

- the overlayOnHeaderProperty() makes the aforementioned node cover the column's header too

  • Property Summary

    Properties
    Type
    Property
    Description
    io.github.palexdev.mfxcore.base.properties.styleable.StyleableBooleanProperty
    Specifies whether the default skin should enable the overlay.
    javafx.css.StyleableObjectProperty<javafx.geometry.HPos>
    Specifies the side on which the icon will be placed.
    io.github.palexdev.mfxcore.base.properties.styleable.StyleableBooleanProperty
    Specifies whether the overlay should also cover the header of the column, the part where the text and the icon reside.

    Properties inherited from class io.github.palexdev.virtualizedfx.table.VFXTableColumn

    cellsCacheCapacity, gestureResizable, index, table

    Properties inherited from class io.github.palexdev.mfxcore.controls.Labeled

    behaviorProvider

    Properties inherited from class javafx.scene.control.Labeled

    alignment, contentDisplay, ellipsisString, font, graphic, graphicTextGap, labelPadding, lineSpacing, mnemonicParsing, textAlignment, textFill, textOverrun, text, textTruncated, 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, focusVisible, focusWithin, 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
    Modifier and Type
    Field
    Description
    static final javafx.css.PseudoClass
     

    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
     
     
    VFXDefaultTableColumn(String text, javafx.scene.Node graphic)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected io.github.palexdev.mfxcore.controls.SkinBase<?,?>
     
    io.github.palexdev.mfxcore.base.properties.styleable.StyleableBooleanProperty
    Specifies whether the default skin should enable the overlay.
    static List<javafx.css.CssMetaData<? extends javafx.css.Styleable,?>>
     
    List<javafx.css.CssMetaData<? extends javafx.css.Styleable,?>>
     
    javafx.geometry.HPos
    Gets the value of the iconAlignment property.
    javafx.css.StyleableObjectProperty<javafx.geometry.HPos>
    Specifies the side on which the icon will be placed.
    boolean
    Gets the value of the enableOverlay property.
    boolean
    Gets the value of the overlayOnHeader property.
    io.github.palexdev.mfxcore.base.properties.styleable.StyleableBooleanProperty
    Specifies whether the overlay should also cover the header of the column, the part where the text and the icon reside.
    void
    setEnableOverlay(boolean enableOverlay)
    Sets the value of the enableOverlay property.
    void
    setIconAlignment(javafx.geometry.HPos iconAlignment)
    Sets the value of the iconAlignment property.
    void
    setOverlayOnHeader(boolean overlayOnHeader)
    Sets the value of the overlayOnHeader property.

    Methods inherited from class io.github.palexdev.mfxcore.controls.Labeled

    behaviorProviderProperty, changeSkin, createDefaultSkin, getBehavior, getBehaviorProvider, sceneBuilderIntegration, setBehaviorProvider

    Methods inherited from class javafx.scene.control.Labeled

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

    Methods inherited from class javafx.scene.control.Control

    computeMaxHeight, computeMaxWidth, computeMinHeight, computeMinWidth, computePrefHeight, 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, 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, focusVisibleProperty, focusWithinProperty, 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, isFocusVisible, isFocusWithin, 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 java.lang.Object

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

    Methods inherited from interface javafx.css.Styleable

    getStyleableNode

    Methods inherited from interface io.github.palexdev.mfxcore.behavior.WithBehavior

    setDefaultBehaviorProvider

    Methods inherited from interface io.github.palexdev.virtualizedfx.base.WithCellFactory

    create, setCellFactory
  • Property Details

    • iconAlignment

      public javafx.css.StyleableObjectProperty<javafx.geometry.HPos> iconAlignmentProperty
      Specifies the side on which the icon will be placed.

      By setting the alignment to HPos.CENTER the default skin, VFXDefaultTableColumnSkin, will hide the text and show only the icon at the center.

      This is settable via CSS with the "-vfx-icon-alignment" property.
      See Also:
    • enableOverlay

      public io.github.palexdev.mfxcore.base.properties.styleable.StyleableBooleanProperty enableOverlayProperty
      Specifies whether the default skin should enable the overlay.

      VFXTable is organized by rows. This means that by default, there is no way in the UI to display when a column is selected or hovered by the mouse. The default skin allows to do this by adding an extra node that extends from the column all the way down to the table's bottom. This allows doing cool tricks with CSS.

      One thing to keep in mind, though, is that if you define a background color for the overlay, make sure that it is opaque otherwise it will end up covering the cells.

      This is also settable via CSS with the "-vfx-enable-overlay" property.
      See Also:
    • overlayOnHeader

      public io.github.palexdev.mfxcore.base.properties.styleable.StyleableBooleanProperty overlayOnHeaderProperty
      Specifies whether the overlay should also cover the header of the column, the part where the text and the icon reside.

      This is also settable via CSS with the "-vfx-overlay-on-header" property.
      See Also:
  • Field Details

    • DRAGGED

      public static final javafx.css.PseudoClass DRAGGED
  • Constructor Details

    • VFXDefaultTableColumn

      public VFXDefaultTableColumn()
    • VFXDefaultTableColumn

      public VFXDefaultTableColumn(String text)
    • VFXDefaultTableColumn

      public VFXDefaultTableColumn(String text, javafx.scene.Node graphic)
  • Method Details

    • buildSkin

      protected io.github.palexdev.mfxcore.controls.SkinBase<?,?> buildSkin()
      Specified by:
      buildSkin in class io.github.palexdev.mfxcore.controls.Labeled<VFXTableColumnBehavior<T,C extends VFXTableCell<T>>>
    • getIconAlignment

      public javafx.geometry.HPos getIconAlignment()
      Gets the value of the iconAlignment property.
      Property description:
      Specifies the side on which the icon will be placed.

      By setting the alignment to HPos.CENTER the default skin, VFXDefaultTableColumnSkin, will hide the text and show only the icon at the center.

      This is settable via CSS with the "-vfx-icon-alignment" property.
      Returns:
      the value of the iconAlignment property
      See Also:
    • iconAlignmentProperty

      public javafx.css.StyleableObjectProperty<javafx.geometry.HPos> iconAlignmentProperty()
      Specifies the side on which the icon will be placed.

      By setting the alignment to HPos.CENTER the default skin, VFXDefaultTableColumnSkin, will hide the text and show only the icon at the center.

      This is settable via CSS with the "-vfx-icon-alignment" property.
      Returns:
      the iconAlignment property
      See Also:
    • setIconAlignment

      public void setIconAlignment(javafx.geometry.HPos iconAlignment)
      Sets the value of the iconAlignment property.
      Property description:
      Specifies the side on which the icon will be placed.

      By setting the alignment to HPos.CENTER the default skin, VFXDefaultTableColumnSkin, will hide the text and show only the icon at the center.

      This is settable via CSS with the "-vfx-icon-alignment" property.
      Parameters:
      iconAlignment - the value for the iconAlignment property
      See Also:
    • isEnableOverlay

      public boolean isEnableOverlay()
      Gets the value of the enableOverlay property.
      Property description:
      Specifies whether the default skin should enable the overlay.

      VFXTable is organized by rows. This means that by default, there is no way in the UI to display when a column is selected or hovered by the mouse. The default skin allows to do this by adding an extra node that extends from the column all the way down to the table's bottom. This allows doing cool tricks with CSS.

      One thing to keep in mind, though, is that if you define a background color for the overlay, make sure that it is opaque otherwise it will end up covering the cells.

      This is also settable via CSS with the "-vfx-enable-overlay" property.
      Returns:
      the value of the enableOverlay property
      See Also:
    • enableOverlayProperty

      public io.github.palexdev.mfxcore.base.properties.styleable.StyleableBooleanProperty enableOverlayProperty()
      Specifies whether the default skin should enable the overlay.

      VFXTable is organized by rows. This means that by default, there is no way in the UI to display when a column is selected or hovered by the mouse. The default skin allows to do this by adding an extra node that extends from the column all the way down to the table's bottom. This allows doing cool tricks with CSS.

      One thing to keep in mind, though, is that if you define a background color for the overlay, make sure that it is opaque otherwise it will end up covering the cells.

      This is also settable via CSS with the "-vfx-enable-overlay" property.
      Returns:
      the enableOverlay property
      See Also:
    • setEnableOverlay

      public void setEnableOverlay(boolean enableOverlay)
      Sets the value of the enableOverlay property.
      Property description:
      Specifies whether the default skin should enable the overlay.

      VFXTable is organized by rows. This means that by default, there is no way in the UI to display when a column is selected or hovered by the mouse. The default skin allows to do this by adding an extra node that extends from the column all the way down to the table's bottom. This allows doing cool tricks with CSS.

      One thing to keep in mind, though, is that if you define a background color for the overlay, make sure that it is opaque otherwise it will end up covering the cells.

      This is also settable via CSS with the "-vfx-enable-overlay" property.
      Parameters:
      enableOverlay - the value for the enableOverlay property
      See Also:
    • isOverlayOnHeader

      public boolean isOverlayOnHeader()
      Gets the value of the overlayOnHeader property.
      Property description:
      Specifies whether the overlay should also cover the header of the column, the part where the text and the icon reside.

      This is also settable via CSS with the "-vfx-overlay-on-header" property.
      Returns:
      the value of the overlayOnHeader property
      See Also:
    • overlayOnHeaderProperty

      public io.github.palexdev.mfxcore.base.properties.styleable.StyleableBooleanProperty overlayOnHeaderProperty()
      Specifies whether the overlay should also cover the header of the column, the part where the text and the icon reside.

      This is also settable via CSS with the "-vfx-overlay-on-header" property.
      Returns:
      the overlayOnHeader property
      See Also:
    • setOverlayOnHeader

      public void setOverlayOnHeader(boolean overlayOnHeader)
      Sets the value of the overlayOnHeader property.
      Property description:
      Specifies whether the overlay should also cover the header of the column, the part where the text and the icon reside.

      This is also settable via CSS with the "-vfx-overlay-on-header" property.
      Parameters:
      overlayOnHeader - the value for the overlayOnHeader property
      See Also:
    • getControlCssMetaData

      public List<javafx.css.CssMetaData<? extends javafx.css.Styleable,?>> getControlCssMetaData()
      Overrides:
      getControlCssMetaData in class VFXTableColumn<T,C extends VFXTableCell<T>>
    • getClassCssMetaData

      public static List<javafx.css.CssMetaData<? extends javafx.css.Styleable,?>> getClassCssMetaData()