Class InsertLineAction

  • All Implemented Interfaces:
    IAction, IUpdate

    public class InsertLineAction
    extends TextEditorAction
    This action implements smart return. Instead of breaking the line where we are, we do the following:

    Smart Enter

    • if the caret is on a line containing any non-whitespace, a line is inserted below the current one and the caret moved to it,
    • if the caret is on a whitespace-only line, a line is inserted below the current line, but the caret stays in its position.

    Smart Enter Inverse

    • if the caret is on a line containing any non-whitespace, we insert a line above the current one and move the caret to it (i.e. it stays at the same offset in the widget),
    • if the caret is on a whitespace-only line, a line is inserted above the current line, but the caret stays in its logical position (i.e., it gets shifted one line down in the document, but keeps its position relative to the content following the caret).
    Since:
    3.0
    • Field Detail

      • fAbove

        protected boolean fAbove
        true if this action inserts a line above the current (Smart Enter Inverse), false otherwise
    • Constructor Detail

      • InsertLineAction

        public InsertLineAction​(ResourceBundle bundle,
                                String prefix,
                                ITextEditor textEditor,
                                boolean above)
        Creates a new smart enter action.
        Parameters:
        bundle - the resource bundle
        prefix - the prefix to use to get properties from bundle
        textEditor - the editor that the action acts upon
        above - whether new lines are inserted above or below the caret's line.
    • Method Detail

      • update

        public void update()
        Description copied from class: TextEditorAction
        Always enables this action if it is connected to a text editor. If the associated editor is null, the action is disabled. Subclasses may override.
        Specified by:
        update in interface IUpdate
        Overrides:
        update in class TextEditorAction
      • run

        public void run()
        Description copied from class: Action
        The default implementation of this IAction method does nothing. Subclasses should override this method if they do not need information from the triggering event, or override runWithEvent(Event) if they do.
        Specified by:
        run in interface IAction
        Overrides:
        run in class Action
        See Also:
        How radio buttons are handled, How check boxes are handled