Class SimpleEditor

java.lang.Object
javafx.scene.Node
javafx.scene.Parent
javafx.scene.layout.Region
org.fxmisc.richtext.GenericStyledArea<Collection<String>,String,Collection<String>>
org.fxmisc.richtext.StyledTextArea<Collection<String>,Collection<String>>
org.fxmisc.richtext.StyleClassedTextArea
org.fxmisc.richtext.CodeArea
com.iamsoft.util.ui.javafx.codearea.SimpleEditor
All Implemented Interfaces:
javafx.css.Styleable, javafx.event.EventTarget, org.fxmisc.flowless.Virtualized, org.fxmisc.richtext.ClipboardActions<Collection<String>,String,Collection<String>>, org.fxmisc.richtext.EditActions<Collection<String>,String,Collection<String>>, org.fxmisc.richtext.model.TwoDimensional, org.fxmisc.richtext.NavigationActions<Collection<String>,String,Collection<String>>, org.fxmisc.richtext.StyleActions<Collection<String>,Collection<String>>, org.fxmisc.richtext.TextEditingArea<Collection<String>,String,Collection<String>>, org.fxmisc.richtext.UndoActions, org.fxmisc.richtext.ViewActions<Collection<String>,String,Collection<String>>
Direct Known Subclasses:
PropertiesEditor, SimpleCodeArea

