public class TextSelection

  1. Object
  2. TextSelection

Text selection support for Codename One applications. The class provides a light-weight text selection implementation, allowing users to select and copy text from a form.

Enabling Text Selection

Text selection needs to be enabled on a per-form basis.

`myForm.getTextSelection().setEnabled(true);`

If text selection is enabled on a form, then non-editable text fields and text areas will allow text selection by default. Labels and SpanLabels have text selection disabled by default, but can be enabled using Label#setTextSelectionEnabled(boolean), and SpanLabel#setTextSelectionEnabled(boolean) respectively. Similarly, text selection can be disabled on TextFields and TextAreas using TextArea#setTextSelectionEnabled(boolean).

Nested types

enum TextSelection.TextSelectionTriggerTrigger types for text selection.
interface TextSelection.TextSelectionSupportAn interface that can be returned from any Component’s Component#getTextSelectionSupport() method to provide text selection support on that component.
class TextSelection.CharEncapsulates a box around a single character/glyph in the UI, storing the component that it belongs to, the position of its corresponding character in the component’s text, and the bounds of the box, relative to #getSelectionRoot().
class TextSelection.SpanEncapsulates a span of text on the screen.
class TextSelection.SpansEncapsulates a collection of Spans.

Methods

public static TextSelection.TextSelectionTrigger getDefaultTextSelectionTrigger()Gets the default trigger type for text selection.
public static Component findSelectionRoot(Component cmp)Finds the selection root for a component.
public boolean isEnabled()Returns true if text selection is enabled.
public void setEnabled(boolean enabled)Enables or disables text selection.
public Component getSelectionRoot()Gets the selection root for the current text selection.
public TextSelection.Char newChar(int pos, int x, int y, int w, int h)Creates a new Char box.
public TextSelection.Char newChar(int pos, Rectangle bounds)Creates a new Char box
public TextSelection.Span newSpan(Component component)Creates a new Span based on content in the given component.
public TextSelection.Spans newSpans()Creates a new Spans (a collection of Spans).
public String getSelectionAsText()Gets the selected text as a string.
public void update()Updates the text selected spans based on the selected bounds.
public boolean isRtl()Indicates if selection is operating in RTL (Right to left, bidi) mode.
public void setRtl(boolean rtl)Toggles selection RTL (Right to left, bidi) mode.
public void addTextSelectionListener(ActionListener l)Adds a listener to be notified when the text selection changes.
public void removeTextSelectionListener(ActionListener l)Removes a listener so it no longer is notified when text selection changes.
public void copy()Copies the current selection to the system clipboard.
public void selectAll()Selects all of the selectable text in the TextSelection (generally on the current form).
public void setIgnoreEvents(boolean ignore)This flag can be set to cause text selection to ignore pointer events which might cause the selection to get lost or changed.

Inherited methods

Method details

getDefaultTextSelectionTrigger

public static TextSelection.TextSelectionTrigger getDefaultTextSelectionTrigger()
Gets the default trigger type for text selection. This will vary by platform. On mobile/touch devices, it will return TextSelectionTrigger#LongPress, and on desktop environments with a mouse, it will return TextSelectionTrigger#Press.

Returns

The default trigger type for text selection.

findSelectionRoot

public static Component findSelectionRoot(Component cmp)
Finds the selection root for a component. This is generally just the first scrollable component discovered with crawling up the component hierarchy from the given component.

Parameters

cmp Component
The component we start with.

Returns

The selection root for a given component.

isEnabled

public boolean isEnabled()
Returns true if text selection is enabled. Default is false.

setEnabled

public void setEnabled(boolean enabled)
Enables or disables text selection.

getSelectionRoot

public Component getSelectionRoot()

Gets the selection root for the current text selection. The selection root will be the nearest scrollable parent of the component that triggered the text selection.

Note: All Span coordinates are relative to the selection root

newChar

public TextSelection.Char newChar(int pos, int x, int y, int w, int h)
Creates a new Char box.

Parameters

pos int
The position of the character that this is referencing within its text component.
x int
The x coordinate of the box, relative to #getSelectionRoot()
y int
The y coordinate of the box, relative to #getSelectionRoot()
w int
The width of the box.
h int
The height of the box.

newChar

public TextSelection.Char newChar(int pos, Rectangle bounds)
Creates a new Char box

Parameters

pos int
The position of the character that this is referencing within its text component.
bounds Rectangle
The bounds of the box, relative to #getSelectionRoot()

newSpan

public TextSelection.Span newSpan(Component component)
Creates a new Span based on content in the given component.

Returns

A new span

newSpans

public TextSelection.Spans newSpans()
Creates a new Spans (a collection of Spans).

getSelectionAsText

public String getSelectionAsText()
Gets the selected text as a string.

update

public void update()
Updates the text selected spans based on the selected bounds.

isRtl

public boolean isRtl()
Indicates if selection is operating in RTL (Right to left, bidi) mode.

Returns

true if the selection is in RTL mode

setRtl

public void setRtl(boolean rtl)
Toggles selection RTL (Right to left, bidi) mode.

Parameters

rtl boolean
true to activate the right to left mode

addTextSelectionListener

public void addTextSelectionListener(ActionListener l)
Adds a listener to be notified when the text selection changes.

removeTextSelectionListener

public void removeTextSelectionListener(ActionListener l)
Removes a listener so it no longer is notified when text selection changes.

copy

public void copy()
Copies the current selection to the system clipboard.

selectAll

public void selectAll()
Selects all of the selectable text in the TextSelection (generally on the current form).

setIgnoreEvents

public void setIgnoreEvents(boolean ignore)
This flag can be set to cause text selection to ignore pointer events which might cause the selection to get lost or changed. This is used internally when a context menu is displayed so that clicking on the context menu doesn’t cause the current text selection to be lost.