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, sortPosUSE_COMPUTED_SIZE, USE_PREF_SIZEBASELINE_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, setNestedColumnHeaderbackgroundProperty, 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, widthPropertygetBaselineOffset, getChildren, getChildrenUnmodifiable, getImpl_traversalEngine, getManagedChildren, getStylesheets, impl_getAllParentStylesheets, impl_processCSS, impl_processMXNode, impl_traversalEngineProperty, isNeedsLayout, layout, lookup, needsLayoutProperty, requestLayout, requestParentLayout, setImpl_traversalEngine, setNeedsLayout, updateBoundsaccessibleHelpProperty, 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, visiblePropertyprivate 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 TableColumnHeaderpublic void setTableHeaderRow(TableHeaderRow header)
setTableHeaderRow in class TableColumnHeaderpublic void setParentHeader(NestedTableColumnHeader parentHeader)
setParentHeader in class TableColumnHeaderObservableList<? extends TableColumnBase> getColumns()
void setColumns(ObservableList<? extends TableColumnBase> newColumns)
void updateTableColumnHeaders()
void dispose()
dispose in class TableColumnHeaderpublic ObservableList<TableColumnHeader> getColumnHeaders()
protected void layoutChildren()
TableColumnHeaderParent. 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 TableColumnHeaderdouble getDragRectHeight()
getDragRectHeight in class TableColumnHeaderprotected double computePrefWidth(double height)
TableColumnHeadercomputePrefWidth in class TableColumnHeaderheight - the height that should be used if preferred width depends
on itprotected double computePrefHeight(double width)
TableColumnHeadercomputePrefHeight in class TableColumnHeaderwidth - 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)