Class TagsField<T>

java.lang.Object
javafx.scene.Node
javafx.scene.Parent
javafx.scene.layout.Region
javafx.scene.control.Control
com.dlsc.gemsfx.SearchField<T>
com.dlsc.gemsfx.TagsField<T>
Type Parameters:
T - the type of objects to search for and to tag
All Implemented Interfaces:
javafx.css.Styleable, javafx.event.EventTarget, javafx.scene.control.Skinnable
Direct Known Subclasses:
TagsFieldApp.CountriesTagsField

public class TagsField<T> extends SearchField<T>
This field is a specialisation of the SearchField control and supports the additional feature of using the selected object as a tag. Tags are shown in front of the text input field. The control provides an observable list of the currently added tags. In addition, the field also allows the user to select one or more of the tags. The selection state is provided by the selection model. The field adds and removes tags via undoable commands which means that, for example, a deleted tag can be recovered by pressing the standard undo (or redo) shortcut.
  • Property Summary

    Properties
    Type
    Property
    Description
    final javafx.beans.property.ObjectProperty<javafx.scene.control.MultipleSelectionModel<T>>
    A selection model for the tags shown by the field.
    final javafx.beans.property.ListProperty<T>
    A list property used to store the tags.
    final javafx.beans.property.ObjectProperty<javafx.util.Callback<T,javafx.scene.Node>>
    A callback used to create the nodes that represent the tags.

    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
  • Nested Class Summary

    Nested classes/interfaces inherited from class com.dlsc.gemsfx.SearchField

    SearchField.SearchEvent, SearchField.SearchFieldListCell<T>, SearchField.SearchFieldSuggestionRequest
  • 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
    Constructs a new tag field.
  • Method Summary

    Modifier and Type
    Method
    Description
    final void
    addTags(T... values)
    Used to add one or more tags programmatically.
    final void
    Used to clear all tags programmatically.
    void
    Overridden to modify the behaviour for the tag field.
    protected javafx.scene.control.Skin<?>
     
    final javafx.collections.ObservableList<T>
    Gets the value of the tags property.
    final javafx.scene.control.MultipleSelectionModel<T>
    Gets the value of the tagSelectionModel property.
    final javafx.util.Callback<T,javafx.scene.Node>
    Gets the value of the tagViewFactory property.
     
    final void
    removeTags(T... values)
    Used to remove one or more tags programmatically.
    final void
    setTags(javafx.collections.ObservableList<T> tags)
    Sets the value of the tags property.
    final void
    setTagSelectionModel(javafx.scene.control.MultipleSelectionModel<T> tagSelectionModel)
    Sets the value of the tagSelectionModel property.
    final void
    setTagViewFactory(javafx.util.Callback<T,javafx.scene.Node> tagViewFactory)
    Sets the value of the tagViewFactory property.
    final javafx.beans.property.ObjectProperty<javafx.scene.control.MultipleSelectionModel<T>>
    A selection model for the tags shown by the field.
    final javafx.beans.property.ListProperty<T>
    A list property used to store the tags.
    final javafx.beans.property.ObjectProperty<javafx.util.Callback<T,javafx.scene.Node>>
    A callback used to create the nodes that represent the tags.
    protected void
    update(Collection<T> newSuggestions)
    Overridden to remove the already tagged items from the suggestion list.

    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, 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, 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, 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, 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, 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 Details

  • Constructor Details

    • TagsField

      public TagsField()
      Constructs a new tag field.
  • Method Details

    • createDefaultSkin

      protected javafx.scene.control.Skin<?> createDefaultSkin()
      Overrides:
      createDefaultSkin in class SearchField<T>
    • getUserAgentStylesheet

      public String getUserAgentStylesheet()
      Overrides:
      getUserAgentStylesheet in class SearchField<T>
    • commit

      public void commit()
      Overridden to modify the behaviour for the tag field. The override method commits the currently selected item to become a tag.
      Overrides:
      commit in class SearchField<T>
    • update

      protected void update(Collection<T> newSuggestions)
      Overridden to remove the already tagged items from the suggestion list.
      Overrides:
      update in class SearchField<T>
      Parameters:
      newSuggestions - the new suggestions to use for the field
    • getTags

      public final javafx.collections.ObservableList<T> getTags()
      Gets the value of the tags property.
      Property description:
      A list property used to store the tags.
      Returns:
      the value of the tags property
      See Also:
    • tagsProperty

      public final javafx.beans.property.ListProperty<T> tagsProperty()
      A list property used to store the tags.
      Returns:
      the list of tags
      See Also:
    • setTags

      public final void setTags(javafx.collections.ObservableList<T> tags)
      Sets the value of the tags property.
      Property description:
      A list property used to store the tags.
      Parameters:
      tags - the value for the tags property
      See Also:
    • addTags

      public final void addTags(T... values)
      Used to add one or more tags programmatically. This ensures that tags are added via an undoable command.
      Parameters:
      values - the value to add as a tag
    • removeTags

      public final void removeTags(T... values)
      Used to remove one or more tags programmatically. This ensures that tags are removed via an undoable command.
      Parameters:
      values - the tags to add
    • clearTags

      public final void clearTags()
      Used to clear all tags programmatically. This ensures that tags are cleared via an undoable command.
    • tagViewFactoryProperty

      public final javafx.beans.property.ObjectProperty<javafx.util.Callback<T,javafx.scene.Node>> tagViewFactoryProperty()
      A callback used to create the nodes that represent the tags. The default implementation uses labels.
      Returns:
      a node factory for the tags
      See Also:
    • getTagViewFactory

      public final javafx.util.Callback<T,javafx.scene.Node> getTagViewFactory()
      Gets the value of the tagViewFactory property.
      Property description:
      A callback used to create the nodes that represent the tags. The default implementation uses labels.
      Returns:
      the value of the tagViewFactory property
      See Also:
    • setTagViewFactory

      public final void setTagViewFactory(javafx.util.Callback<T,javafx.scene.Node> tagViewFactory)
      Sets the value of the tagViewFactory property.
      Property description:
      A callback used to create the nodes that represent the tags. The default implementation uses labels.
      Parameters:
      tagViewFactory - the value for the tagViewFactory property
      See Also:
    • getTagSelectionModel

      public final javafx.scene.control.MultipleSelectionModel<T> getTagSelectionModel()
      Gets the value of the tagSelectionModel property.
      Property description:
      A selection model for the tags shown by the field.
      Returns:
      the value of the tagSelectionModel property
      See Also:
    • tagSelectionModelProperty

      public final javafx.beans.property.ObjectProperty<javafx.scene.control.MultipleSelectionModel<T>> tagSelectionModelProperty()
      A selection model for the tags shown by the field.
      Returns:
      the selection model
      See Also:
    • setTagSelectionModel

      public final void setTagSelectionModel(javafx.scene.control.MultipleSelectionModel<T> tagSelectionModel)
      Sets the value of the tagSelectionModel property.
      Property description:
      A selection model for the tags shown by the field.
      Parameters:
      tagSelectionModel - the value for the tagSelectionModel property
      See Also: