Class HighlightLayerCodeArea<K extends java.lang.Enum<K> & HighlightLayerCodeArea.LayerId>

  • Type Parameters:
    K - Enum type listing the layer ids to use
    All Implemented Interfaces:
    javafx.css.Styleable, javafx.event.EventTarget, org.fxmisc.flowless.Virtualized, org.fxmisc.richtext.ClipboardActions<java.util.Collection<java.lang.String>,​java.lang.String,​java.util.Collection<java.lang.String>>, org.fxmisc.richtext.EditActions<java.util.Collection<java.lang.String>,​java.lang.String,​java.util.Collection<java.lang.String>>, org.fxmisc.richtext.model.TwoDimensional, org.fxmisc.richtext.NavigationActions<java.util.Collection<java.lang.String>,​java.lang.String,​java.util.Collection<java.lang.String>>, org.fxmisc.richtext.StyleActions<java.util.Collection<java.lang.String>,​java.util.Collection<java.lang.String>>, org.fxmisc.richtext.TextEditingArea<java.util.Collection<java.lang.String>,​java.lang.String,​java.util.Collection<java.lang.String>>, org.fxmisc.richtext.UndoActions, org.fxmisc.richtext.ViewActions<java.util.Collection<java.lang.String>,​java.lang.String,​java.util.Collection<java.lang.String>>

    public class HighlightLayerCodeArea<K extends java.lang.Enum<K> & HighlightLayerCodeArea.LayerId>
    extends SyntaxHighlightingCodeArea
    Code area that can manipulate different layers of styling independently, in addition to syntax highlighting. Layers are identified by a HighlightLayerCodeArea.LayerId, which are listed in an enum.
    Since:
    6.5.0
    Author:
    Clément Fournier
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static interface  HighlightLayerCodeArea.LayerId
      Identifier for a highlighting layer.
      • Nested classes/interfaces inherited from interface org.fxmisc.richtext.NavigationActions

        org.fxmisc.richtext.NavigationActions.SelectionPolicy
      • Nested classes/interfaces inherited from interface org.fxmisc.richtext.model.TwoDimensional

        org.fxmisc.richtext.model.TwoDimensional.Bias, org.fxmisc.richtext.model.TwoDimensional.Position
    • Field Summary

      • Fields inherited from class org.fxmisc.richtext.GenericStyledArea

        EMPTY_RANGE
      • 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
      HighlightLayerCodeArea​(java.lang.Class<K> idEnum)
      Builds a new code area with the given enum type as layer id provider.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void clearStyleLayer​(K id)
      Clears a style layer.
      void clearStyleLayers()
      Clears all style layers from their contents, including syntax highlighting.
      void styleNodes​(java.util.Collection<? extends net.sourceforge.pmd.lang.ast.Node> nodes, K layerId, boolean resetLayer)
      Styles some nodes in a given layer and updates the visual appearance of the area.
      protected org.fxmisc.richtext.model.StyleSpans<java.util.Collection<java.lang.String>> styleSyntaxHighlightChange​(java.util.Optional<org.fxmisc.richtext.model.StyleSpans<java.util.Collection<java.lang.String>>> oldSyntax, org.fxmisc.richtext.model.StyleSpans<java.util.Collection<java.lang.String>> newSyntax)
      Attempts to preserve the other layers when syntax highlighting changes.
      • Methods inherited from class org.fxmisc.richtext.StyleClassedTextArea

        setStyleClass
      • Methods inherited from class org.fxmisc.richtext.StyledTextArea

        createStyledTextNode, createStyledTextNode
      • Methods inherited from class org.fxmisc.richtext.GenericStyledArea

        addCaret, addSelection, allParToVisibleParIndex, autoScrollOnDragDesiredProperty, beingUpdatedProperty, contextMenuObjectProperty, contextMenuXOffsetProperty, contextMenuYOffsetProperty, createMultiChange, createMultiChange, displaceCaret, dispose, editableProperty, estimatedScrollXProperty, estimatedScrollYProperty, getAbsolutePosition, getApplyParagraphStyle, getCaretBoundsOnScreen, getCaretSelectionBind, getCharacterBoundsOnScreen, getClassCssMetaData, getContent, getContextMenu, getContextMenuXOffset, getContextMenuYOffset, getCssMetaData, getDocument, getInitialParagraphStyle, getInitialTextStyle, getOnInsideSelectionMousePressReleased, getOnNewSelectionDragFinished, getOnOutsideSelectionMousePressed, getOnSelectionDropped, getParagraphBoundsOnScreen, getParagraphLinesCount, getParagraphs, getParagraphSelection, getParagraphStyleForInsertionAt, getSegOps, getStyleAtPosition, getStyleAtPosition, getStyleCodecs, getStyleOfChar, getStyleOfChar, getStyleRangeAtPosition, getStyleRangeAtPosition, getStyleSpans, getStyleSpans, getStyleSpans, getText, getText, getText, getTextStyleForInsertionAt, getUndoManager, getViewportHeight, getVisibleParagraphBoundsOnScreen, getVisibleParagraphs, hit, isAutoScrollOnDragDesired, isContextMenuPresent, isEditable, isPreserveStyle, isWrapText, layoutChildren, lengthProperty, lineEnd, lineIndex, lineStart, mouseOverTextDelayProperty, multiPlainChanges, multiRichChanges, nextPage, offsetToPosition, onInsideSelectionMousePressReleasedProperty, onInsideSelectionMousePressReleaseProperty, onNewSelectionDragFinishedProperty, onNewSelectionDragProperty, onOutsideSelectionMousePressedProperty, onOutsideSelectionMousePressProperty, onSelectionDragProperty, onSelectionDroppedProperty, onSelectionDropProperty, paragraphGraphicFactoryProperty, plainTextChanges, position, prevPage, removeCaret, removeSelection, replace, replace, replaceText, requestFollowCaret, richChanges, scrollBy, scrollXBy, scrollXToPixel, scrollYBy, scrollYToPixel, setAutoScrollOnDragDesired, setContextMenu, setContextMenuXOffset, setContextMenuYOffset, setEditable, setOnInsideSelectionMousePressReleased, setOnNewSelectionDragFinished, setOnOutsideSelectionMousePressed, setOnSelectionDropped, setParagraphStyle, setStyle, setStyle, setStyle, setStyleCodecs, setStyleSpans, setStyleSpans, setUndoManager, setWrapText, showParagraphAtBottom, showParagraphAtTop, showParagraphInViewport, showParagraphRegion, subDocument, subDocument, textProperty, totalHeightEstimateProperty, totalWidthEstimateProperty, useInitialStyleForInsertionProperty, viewportDirtyEvents, visibleParToAllParIndex, wrapTextProperty
      • Methods inherited from class javafx.scene.layout.Region

        backgroundProperty, borderProperty, cacheShapeProperty, centerShapeProperty, computeMaxHeight, computeMaxWidth, computeMinHeight, computeMinWidth, computePrefHeight, computePrefWidth, getBackground, getBorder, getHeight, getInsets, getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, getOpaqueInsets, getPadding, getPrefHeight, getPrefWidth, getShape, getUserAgentStylesheet, getWidth, heightProperty, 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, snapPositionX, snapPositionY, snapSize, snapSizeX, snapSizeY, snapSpace, snapSpaceX, snapSpaceY, snapToPixelProperty, widthProperty
      • Methods inherited from class javafx.scene.Parent

        getBaselineOffset, getChildren, getChildrenUnmodifiable, getManagedChildren, getStylesheets, isNeedsLayout, layout, lookup, needsLayoutProperty, queryAccessibleAttribute, 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, executeAccessibleAction, fireEvent, focusedProperty, focusTraversableProperty, getAccessibleHelp, getAccessibleRole, getAccessibleRoleDescription, getAccessibleText, getBlendMode, getBoundsInLocal, getBoundsInParent, getCacheHint, getClip, getContentBias, getCursor, getDepthTest, getEffect, getEffectiveNodeOrientation, getEventDispatcher, getId, getInitialCursor, getInitialFocusTraversable, 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, visibleProperty
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface org.fxmisc.richtext.ClipboardActions

        copy, cut, paste
      • Methods inherited from interface org.fxmisc.richtext.EditActions

        append, appendText, clear, deleteNextChar, deletePreviousChar, deleteText, deleteText, deleteText, insert, insert, insertText, insertText, moveSelectedText, replace, replaceSelection, replaceSelection, replaceText
      • Methods inherited from interface org.fxmisc.richtext.NavigationActions

        deselect, end, moveTo, moveTo, moveTo, moveTo, nextChar, paragraphEnd, paragraphStart, previousChar, selectAll, selectParagraph, selectWord, start, wordBreaksBackwards, wordBreaksForwards
      • Methods inherited from interface javafx.css.Styleable

        getStyleableNode
      • Methods inherited from interface org.fxmisc.richtext.StyleActions

        clearParagraphStyle, clearStyle, clearStyle, clearStyle, getStyleSpans, getStyleSpans, getUseInitialStyleForInsertion, setUseInitialStyleForInsertion
      • Methods inherited from interface org.fxmisc.richtext.TextEditingArea

        anchorProperty, caretBoundsProperty, caretColumnProperty, caretPositionProperty, currentParagraphProperty, getAnchor, getCaretBounds, getCaretColumn, getCaretPosition, getCurrentParagraph, getLength, getParagraph, getParagraphLength, getParagraphSelection, getSelectedText, getSelection, getSelectionBounds, getShowCaret, getText, getText, isBeingUpdated, replace, replace, replace, replace, replaceText, replaceText, selectedTextProperty, selectionBoundsProperty, selectionProperty, selectRange, selectRange, setShowCaret, showCaretProperty, subDocument, subDocument
      • Methods inherited from interface org.fxmisc.richtext.UndoActions

        isRedoAvailable, isUndoAvailable, redo, redoAvailableProperty, undo, undoAvailableProperty
      • Methods inherited from interface org.fxmisc.richtext.ViewActions

        firstVisibleParToAllParIndex, getMouseOverTextDelay, getOnInsideSelectionMousePressRelease, getOnNewSelectionDrag, getOnOutsideSelectionMousePress, getOnSelectionDrag, getOnSelectionDrop, getParagraphGraphicFactory, hideContextMenu, lastVisibleParToAllParIndex, selectLine, setMouseOverTextDelay, setOnInsideSelectionMousePressRelease, setOnNewSelectionDrag, setOnOutsideSelectionMousePress, setOnSelectionDrag, setOnSelectionDrop, setParagraphGraphicFactory
      • Methods inherited from interface org.fxmisc.flowless.Virtualized

        getEstimatedScrollX, getEstimatedScrollY, getTotalHeightEstimate, getTotalWidthEstimate, scrollBy, scrollToPixel, scrollToPixel
    • Constructor Detail

      • HighlightLayerCodeArea

        public HighlightLayerCodeArea​(java.lang.Class<K> idEnum)
        Builds a new code area with the given enum type as layer id provider. Constants of the enum will identify layers of the code area.
        Parameters:
        idEnum - Enum type
    • Method Detail

      • styleNodes

        public void styleNodes​(java.util.Collection<? extends net.sourceforge.pmd.lang.ast.Node> nodes,
                               K layerId,
                               boolean resetLayer)
        Styles some nodes in a given layer and updates the visual appearance of the area.

        Each layer has its own style class, that is assigned to the nodes that belong to it.

        Parameters:
        nodes - Nodes to style
        layerId - Id of the layer in which to save the node highlight
        resetLayer - Whether to replace the contents of the layer with the styling for these nodes, or just add them.
      • clearStyleLayers

        public void clearStyleLayers()
        Clears all style layers from their contents, including syntax highlighting.
      • clearStyleLayer

        public void clearStyleLayer​(K id)
        Clears a style layer.
        Parameters:
        id - layer id.
      • styleSyntaxHighlightChange

        protected final org.fxmisc.richtext.model.StyleSpans<java.util.Collection<java.lang.String>> styleSyntaxHighlightChange​(java.util.Optional<org.fxmisc.richtext.model.StyleSpans<java.util.Collection<java.lang.String>>> oldSyntax,
                                                                                                                                org.fxmisc.richtext.model.StyleSpans<java.util.Collection<java.lang.String>> newSyntax)
        Attempts to preserve the other layers when syntax highlighting changes. The result misplaces some style classes, which is undesirable, but covered up by the subsequent parsing update.
        Overrides:
        styleSyntaxHighlightChange in class SyntaxHighlightingCodeArea