java.lang.Object
javafx.scene.Node
javafx.scene.Parent
javafx.scene.layout.Region
javafx.scene.control.Control
org.controlsfx.control.PropertySheet
- All Implemented Interfaces:
Styleable,EventTarget,Skinnable
The PropertySheet control is a powerful control designed to make it really
easy for developers to present to end users a list of properties that the
end user is allowed to manipulate. Commonly a property sheet is used in
visual editors and other tools where a lot of properties exist.

To better describe what a property sheet is, please refer to the picture
below:
In this property sheet there exists two columns: the left column shows a
label describing the property itself, whereas the right column provides a
PropertyEditor that allows the end user the means to manipulate the
property. In the screenshot you can see CheckEditor,
ChoiceEditor, TextEditor and FontEditor, among the
many editors that are available in the Editors
package.
To create a PropertySheet is simple: you firstly instantiate an instance
of PropertySheet, and then you pass in a list of PropertySheet.Item instances,
where each Item represents a single property that is to be editable by the
end user.
Working with JavaBeans
Because a very common use case for a property sheet is editing properties on a JavaBean, there is convenience API for making this interaction easier. Refer to theclass, in particular the
BeanPropertyUtils.getProperties(Object) method that will return a
list of Item instances, one Item instance per property on the given JavaBean.- See Also:
-
Property Summary
PropertiesTypePropertyDescriptionfinal SimpleObjectProperty<Comparator<String>>Used to represent how the categories should be laid out in the PropertySheet when using the Category mode (seePropertySheet.Mode).Used to represent how the properties should be laid out in the PropertySheet.final SimpleBooleanPropertyThis property represents whether a visual option should be presented to users to switch between the variousmodesavailable.final SimpleBooleanPropertyThis property represents whether a text field should be presented to users to allow for them to filter the properties in the property sheet to only show ones matching the typed input.Properties inherited from class javafx.scene.control.Control
contextMenu, skin, tooltipProperties inherited from class javafx.scene.layout.Region
background, border, cacheShape, centerShape, height, insets, maxHeight, maxWidth, minHeight, minWidth, opaqueInsets, padding, prefHeight, prefWidth, scaleShape, shape, snapToPixel, widthProperties inherited from class javafx.scene.Parent
needsLayoutProperties 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 -
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interfaceA wrapper interface for a single property to be displayed in aPropertySheetcontrol.static enumSpecifies how thePropertySheetshould be laid out. -
Field Summary
Fields inherited from class javafx.scene.layout.Region
USE_COMPUTED_SIZE, USE_PREF_SIZEFields inherited from class javafx.scene.Node
BASELINE_OFFSET_SAME_AS_HEIGHT -
Constructor Summary
ConstructorsConstructorDescriptionCreates a default PropertySheet instance with no properties to edit.Creates a PropertySheet instance prepopulated with the items provided in the itemsObservableList. -
Method Summary
Modifier and TypeMethodDescriptionfinal SimpleObjectProperty<Comparator<String>>Used to represent how the categories should be laid out in the PropertySheet when using the Category mode (seePropertySheet.Mode).protected Skin<?>final Comparator<String>getItems()final PropertySheet.ModegetMode()final Callback<PropertySheet.Item,PropertyEditor<?>> final Stringprotected final StringgetUserAgentStylesheet(Class<?> clazz, String fileName) A helper method that ensures that the resource based lookup of the user agent stylesheet only happens once.final booleanfinal booleanUsed to represent how the properties should be laid out in the PropertySheet.final SimpleBooleanPropertyThis property represents whether a visual option should be presented to users to switch between the variousmodesavailable.The property editor factory is used by the PropertySheet to determine whichPropertyEditorto use for a givenPropertySheet.Item.final SimpleBooleanPropertyThis property represents whether a text field should be presented to users to allow for them to filter the properties in the property sheet to only show ones matching the typed input.final voidsetCategoryComparator(Comparator<String> categoryComparator) Set how the categories should be laid out in the PropertySheet.final voidsetMode(PropertySheet.Mode mode) Set how the properties should be laid out in the PropertySheet.final voidsetModeSwitcherVisible(boolean visible) Set whether a visual option should be presented to users to switch between the variousmodesavailable.final voidsetPropertyEditorFactory(Callback<PropertySheet.Item, PropertyEditor<?>> factory) Sets a new editor factory used by the PropertySheet to determine whichPropertyEditorto use for a givenPropertySheet.Item.final voidsetSearchBoxVisible(boolean visible) Sets whether a text field should be presented to users to allow for them to filter the properties in the property sheet to only show ones matching the typed input.final voidsetTitleFilter(String filter) Sets the filter for filtering the options shown on screen.final SimpleStringPropertyRegardless of whether thesearch boxis visible or not, it is possible to filter the options shown on screen using this title filter property.Methods inherited from class javafx.scene.control.Control
computeMaxHeight, computeMaxWidth, computeMinHeight, computeMinWidth, computePrefHeight, computePrefWidth, contextMenuProperty, executeAccessibleAction, getBaselineOffset, getClassCssMetaData, getContextMenu, getControlCssMetaData, getCssMetaData, getInitialFocusTraversable, getSkin, getTooltip, isResizable, layoutChildren, queryAccessibleAttribute, setContextMenu, setSkin, setTooltip, skinProperty, tooltipPropertyMethods inherited from class javafx.scene.layout.Region
backgroundProperty, borderProperty, cacheShapeProperty, centerShapeProperty, getBackground, getBorder, getHeight, getInsets, getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, getOpaqueInsets, getPadding, getPrefHeight, getPrefWidth, getShape, 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, widthPropertyMethods inherited from class javafx.scene.Parent
getChildren, getChildrenUnmodifiable, getManagedChildren, getStylesheets, isNeedsLayout, layout, lookup, needsLayoutProperty, requestLayout, requestParentLayout, setNeedsLayout, updateBoundsMethods 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, getContentBias, 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, toString, translateXProperty, translateYProperty, translateZProperty, usesMirroring, viewOrderProperty, visiblePropertyMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface javafx.css.Styleable
getStyleableNode
-
Property Details
-
mode
Used to represent how the properties should be laid out in the PropertySheet. Refer to thePropertySheet.Modeenumeration to better understand the available options.- See Also:
-
modeSwitcherVisible
This property represents whether a visual option should be presented to users to switch between the variousmodesavailable. By default this is true, so setting it to false will hide these buttons. -
searchBoxVisible
This property represents whether a text field should be presented to users to allow for them to filter the properties in the property sheet to only show ones matching the typed input. By default this is true, so setting it to false will hide this search field. -
categoryComparator
Used to represent how the categories should be laid out in the PropertySheet when using the Category mode (seePropertySheet.Mode). Thus allowing user to sort categories by other ways than alphabetical or numerical order.
-
-
Constructor Details
-
PropertySheet
public PropertySheet()Creates a default PropertySheet instance with no properties to edit. -
PropertySheet
Creates a PropertySheet instance prepopulated with the items provided in the itemsObservableList.- Parameters:
items- The items that should appear within the PropertySheet.
-
-
Method Details
-
getItems
- Returns:
- An ObservableList of properties that will be displayed to the user to allow for them to be edited.
-
createDefaultSkin
- Overrides:
createDefaultSkinin classControl
-
getUserAgentStylesheet
- Overrides:
getUserAgentStylesheetin classRegion
-
modeProperty
Used to represent how the properties should be laid out in the PropertySheet. Refer to thePropertySheet.Modeenumeration to better understand the available options.- See Also:
-
getMode
- Returns:
- how the properties should be laid out in the PropertySheet.
- See Also:
-
setMode
Set how the properties should be laid out in the PropertySheet.- Parameters:
mode-
-
propertyEditorFactory
public final SimpleObjectProperty<Callback<PropertySheet.Item,PropertyEditor<?>>> propertyEditorFactory()The property editor factory is used by the PropertySheet to determine whichPropertyEditorto use for a givenPropertySheet.Item. By default theDefaultPropertyEditorFactoryis used, but this may be replaced or extended by developers wishing to add in (or substitute) their own property editors.- Returns:
- A SimpleObjectproperty.
-
getPropertyEditorFactory
- Returns:
- The editor factory used by the PropertySheet to determine which
PropertyEditorto use for a givenPropertySheet.Item.
-
setPropertyEditorFactory
Sets a new editor factory used by the PropertySheet to determine whichPropertyEditorto use for a givenPropertySheet.Item.- Parameters:
factory-
-
modeSwitcherVisibleProperty
This property represents whether a visual option should be presented to users to switch between the variousmodesavailable. By default this is true, so setting it to false will hide these buttons. -
isModeSwitcherVisible
public final boolean isModeSwitcherVisible()- Returns:
- whether a visual option is presented to
users to switch between the various
modesavailable.
-
setModeSwitcherVisible
public final void setModeSwitcherVisible(boolean visible) Set whether a visual option should be presented to users to switch between the variousmodesavailable.- Parameters:
visible-
-
searchBoxVisibleProperty
This property represents whether a text field should be presented to users to allow for them to filter the properties in the property sheet to only show ones matching the typed input. By default this is true, so setting it to false will hide this search field. -
isSearchBoxVisible
public final boolean isSearchBoxVisible()- Returns:
- whether a text field should be presented to users to allow for them to filter the properties in the property sheet to only show ones matching the typed input.
-
setSearchBoxVisible
public final void setSearchBoxVisible(boolean visible) Sets whether a text field should be presented to users to allow for them to filter the properties in the property sheet to only show ones matching the typed input.- Parameters:
visible-
-
titleFilter
Regardless of whether thesearch boxis visible or not, it is possible to filter the options shown on screen using this title filter property. If the search box is visible, it will manipulate this property to contain whatever the user types.- Returns:
- A SimpleStringProperty.
-
getTitleFilter
- Returns:
- the filter for filtering the options shown on screen
- See Also:
-
setTitleFilter
Sets the filter for filtering the options shown on screen.- Parameters:
filter-- See Also:
-
categoryComparatorProperty
Used to represent how the categories should be laid out in the PropertySheet when using the Category mode (seePropertySheet.Mode). Thus allowing user to sort categories by other ways than alphabetical or numerical order. -
getCategoryComparator
- Returns:
- how the categories should be laid out in the PropertySheet.
- See Also:
-
setCategoryComparator
Set how the categories should be laid out in the PropertySheet.- Parameters:
mode-
-
getUserAgentStylesheet
A helper method that ensures that the resource based lookup of the user agent stylesheet only happens once. Caches the external form of the resource.- Parameters:
clazz- the class used for the resource lookupfileName- the name of the user agent stylesheet- Returns:
- the external form of the user agent stylesheet (the path)
-