Class CodeAreaControl

java.lang.Object
qupath.lib.gui.scripting.richtextfx.CodeAreaControl
All Implemented Interfaces:
TextAppendable, EditableText, ScriptEditorControl<org.fxmisc.flowless.VirtualizedScrollPane<org.fxmisc.richtext.CodeArea>>

public class CodeAreaControl extends Object implements ScriptEditorControl<org.fxmisc.flowless.VirtualizedScrollPane<org.fxmisc.richtext.CodeArea>>
Code area control using RichTextFX.
  • Property Details

  • Method Details

    • createCodeEditor

      public static CodeAreaControl createCodeEditor()
      Create an editable control for writing code.
      Returns:
    • createLog

      public static CodeAreaControl createLog()
      Create a non-editable control for showing log messages.
      Returns:
    • textProperty

      public StringProperty textProperty()
      Description copied from interface: ScriptEditorControl
      Text currently in the editor control.
      Specified by:
      textProperty in interface ScriptEditorControl<org.fxmisc.flowless.VirtualizedScrollPane<org.fxmisc.richtext.CodeArea>>
      Returns:
      the text property
      See Also:
    • setText

      public void setText(String text)
      Sets the value of the text property.
      Specified by:
      setText in interface EditableText
      Property description:
      Parameters:
      text - the value for the text property
      See Also:
    • getText

      public String getText()
      Gets the value of the text property.
      Specified by:
      getText in interface EditableText
      Property description:
      Returns:
      the value of the text property
      See Also:
    • selectedTextProperty

      public ObservableValue<String> selectedTextProperty()
      Description copied from interface: ScriptEditorControl
      Text currently selected in the editor control.
      Specified by:
      selectedTextProperty in interface ScriptEditorControl<org.fxmisc.flowless.VirtualizedScrollPane<org.fxmisc.richtext.CodeArea>>
      Returns:
      the selectedText property
      See Also:
    • getSelectedText

      public String getSelectedText()
      Gets the value of the selectedText property.
      Specified by:
      getSelectedText in interface EditableText
      Property description:
      Returns:
      the value of the selectedText property
      See Also:
    • getRegion

      public org.fxmisc.flowless.VirtualizedScrollPane<org.fxmisc.richtext.CodeArea> getRegion()
      Description copied from interface: ScriptEditorControl
      Get the region representing this control, so it may be added to a scene.
      Specified by:
      getRegion in interface ScriptEditorControl<org.fxmisc.flowless.VirtualizedScrollPane<org.fxmisc.richtext.CodeArea>>
      Returns:
    • isUndoable

      public boolean isUndoable()
      Description copied from interface: ScriptEditorControl
      Returns true if 'undo' can be applied to the control.
      Specified by:
      isUndoable in interface ScriptEditorControl<org.fxmisc.flowless.VirtualizedScrollPane<org.fxmisc.richtext.CodeArea>>
      Returns:
    • isRedoable

      public boolean isRedoable()
      Description copied from interface: ScriptEditorControl
      Returns true if 'redo' can be applied to the control.
      Specified by:
      isRedoable in interface ScriptEditorControl<org.fxmisc.flowless.VirtualizedScrollPane<org.fxmisc.richtext.CodeArea>>
      Returns:
    • undo

      public void undo()
      Description copied from interface: ScriptEditorControl
      Request undo.
      Specified by:
      undo in interface ScriptEditorControl<org.fxmisc.flowless.VirtualizedScrollPane<org.fxmisc.richtext.CodeArea>>
    • redo

      public void redo()
      Description copied from interface: ScriptEditorControl
      Request redo.
      Specified by:
      redo in interface ScriptEditorControl<org.fxmisc.flowless.VirtualizedScrollPane<org.fxmisc.richtext.CodeArea>>
    • copy

      public void copy()
      Description copied from interface: ScriptEditorControl
      Request copy the current selection.
      Specified by:
      copy in interface ScriptEditorControl<org.fxmisc.flowless.VirtualizedScrollPane<org.fxmisc.richtext.CodeArea>>
    • cut

      public void cut()
      Description copied from interface: ScriptEditorControl
      Request cut the current selection.
      Specified by:
      cut in interface ScriptEditorControl<org.fxmisc.flowless.VirtualizedScrollPane<org.fxmisc.richtext.CodeArea>>
    • paste

      public void paste()
      Description copied from interface: ScriptEditorControl
      Request paste from the system clipboard.
      Specified by:
      paste in interface ScriptEditorControl<org.fxmisc.flowless.VirtualizedScrollPane<org.fxmisc.richtext.CodeArea>>
    • appendText

      public void appendText(String text)
      Description copied from interface: TextAppendable
      Append the specified text to the appendable.
      Specified by:
      appendText in interface EditableText
      Specified by:
      appendText in interface TextAppendable
      Parameters:
      text - the text to be appended
    • clear

      public void clear()
      Description copied from interface: EditableText
      Request clear the contents of the control.
      Specified by:
      clear in interface EditableText
    • getCaretPosition

      public int getCaretPosition()
      Gets the value of the caretPosition property.
      Specified by:
      getCaretPosition in interface EditableText
      Property description:
      Returns:
      the value of the caretPosition property
      See Also:
    • insertText

      public void insertText(int pos, String text)
      Description copied from interface: EditableText
      Request inserting the specified text.
      Specified by:
      insertText in interface EditableText
      Parameters:
      pos - position to insert the text
      text - the text to insert
    • deleteText

      public void deleteText(int startIdx, int endIdx)
      Description copied from interface: EditableText
      Request deleting the text within the specified range.
      Specified by:
      deleteText in interface EditableText
      Parameters:
      startIdx -
      endIdx -
    • deselect

      public void deselect()
      Description copied from interface: EditableText
      Deselect any currently-selected text.
      Specified by:
      deselect in interface EditableText
    • getSelection

      public IndexRange getSelection()
      Description copied from interface: ScriptEditorControl
      Get the range of the currently-selected text.
      Specified by:
      getSelection in interface ScriptEditorControl<org.fxmisc.flowless.VirtualizedScrollPane<org.fxmisc.richtext.CodeArea>>
      Returns:
    • selectRange

      public void selectRange(int startIdx, int endIdx)
      Description copied from interface: EditableText
      Set the range of the selected text.
      Specified by:
      selectRange in interface EditableText
      Parameters:
      startIdx -
      endIdx -
    • wrapTextProperty

      public BooleanProperty wrapTextProperty()
      Description copied from interface: ScriptEditorControl
      Request wordwrap.
      Specified by:
      wrapTextProperty in interface ScriptEditorControl<org.fxmisc.flowless.VirtualizedScrollPane<org.fxmisc.richtext.CodeArea>>
      Returns:
      the wrapText property
    • positionCaret

      public void positionCaret(int index)
      Description copied from interface: EditableText
      Set the caret position to the specified index
      Specified by:
      positionCaret in interface EditableText
      Parameters:
      index -
    • requestFollowCaret

      public void requestFollowCaret()
      Description copied from interface: ScriptEditorControl
      Request that the X and Y scrolls are adjusted to ensure the caret is visible.

      This method does nothing by default. This means that a class extending this interface must specifically implement this method if a different behavior is expected.

      Specified by:
      requestFollowCaret in interface ScriptEditorControl<org.fxmisc.flowless.VirtualizedScrollPane<org.fxmisc.richtext.CodeArea>>
    • replaceSelection

      public void replaceSelection(String text)
      Description copied from interface: EditableText
      Insert the specified text, replacing any existing selection.
      Specified by:
      replaceSelection in interface EditableText
      Parameters:
      text - the text to insert
    • setContextMenu

      public void setContextMenu(ContextMenu menu)
      Description copied from interface: ScriptEditorControl
      Set the context menu for the control.
      Specified by:
      setContextMenu in interface ScriptEditorControl<org.fxmisc.flowless.VirtualizedScrollPane<org.fxmisc.richtext.CodeArea>>
      Parameters:
      menu -
    • getContextMenu

      public ContextMenu getContextMenu()
      Description copied from interface: ScriptEditorControl
      Get the context menu for the control.
      Specified by:
      getContextMenu in interface ScriptEditorControl<org.fxmisc.flowless.VirtualizedScrollPane<org.fxmisc.richtext.CodeArea>>
      Returns:
    • requestFocus

      public void requestFocus()
      Description copied from interface: ScriptEditorControl
      Request that the control is focused.
      Specified by:
      requestFocus in interface ScriptEditorControl<org.fxmisc.flowless.VirtualizedScrollPane<org.fxmisc.richtext.CodeArea>>
    • caretPositionProperty

      public ReadOnlyIntegerProperty caretPositionProperty()
      Description copied from interface: ScriptEditorControl
      Property for the current caret position.
      Specified by:
      caretPositionProperty in interface ScriptEditorControl<org.fxmisc.flowless.VirtualizedScrollPane<org.fxmisc.richtext.CodeArea>>
      Returns:
      the caretPosition property
      See Also:
    • setLanguage

      public void setLanguage(ScriptLanguage language)
      Description copied from interface: ScriptEditorControl
      Set the language for text to be displayed by this control.

      The default implementation does nothing. Implementing classes may choose to change the control's behavior based on the language.

      Specified by:
      setLanguage in interface ScriptEditorControl<org.fxmisc.flowless.VirtualizedScrollPane<org.fxmisc.richtext.CodeArea>>
      Parameters:
      language -
    • getLanguage

      public ScriptLanguage getLanguage()
      Description copied from interface: ScriptEditorControl
      Get any language stored for text to be displayed by this control.

      The default implementation always returns null. Implementing classes may choose to store any set language, and modify the control's behavior accordingly.

      Specified by:
      getLanguage in interface ScriptEditorControl<org.fxmisc.flowless.VirtualizedScrollPane<org.fxmisc.richtext.CodeArea>>
      Returns:
    • setSmartEditing

      public void setSmartEditing(boolean smartEditing)
      Request smart editing, e.g. to insert closing parentheses.
      Parameters:
      smartEditing -
    • getSmartEditing

      public boolean getSmartEditing()
      Check whether smart editing is requested.
      Returns: