- java.lang.Object
-
- javafx.scene.Node
-
- javafx.scene.Parent
-
- javafx.scene.layout.Region
-
- javafx.scene.layout.Pane
-
- javafx.scene.layout.StackPane
-
- javafx.scene.control.skin.TableHeaderRow
-
- All Implemented Interfaces:
Styleable
,EventTarget
public class TableHeaderRow extends StackPane
Region responsible for painting the entire row of column headers.- Since:
- 9
- See Also:
TableView
,TableViewSkin
,TreeTableView
,TreeTableViewSkin
-
-
Property Summary
Properties Type Property Description BooleanProperty
reordering
Indicates if a reordering operation of a column is in progress.-
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 TableHeaderRow(TableViewSkinBase skin)
Creates a new TableHeaderRow instance to visually represent the column header area of controls such asTableView
andTreeTableView
.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected double
computeMinHeight(double width)
Computes the minimum height of this region.protected double
computePrefHeight(double width)
Computes the preferred height of this region for the given width; Region subclasses should override this method to return an appropriate value based on their content and layout strategy.protected double
computePrefWidth(double height)
Computes the preferred width of this region for the given height.protected NestedTableColumnHeader
createRootHeader()
Creates a new NestedTableColumnHeader instance.protected TableColumnHeader
getReorderingRegion()
Returns the currentTableColumnHeader
being moved during reordering.NestedTableColumnHeader
getRootHeader()
Returns the root header for all columns.boolean
isReordering()
Gets the value of the property reordering.protected void
layoutChildren()
Invoked during the layout pass to layout the children in thisParent
.BooleanProperty
reorderingProperty()
Indicates if a reordering operation of a column is in progress.void
setReordering(boolean value)
Sets the value of the property reordering.protected void
setReorderingRegion(TableColumnHeader reorderingRegion)
Sets theTableColumnHeader
that is being moved during a reordering operation.protected void
updateScrollX()
Called whenever the value of the horizontal scrollbar changes in order to request layout changes, shifting theTableColumnHeader
s.protected void
updateTableWidth()
Updates the table width when a resize operation occurs.-
Methods inherited from class javafx.scene.layout.StackPane
alignmentProperty, clearConstraints, computeMinWidth, getAlignment, getAlignment, getClassCssMetaData, getContentBias, getCssMetaData, getMargin, requestLayout, setAlignment, setAlignment, setMargin
-
Methods inherited from class javafx.scene.layout.Pane
getChildren
-
Methods inherited from class javafx.scene.layout.Region
backgroundProperty, borderProperty, cacheShapeProperty, centerShapeProperty, computeMaxHeight, computeMaxWidth, getBackground, getBorder, getHeight, getInsets, getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, getOpaqueInsets, getPadding, getPrefHeight, getPrefWidth, getShape, getUserAgentStylesheet, getWidth, heightProperty, insetsProperty, isCacheShape, isCenterShape, isResizable, 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
getBaselineOffset, getChildrenUnmodifiable, getManagedChildren, getStylesheets, isNeedsLayout, layout, lookup, needsLayoutProperty, queryAccessibleAttribute, 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, executeAccessibleAction, fireEvent, focusedProperty, focusTraversableProperty, getAccessibleHelp, getAccessibleRole, getAccessibleRoleDescription, getAccessibleText, getBlendMode, getBoundsInLocal, getBoundsInParent, getCacheHint, getClip, getCursor, getDepthTest, getEffect, getEffectiveNodeOrientation, getEventDispatcher, getId, getInitialCursor, getInitialFocusTraversable, 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 Detail
-
reordering
public final BooleanProperty reorderingProperty
Indicates if a reordering operation of a column is in progress. The value istrue
during a column reordering operation, andfalse
otherwise. When a column is reordered (for example, by dragging its header), this property is updated automatically. Setting the value manually should be done when a subclass overrides the default reordering behavior. CallingsetReorderingRegion(TableColumnHeader)
before setting this property is required as well.- Since:
- 12
- See Also:
isReordering()
,setReordering(boolean)
-
-
Constructor Detail
-
TableHeaderRow
public TableHeaderRow(TableViewSkinBase skin)
Creates a new TableHeaderRow instance to visually represent the column header area of controls such asTableView
andTreeTableView
.- Parameters:
skin
- The skin used by the UI control.
-
-
Method Detail
-
setReordering
public final void setReordering(boolean value)
Sets the value of the property reordering.- Property description:
- Indicates if a reordering operation of a column is in progress. The value is
true
during a column reordering operation, andfalse
otherwise. When a column is reordered (for example, by dragging its header), this property is updated automatically. Setting the value manually should be done when a subclass overrides the default reordering behavior. CallingsetReorderingRegion(TableColumnHeader)
before setting this property is required as well. - Since:
- 12
-
isReordering
public final boolean isReordering()
Gets the value of the property reordering.- Property description:
- Indicates if a reordering operation of a column is in progress. The value is
true
during a column reordering operation, andfalse
otherwise. When a column is reordered (for example, by dragging its header), this property is updated automatically. Setting the value manually should be done when a subclass overrides the default reordering behavior. CallingsetReorderingRegion(TableColumnHeader)
before setting this property is required as well. - Since:
- 12
-
reorderingProperty
public final BooleanProperty reorderingProperty()
Indicates if a reordering operation of a column is in progress. The value istrue
during a column reordering operation, andfalse
otherwise. When a column is reordered (for example, by dragging its header), this property is updated automatically. Setting the value manually should be done when a subclass overrides the default reordering behavior. CallingsetReorderingRegion(TableColumnHeader)
before setting this property is required as well.- Since:
- 12
- See Also:
isReordering()
,setReordering(boolean)
-
getRootHeader
public final NestedTableColumnHeader getRootHeader()
Returns the root header for all columns. The root header is aNestedTableColumnHeader
that contains theNestedTableColumnHeader
s that represent each column. It spans the entire width of theTableView
. This allows any developer overriding aTableColumnHeader
to easily access the root header and all othersTableColumnHeader
s.- Implementation Note:
- This design enforces that column reordering occurs only within a single
NestedTableColumnHeader
and only at that level. - Returns:
- the root header
- Since:
- 12
-
layoutChildren
protected void layoutChildren()
Invoked during the layout pass to layout the children in thisParent
. By default it will only set the size of managed, resizable content to their preferred sizes and does not do any node positioning.Subclasses should override this function to layout content as needed.
- Overrides:
layoutChildren
in classStackPane
-
computePrefWidth
protected double computePrefWidth(double height)
Computes the preferred width of this region for the given height. Region subclasses should override this method to return an appropriate value based on their content and layout strategy. If the subclass doesn't have a VERTICAL content bias, then the height parameter can be ignored.- Overrides:
computePrefWidth
in classStackPane
- Parameters:
height
- the height that should be used if preferred width depends on it- Returns:
- the computed preferred width for this region
-
computeMinHeight
protected double computeMinHeight(double width)
Computes the minimum height of this region. Returns the sum of the top and bottom insets by default. Region subclasses should override this method to return an appropriate value based on their content and layout strategy. If the subclass doesn't have a HORIZONTAL content bias, then the width parameter can be ignored.- Overrides:
computeMinHeight
in classStackPane
- Parameters:
width
- the width that should be used if min height depends on it- Returns:
- the computed minimum height for this region
-
computePrefHeight
protected double computePrefHeight(double width)
Computes the preferred height of this region for the given width; Region subclasses should override this method to return an appropriate value based on their content and layout strategy. If the subclass doesn't have a HORIZONTAL content bias, then the width parameter can be ignored.- Overrides:
computePrefHeight
in classStackPane
- Parameters:
width
- the width that should be used if preferred height depends on it- Returns:
- the computed preferred height for this region
-
updateScrollX
protected void updateScrollX()
Called whenever the value of the horizontal scrollbar changes in order to request layout changes, shifting theTableColumnHeader
s.For example, if custom components are added around a
TableColumnHeader
(such as icons above), they will also need to be shifted. When overriding, callingsuper()
is required to shift theTableColumnHeader
s, and it's up to the developer to notify its own custom components of this change.- Since:
- 12
-
updateTableWidth
protected void updateTableWidth()
Updates the table width when a resize operation occurs. This method is called continuously when the control width is resizing in order to properly clip thisTableHeaderRow
. Overriding this method allows a subclass to customize the resizing behavior.Normally, the
TableHeaderRow
is using the full space (TableView
width), but in some cases that space may be reduced. For example, if a vertical header that will display the row number is introduced, theTableHeaderRow
would need to be clipped a bit shorter in order not to overlap that vertical header. Callingsuper()
first when overriding this method allowsNode.getClip()
to compute the right width in order apply a transformation.- Since:
- 12
-
createRootHeader
protected NestedTableColumnHeader createRootHeader()
Creates a new NestedTableColumnHeader instance. By default this method should not be overridden, but in some circumstances it makes sense (e.g. testing, or when extreme customization is desired).- Returns:
- A new NestedTableColumnHeader instance.
-
getReorderingRegion
protected TableColumnHeader getReorderingRegion()
Returns the currentTableColumnHeader
being moved during reordering.- Returns:
- the current
TableColumnHeader
being moved - Since:
- 12
-
setReorderingRegion
protected void setReorderingRegion(TableColumnHeader reorderingRegion)
Sets theTableColumnHeader
that is being moved during a reordering operation. This is automatically set by theTableColumnHeader
when reordering starts. This method should only be called manually if the default reordering behavior is overridden. CallingsetReordering(boolean)
after the call is required.- Parameters:
reorderingRegion
- theTableColumnHeader
being reordered- Since:
- 12
-
-