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

public class TagsField<T> extends SearchField<T>
This field is a specialization 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.
  • Nested Class Summary

  • Property Summary

    Properties
    Type
    Property
    Description
    final javafx.beans.property.DoubleProperty
    The minimum width of the editor when it is not used.
    final javafx.beans.property.DoubleProperty
    The preferred width of the editor when it is being used.
    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
  • 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.beans.property.DoubleProperty
    The minimum width of the editor when it is not used.
    final javafx.beans.property.DoubleProperty
    The preferred width of the editor when it is being used.
    javafx.geometry.Orientation
     
    final double
    Gets the value of the editorMinWidth property.
    final double
    Gets the value of the editorPrefWidth property.
    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
    setEditorMinWidth(double editorMinWidth)
    Sets the value of the editorMinWidth property.
    final void
    setEditorPrefWidth(double editorPrefWidth)
    Sets the value of the editorPrefWidth property.
    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 SearchField

    addingItemToHistoryOnCommitProperty, addingItemToHistoryOnEnterProperty, addingItemToHistoryOnFocusLostProperty, autoCommitOnFocusLostProperty, autoCompletedTextProperty, autoCompletionGapProperty, busyGraphicProperty, cancel, cellFactoryProperty, clear, comparatorProperty, converterProperty, fullTextProperty, getAutoCompletedText, getAutoCompletionGap, getBusyGraphic, getCellFactory, getClassCssMetaData, getComparator, getControlCssMetaData, getConverter, getEditor, getFullText, getGraphic, getHistoryManager, getHistoryPlaceholder, getLeft, getMatcher, getNewItemProducer, getOnCommit, getOnSearchFinished, getOnSearchStarted, getPlaceholder, getPopup, getPromptText, getRight, getSelectedItem, getSuggestionProvider, getSuggestions, getText, graphicProperty, hidePopupWithNoChoiceProperty, hidePopupWithSingleChoiceProperty, historyManagerProperty, historyPlaceholderProperty, isAddingItemToHistoryOnCommit, isAddingItemToHistoryOnEnter, isAddingItemToHistoryOnFocusLost, isAutoCommitOnFocusLost, isHidePopupWithNoChoice, isHidePopupWithSingleChoice, isNewItem, isSearching, isShowSearchIcon, leftProperty, matcherProperty, newItemProducerProperty, newItemProperty, onCommitProperty, onSearchFinishedProperty, onSearchStartedProperty, placeholderProperty, promptTextProperty, rightProperty, searchingProperty, select, selectedItemProperty, setAddingItemToHistoryOnCommit, setAddingItemToHistoryOnEnter, setAddingItemToHistoryOnFocusLost, setAutoCommitOnFocusLost, setAutoCompletionGap, setBusyGraphic, setCellFactory, setComparator, setConverter, setGraphic, setHidePopupWithNoChoice, setHidePopupWithSingleChoice, setHistoryManager, setHistoryPlaceholder, setLeft, setMatcher, setNewItemProducer, setOnCommit, setOnSearchFinished, setOnSearchStarted, setPlaceholder, setPromptText, setRight, setSelectedItem, setShowSearchIcon, setSuggestionProvider, setText, showSearchIconProperty, suggestionProviderProperty, textProperty

    Methods inherited from class javafx.scene.control.Control

    computeMaxHeight, computeMaxWidth, computeMinHeight, computeMinWidth, computePrefHeight, computePrefWidth, contextMenuProperty, executeAccessibleAction, getBaselineOffset, getContextMenu, 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, 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, requestFocusTraversal, 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 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>
    • getContentBias

      public javafx.geometry.Orientation getContentBias()
      Overrides:
      getContentBias in class javafx.scene.Node
    • 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

      @SafeVarargs 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

      @SafeVarargs 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:
    • getEditorMinWidth

      public final double getEditorMinWidth()
      Gets the value of the editorMinWidth property.
      Property description:
      The minimum width of the editor when it is not used.
      Returns:
      the value of the editorMinWidth property
      See Also:
    • editorMinWidthProperty

      public final javafx.beans.property.DoubleProperty editorMinWidthProperty()
      The minimum width of the editor when it is not used.
      Returns:
      the minimum width of the editor
      See Also:
    • setEditorMinWidth

      public final void setEditorMinWidth(double editorMinWidth)
      Sets the value of the editorMinWidth property.
      Property description:
      The minimum width of the editor when it is not used.
      Parameters:
      editorMinWidth - the value for the editorMinWidth property
      See Also:
    • getEditorPrefWidth

      public final double getEditorPrefWidth()
      Gets the value of the editorPrefWidth property.
      Property description:
      The preferred width of the editor when it is being used.
      Returns:
      the value of the editorPrefWidth property
      See Also:
    • editorPrefWidthProperty

      public final javafx.beans.property.DoubleProperty editorPrefWidthProperty()
      The preferred width of the editor when it is being used.
      Returns:
      the preferred width of the editor
      See Also:
    • setEditorPrefWidth

      public final void setEditorPrefWidth(double editorPrefWidth)
      Sets the value of the editorPrefWidth property.
      Property description:
      The preferred width of the editor when it is being used.
      Parameters:
      editorPrefWidth - the value for the editorPrefWidth property
      See Also: