public class NestedTableColumnHeader extends TableColumnHeader
This class is used to construct the header of a TableView. We take the approach that every TableView header is nested - even if it isn't. This allows for us to use the same code for building a single row of TableColumns as we would with a heavily nested sequences of TableColumns. Because of this, the TableHeaderRow class consists of just one instance of a NestedTableColumnHeader.
Modifier and Type | Field and Description |
---|---|
private ObservableList<TableColumnHeader> |
columnHeaders |
private ObservableList<? extends TableColumnBase> |
columns
Represents the actual columns directly contained in this nested column.
|
private ListChangeListener<TableColumnBase> |
columnsListener
*
Listeners *
*
|
private static int |
DRAG_RECT_WIDTH
*
Static Fields *
*
|
private double |
dragAnchorX |
private java.util.Map<TableColumnBase<?,?>,Rectangle> |
dragRects |
private TableColumnHeader |
label |
private double |
lastX |
private static EventHandler<MouseEvent> |
rectCursorChangeListener |
private static EventHandler<MouseEvent> |
rectMouseDragged |
private static EventHandler<MouseEvent> |
rectMousePressed |
private static EventHandler<MouseEvent> |
rectMouseReleased |
private static java.lang.String |
TABLE_COLUMN_HEADER_KEY |
private static java.lang.String |
TABLE_COLUMN_KEY |
(package private) boolean |
updateColumns |
private WeakListChangeListener |
weakColumnsListener |
changeListenerHandler, columnIndex, columnReorderLine, DEFAULT_COLUMN_WIDTH, isLastVisibleColumn, sortPos
USE_COMPUTED_SIZE, USE_PREF_SIZE
BASELINE_OFFSET_SAME_AS_HEIGHT
Constructor and Description |
---|
NestedTableColumnHeader(TableViewSkinBase skin,
TableColumnBase tc)
*
Constructor *
*
|
Modifier and Type | Method and Description |
---|---|
private void |
checkState() |
private void |
columnResizing(TableColumnBase col,
MouseEvent me) |
private void |
columnResizingComplete(TableColumnBase col,
MouseEvent me) |
private void |
columnResizingStarted(double startX) |
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.
|
private TableColumnHeader |
createColumnHeader(TableColumnBase col) |
protected TableColumnHeader |
createTableColumnHeader(TableColumnBase col) |
(package private) void |
dispose() |
ObservableList<TableColumnHeader> |
getColumnHeaders() |
(package private) ObservableList<? extends TableColumnBase> |
getColumns() |
(package private) double |
getDragRectHeight() |
protected void |
handlePropertyChanged(java.lang.String p)
*
Public Methods *
*
|
private boolean |
isColumnResizingEnabled()
*
Private Implementation: Column Resizing *
*
|
protected void |
layoutChildren()
Invoked during the layout pass to layout the children in this
Parent . |
private void |
rebuildDragRects() |
(package private) void |
setColumns(ObservableList<? extends TableColumnBase> newColumns) |
protected void |
setHeadersNeedUpdate() |
void |
setParentHeader(NestedTableColumnHeader parentHeader) |
void |
setTableHeaderRow(TableHeaderRow header) |
private void |
updateContent()
*
Private Implementation *
*
|
(package private) void |
updateTableColumnHeaders() |
columnReordering, columnReorderingComplete, columnReorderingStarted, computeMinHeight, getClassCssMetaData, getCssMetaData, getNestedColumnHeader, getParentHeader, getTableColumn, getTableHeaderRow, getTableViewSkin, moveColumn, queryAccessibleAttribute, setNestedColumnHeader
backgroundProperty, borderProperty, cacheShapeProperty, centerShapeProperty, computeMaxHeight, computeMaxWidth, computeMinWidth, getBackground, getBorder, getHeight, getInsets, getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, getOpaqueInsets, getPadding, getPrefHeight, getPrefWidth, getShape, getUserAgentStylesheet, getWidth, heightProperty, impl_computeContains, impl_computeGeomBounds, impl_computeLayoutBounds, impl_createPeer, impl_notifyLayoutBoundsChanged, impl_pickNodeLocal, impl_updatePeer, 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, snapSize, snapSpace, snapToPixelProperty, widthProperty
getBaselineOffset, getChildren, getChildrenUnmodifiable, getImpl_traversalEngine, getManagedChildren, getStylesheets, impl_getAllParentStylesheets, impl_processCSS, impl_processMXNode, impl_traversalEngineProperty, isNeedsLayout, layout, lookup, needsLayoutProperty, requestLayout, requestParentLayout, setImpl_traversalEngine, setNeedsLayout, updateBounds
accessibleHelpProperty, accessibleRoleDescriptionProperty, accessibleRoleProperty, accessibleTextProperty, addEventFilter, addEventHandler, applyCss, autosize, blendModeProperty, boundsInLocalProperty, boundsInParentProperty, buildEventDispatchChain, cacheHintProperty, cacheProperty, clipProperty, computeAreaInScreen, contains, contains, containsBounds, cursorProperty, depthTestProperty, disabledProperty, disableProperty, effectiveNodeOrientationProperty, effectProperty, eventDispatcherProperty, executeAccessibleAction, fireEvent, focusedProperty, focusTraversableProperty, getAccessibleHelp, getAccessibleRole, getAccessibleRoleDescription, getAccessibleText, getBlendMode, getBoundsInLocal, getBoundsInParent, getCacheHint, getClip, getContentBias, getCursor, getDepthTest, getEffect, getEffectiveNodeOrientation, getEventDispatcher, getId, 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, hasProperties, hoverProperty, idProperty, impl_clearDirty, impl_computeIntersects, impl_cssGetCursorInitialValue, impl_cssGetFocusTraversableInitialValue, impl_findStyles, impl_geomChanged, impl_getLeafTransform, impl_getMatchingStyles, impl_getPeer, impl_getPivotX, impl_getPivotY, impl_getPivotZ, impl_getStyleMap, impl_hasTransforms, impl_intersects, impl_intersectsBounds, impl_isDirty, impl_isDirtyEmpty, impl_isShowMnemonics, impl_isTreeVisible, impl_layoutBoundsChanged, impl_markDirty, impl_pickNode, impl_processCSS, impl_reapplyCSS, impl_setShowMnemonics, impl_setStyleMap, impl_showMnemonicsProperty, impl_syncPeer, impl_transformsChanged, impl_traverse, impl_treeVisibleProperty, 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, setVisible, snapshot, snapshot, startDragAndDrop, startFullDrag, styleProperty, toBack, toFront, toString, translateXProperty, translateYProperty, translateZProperty, usesMirroring, visibleProperty
private static final int DRAG_RECT_WIDTH
private static final java.lang.String TABLE_COLUMN_KEY
private static final java.lang.String TABLE_COLUMN_HEADER_KEY
private ObservableList<? extends TableColumnBase> columns
private TableColumnHeader label
private ObservableList<TableColumnHeader> columnHeaders
private double lastX
private double dragAnchorX
private java.util.Map<TableColumnBase<?,?>,Rectangle> dragRects
boolean updateColumns
private final ListChangeListener<TableColumnBase> columnsListener
private final WeakListChangeListener weakColumnsListener
private static final EventHandler<MouseEvent> rectMousePressed
private static final EventHandler<MouseEvent> rectMouseDragged
private static final EventHandler<MouseEvent> rectMouseReleased
private static final EventHandler<MouseEvent> rectCursorChangeListener
public NestedTableColumnHeader(TableViewSkinBase skin, TableColumnBase tc)
protected void handlePropertyChanged(java.lang.String p)
handlePropertyChanged
in class TableColumnHeader
public void setTableHeaderRow(TableHeaderRow header)
setTableHeaderRow
in class TableColumnHeader
public void setParentHeader(NestedTableColumnHeader parentHeader)
setParentHeader
in class TableColumnHeader
ObservableList<? extends TableColumnBase> getColumns()
void setColumns(ObservableList<? extends TableColumnBase> newColumns)
void updateTableColumnHeaders()
void dispose()
dispose
in class TableColumnHeader
public ObservableList<TableColumnHeader> getColumnHeaders()
protected void layoutChildren()
TableColumnHeader
Parent
. 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.
layoutChildren
in class TableColumnHeader
double getDragRectHeight()
getDragRectHeight
in class TableColumnHeader
protected double computePrefWidth(double height)
TableColumnHeader
computePrefWidth
in class TableColumnHeader
height
- the height that should be used if preferred width depends
on itprotected double computePrefHeight(double width)
TableColumnHeader
computePrefHeight
in class TableColumnHeader
width
- the width that should be used if preferred height depends
on itprotected TableColumnHeader createTableColumnHeader(TableColumnBase col)
protected void setHeadersNeedUpdate()
private void updateContent()
private void rebuildDragRects()
private void checkState()
private TableColumnHeader createColumnHeader(TableColumnBase col)
private boolean isColumnResizingEnabled()
private void columnResizingStarted(double startX)
private void columnResizing(TableColumnBase col, MouseEvent me)
private void columnResizingComplete(TableColumnBase col, MouseEvent me)