public class SimpleEditor extends org.fxmisc.richtext.CodeArea
Editor with simple syntax highlighting capabilities.
  • Property Summary

    Properties
    Type
    Property
    Description
    javafx.beans.property.ReadOnlyBooleanProperty
     
    javafx.beans.value.ObservableValue<Integer>
     
    javafx.beans.property.BooleanProperty
     

    Properties inherited from class org.fxmisc.richtext.GenericStyledArea

    autoHeight, autoScrollOnDragDesired, beingUpdated, contextMenuObject, contextMenuXOffset, contextMenuYOffset, editable, estimatedScrollX, estimatedScrollY, length, mouseOverTextDelay, onInsideSelectionMousePressReleased, onNewSelectionDragFinished, onNewSelectionDrag, onOutsideSelectionMousePressed, onSelectionDrag, onSelectionDropped, paragraphGraphicFactory, placeholder, text, totalHeightEstimate, totalWidthEstimate, useInitialStyleForInsertion, wrapText

    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

    Properties inherited from interface org.fxmisc.richtext.TextEditingArea

    anchor, caretBounds, caretColumn, caretPosition, currentParagraph, selectedText, selectionBounds, selection, showCaret

    Properties inherited from interface org.fxmisc.richtext.UndoActions

    redoAvailable, undoAvailable
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    class 
    A stream which collects text changes and waits for the specified time interval before emitting the changes.
    static class 
    Represents a highlight entry used to set corresponding styles.
    static class 
     
    static class 
    Used for building position-to-highlight maps, which are used to apply highlights.

    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
    Modifier and Type
    Field
    Description
    protected static final double
    The default maximum duration (in milliseconds) to wait for any new text changes before forcing the propagation of the currently aggregated text changes, if any.
    protected static final double
    The default maximum duration (in milliseconds) after which undoable edit should be completed if there is no user input.
    protected static final double
    Used to delay the update of the visible paragraph range, so that updates will not be made more often than 25 times per second.

    Fields inherited from class org.fxmisc.richtext.CodeArea

    WORD_OR_SYMBOL, WORD_PATTERN

    Fields inherited from class org.fxmisc.richtext.GenericStyledArea

    EMPTY_RANGE, foldCheck

    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
     
    SimpleEditor(double pPreventUndoMergeMillis)
     
    SimpleEditor(double pPreventUndoMergeMillis, double pAggreagatedChangeMillis)
     
    SimpleEditor(double pPreventUndoMergeMillis, double pAggregatedChangeMillis, javafx.beans.value.ObservableValue<Boolean> pSuppressAggregatedStream)
     
    SimpleEditor(javafx.beans.value.ObservableValue<Boolean> pSuppressAggregatedStream)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static org.javatuples.Triplet<Integer,Integer,Integer>
    aggregate(List<org.fxmisc.richtext.model.PlainTextChange> pChanges)
    Triplet: offset, old length, new length.
    Text changes are propagated not on every keystroke, but only if the user stops typing for a specified time interval, or the editor looses the focus.
    org.reactfx.EventStream<org.fxmisc.richtext.model.PlainTextChange>
    A stream, on top of stream, which merges multi-changes into a single change.
    protected void
    applyChange(org.fxmisc.richtext.model.PlainTextChange pChange)
     
    void
     
    void
    Note that highlight entries should not be disjoint.
    void
     
    void
     
    void
    clearStyles(int pStart, int pEnd, Collection<String> pStyles)
    Remove specified styles from range.
    javafx.beans.property.ReadOnlyBooleanProperty
     
    protected void
    edit(Runnable pEditOp)
    Performs the specified edit operation, then selects the affected range and scroll, if needed, so that caret is visible.
    protected void
    edit(Runnable pEditOp, boolean pSelect)
    Performs the specified edit operation and scroll, if needed, so that caret is visible.
    protected void
    edit(Runnable pEditOp, Consumer<javafx.scene.control.IndexRange> pRangeConsumer)
     
    void
    ensureVisible(int pStart, int pEnd)
     
    void
     
    com.iamsoft.util.collections.model.DelegatingNavigableMapModel<Integer,Integer>
     
    int
    getParagraphByOffset(int pCharOffset)
     
    javafx.scene.control.IndexRange
    Sometimes the visible paragraph range may not be calculated on time and may include non-existing lines.
    javafx.scene.control.IndexRange
     
    static boolean
    isEmptyChange(List<org.fxmisc.richtext.model.PlainTextChange> pChanges)
     
    boolean
    Gets the value of the typing property.
    protected void
    logSpans(int pStart, org.fxmisc.richtext.model.StyleSpans<? extends Collection<?>> pSpans)
     
    javafx.beans.value.ObservableValue<Integer>
     
    void
     
    void
    overlayHighlighting(NavigableMap<Integer,SimpleEditor.HighlightEntry> pHighlightMap, int pFromPos, int pToPos)
    Note that highlight entries should not be disjoint.
    protected void
    revertChange(org.fxmisc.richtext.model.PlainTextChange pChange)
     
    void
     
    void
     
    javafx.beans.property.BooleanProperty
     
    void
     
    protected void
     
    javafx.beans.property.ObjectProperty<javafx.scene.control.IndexRange>
     

    Methods inherited from class org.fxmisc.richtext.CodeArea

    selectWord, wordBreaksBackwards, wordBreaksForwards

    Methods inherited from class org.fxmisc.richtext.StyleClassedTextArea

    append, foldParagraphs, foldSelectedParagraphs, foldText, getAddFoldStyle, getFoldStyleCheck, getRemoveFoldStyle, insert, isFolded, replace, setStyleClass, unfoldParagraphs, unfoldText

    Methods inherited from class org.fxmisc.richtext.StyledTextArea

    createStyledTextNode, createStyledTextNode

    Methods inherited from class org.fxmisc.richtext.GenericStyledArea

    addCaret, addSelection, allParToVisibleParIndex, autoHeightProperty, autoScrollOnDragDesiredProperty, beingUpdatedProperty, computePrefHeight, configurePlaceholder, contextMenuObjectProperty, contextMenuXOffsetProperty, contextMenuYOffsetProperty, createMultiChange, createMultiChange, displaceCaret, dispose, editableProperty, estimatedScrollXProperty, estimatedScrollYProperty, fold, foldParagraphs, foldSelectedParagraphs, getAbsolutePosition, getApplyParagraphStyle, getCaretBoundsOnScreen, getCaretSelectionBind, getCharacterBoundsOnScreen, getClassCssMetaData, getContent, getContextMenu, getContextMenuXOffset, getContextMenuYOffset, getCssMetaData, getCurrentLineEndInParargraph, getCurrentLineStartInParargraph, getDocument, getInitialParagraphStyle, getInitialTextStyle, getLocale, getOnInsideSelectionMousePressReleased, getOnNewSelectionDragFinished, getOnOutsideSelectionMousePressed, getOnSelectionDropped, getParagraphBoundsOnScreen, getParagraphGraphic, getParagraphInsertionStyle, getParagraphLinesCount, getParagraphs, getParagraphSelection, getParagraphStyleForInsertionAt, getPlaceholder, getSegOps, getStyleAtPosition, getStyleAtPosition, getStyleCodecs, getStyleOfChar, getStyleOfChar, getStyleRangeAtPosition, getStyleRangeAtPosition, getStyleSpans, getStyleSpans, getStyleSpans, getText, getText, getText, getTextInsertionStyle, getTextStyleForInsertionAt, getUndoManager, getViewportHeight, getVisibleParagraphBoundsOnScreen, getVisibleParagraphs, handleInputMethodEvent, hit, isAutoHeight, isAutoScrollOnDragDesired, isContextMenuPresent, isEditable, isLineHighlighterOn, isPreserveStyle, isWrapText, layoutChildren, lengthProperty, lineEnd, lineIndex, lineStart, mouseOverTextDelayProperty, multiPlainChanges, multiRichChanges, nextLine, nextPage, offsetToPosition, onInsideSelectionMousePressReleasedProperty, onNewSelectionDragFinishedProperty, onNewSelectionDragProperty, onOutsideSelectionMousePressedProperty, onSelectionDragProperty, onSelectionDroppedProperty, paragraphGraphicFactoryProperty, placeholderProperty, plainTextChanges, position, prevLine, prevPage, recreateParagraphGraphic, removeCaret, removeSelection, replace, replace, replaceText, requestFollowCaret, richChanges, scrollBy, scrollXBy, scrollXToPixel, scrollYBy, scrollYToPixel, setAutoHeight, setAutoScrollOnDragDesired, setContextMenu, setContextMenuXOffset, setContextMenuYOffset, setEditable, setLineHighlighterFill, setLineHighlighterOn, setLocale, setOnInsideSelectionMousePressReleased, setOnNewSelectionDragFinished, setOnOutsideSelectionMousePressed, setOnSelectionDropped, setParagraphInsertionStyle, setParagraphStyle, setPlaceholder, setPlaceholder, setStyle, setStyle, setStyle, setStyleCodecs, setStyleSpans, setStyleSpans, setTextInsertionStyle, setUndoManager, setWrapText, showParagraphAtBottom, showParagraphAtCenter, showParagraphAtTop, showParagraphInViewport, showParagraphRegion, subDocument, subDocument, textProperty, totalHeightEstimateProperty, totalWidthEstimateProperty, unfoldParagraphs, useInitialStyleForInsertionProperty, viewportDirtyEvents, visibleParToAllParIndex, wrapTextProperty

    Methods inherited from class javafx.scene.layout.Region

    backgroundProperty, borderProperty, cacheShapeProperty, centerShapeProperty, computeMaxHeight, computeMaxWidth, computeMinHeight, computeMinWidth, 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, focusVisibleProperty, focusWithinProperty, 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, 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 org.fxmisc.richtext.ClipboardActions

    copy, cut, paste

    Methods inherited from interface org.fxmisc.richtext.EditActions

    append, append, appendText, clear, deleteNextChar, deletePreviousChar, deleteText, deleteText, deleteText, insert, 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, start

    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, getOnNewSelectionDrag, getOnSelectionDrag, getParagraphGraphicFactory, hideContextMenu, lastVisibleParToAllParIndex, selectLine, setMouseOverTextDelay, setOnNewSelectionDrag, setOnSelectionDrag, setParagraphGraphicFactory

    Methods inherited from interface org.fxmisc.flowless.Virtualized

    getEstimatedScrollX, getEstimatedScrollY, getTotalHeightEstimate, getTotalWidthEstimate, scrollBy, scrollToPixel, scrollToPixel
  • Property Details

  • Field Details

    • DEFAULT_PREVENT_MERGE_MILLIS

      protected static final double DEFAULT_PREVENT_MERGE_MILLIS
      The default maximum duration (in milliseconds) after which undoable edit should be completed if there is no user input.
      See Also:
    • DEFAULT_AGGREGATED_CHANGE_MILLIS

      protected static final double DEFAULT_AGGREGATED_CHANGE_MILLIS
      The default maximum duration (in milliseconds) to wait for any new text changes before forcing the propagation of the currently aggregated text changes, if any.
      See Also:
    • VISIBLE_PARAGRAPH_RANGE_UPDATE_DELAY

      protected static final double VISIBLE_PARAGRAPH_RANGE_UPDATE_DELAY
      Used to delay the update of the visible paragraph range, so that updates will not be made more often than 25 times per second.
      See Also:
  • Constructor Details

    • SimpleEditor

      public SimpleEditor()
    • SimpleEditor

      public SimpleEditor(double pPreventUndoMergeMillis)
    • SimpleEditor

      public SimpleEditor(double pPreventUndoMergeMillis, double pAggreagatedChangeMillis)
    • SimpleEditor

      public SimpleEditor(javafx.beans.value.ObservableValue<Boolean> pSuppressAggregatedStream)
    • SimpleEditor

      public SimpleEditor(double pPreventUndoMergeMillis, double pAggregatedChangeMillis, javafx.beans.value.ObservableValue<Boolean> pSuppressAggregatedStream)
      Parameters:
      pPreventUndoMergeMillis - Specifies the time interval (in milliseconds) after which undoable edit should be completed if there is no user input.
      pAggregatedChangeMillis - Specifies the maximum duration (in milliseconds) to wait for any new text changes before forcing the propagation of the currently aggregated text changes, if any.
      pSuppressAggregatedStream - Used to suppress the aggregated stream. Note that all pending changes are emitted when the stream is suppressed.
  • Method Details

    • visibleParagraphRange

      public javafx.beans.property.ObjectProperty<javafx.scene.control.IndexRange> visibleParagraphRange()
    • getVisibleParagraphRange

      public javafx.scene.control.IndexRange getVisibleParagraphRange()
    • typingProperty

      public javafx.beans.property.BooleanProperty typingProperty()
      Returns:
      the typing property
      See Also:
    • isTyping

      public boolean isTyping()
      Gets the value of the typing property.
      Property description:
      Returns:
      the value of the typing property
      See Also:
    • mouseOverTextProperty

      public javafx.beans.value.ObservableValue<Integer> mouseOverTextProperty()
      Returns:
      the mouseOverText property
    • ctrlDownProperty

      public javafx.beans.property.ReadOnlyBooleanProperty ctrlDownProperty()
      Returns:
      the ctrlDown property
    • getFoundRangeMap

      public com.iamsoft.util.collections.model.DelegatingNavigableMapModel<Integer,Integer> getFoundRangeMap()
    • updateVisibleParagraphRange

      protected void updateVisibleParagraphRange()
    • getSafeVisibleParagraphRange

      public javafx.scene.control.IndexRange getSafeVisibleParagraphRange()
      Sometimes the visible paragraph range may not be calculated on time and may include non-existing lines. In such cases this method can be used to get a valid paragraph range - one that doesn't include non-existing lines.
      Returns:
      index range
    • aggregatedMultiChanges

      public SimpleEditor.AggregatedEventStream aggregatedMultiChanges()
      Text changes are propagated not on every keystroke, but only if the user stops typing for a specified time interval, or the editor looses the focus.
      Returns:
      event stream
    • aggregatedPlainChanges

      public org.reactfx.EventStream<org.fxmisc.richtext.model.PlainTextChange> aggregatedPlainChanges()
      A stream, on top of stream, which merges multi-changes into a single change. The stream also meets the following requirement - if a new change is emitted, applying the change to the text that was in the editor prior that change, is equal to the current text in the editor.
      Returns:
      event stream
      See Also:
    • clearStyles

      public void clearStyles(int pStart, int pEnd, Collection<String> pStyles)
      Remove specified styles from range.
    • updateFindHighlighting

      public void updateFindHighlighting(NavigableMap<Integer,Integer> pFoundRangeMap)
    • applyFoundHighlighting

      public void applyFoundHighlighting(NavigableMap<Integer,Integer> pHighlightMap)
    • overlayHighlighting

      public void overlayHighlighting(NavigableMap<Integer,SimpleEditor.HighlightEntry> pHighlightMap, int pFromPos, int pToPos)
      Note that highlight entries should not be disjoint.
    • overlayHighlighting

      public void overlayHighlighting(NavigableMap<Integer,SimpleEditor.HighlightEntry> pHighlightMap)
    • clearFoundHighlighting

      public void clearFoundHighlighting()
    • applyChange

      protected void applyChange(org.fxmisc.richtext.model.PlainTextChange pChange)
    • revertChange

      protected void revertChange(org.fxmisc.richtext.model.PlainTextChange pChange)
    • applyHighlighting

      public void applyHighlighting(NavigableMap<Integer,SimpleEditor.HighlightEntry> pPosToHighlightMap)
      Note that highlight entries should not be disjoint.
    • clearRedoHistory

      public void clearRedoHistory()
    • edit

      protected void edit(Runnable pEditOp)
      Performs the specified edit operation, then selects the affected range and scroll, if needed, so that caret is visible.
      Parameters:
      pEditOp - edit operation
    • edit

      protected void edit(Runnable pEditOp, boolean pSelect)
      Performs the specified edit operation and scroll, if needed, so that caret is visible.
      Parameters:
      pEditOp - edit operation
      pSelect - If true, the the affected range is selected.
    • edit

      protected void edit(Runnable pEditOp, Consumer<javafx.scene.control.IndexRange> pRangeConsumer)
      Parameters:
      pEditOp - An edit operation to be performed.
      pRangeConsumer - A range consumer, which will be notified about the affected range.
    • logSpans

      protected void logSpans(int pStart, org.fxmisc.richtext.model.StyleSpans<? extends Collection<?>> pSpans)
    • getParagraphByOffset

      public int getParagraphByOffset(int pCharOffset)
    • setCtrlClickNavigation

      public void setCtrlClickNavigation(NavigableMap<Integer,SimpleEditor.NavigationEntry> pNavMap, Collection<String> pLinkStyles)
    • selectAndScrollTo

      public void selectAndScrollTo(Map.Entry<Integer,Integer> pRange)
    • ensureVisible

      public void ensureVisible(Map.Entry<Integer,Integer> pRange)
    • ensureVisible

      public void ensureVisible(int pStart, int pEnd)
    • aggregate

      public static org.javatuples.Triplet<Integer,Integer,Integer> aggregate(List<org.fxmisc.richtext.model.PlainTextChange> pChanges)
      Triplet: offset, old length, new length.
    • isEmptyChange

      public static boolean isEmptyChange(List<org.fxmisc.richtext.model.PlainTextChange> pChanges)