Package org.eclipse.jface.preference

## Class StringFieldEditor

- java.lang.Object
- - org.eclipse.jface.preference.FieldEditor
  - - org.eclipse.jface.preference.StringFieldEditor

Direct Known Subclasses:
  `IntegerFieldEditor`, `StringButtonFieldEditor`

    public class StringFieldEditor
    extends FieldEditor

A field editor for a string type preference.

This class may be used as is, or subclassed as required.

### Field Summary

Fields
`protected String` `oldValue` Old text value.
`static int` `UNLIMITED` Text limit constant (value `-1`) indicating unlimited text limit and width.
`static int` `VALIDATE_ON_FOCUS_LOST` Validation strategy constant (value `1`) indicating that the editor should perform validation only when the text widget loses focus.
`static int` `VALIDATE_ON_KEY_STROKE` Validation strategy constant (value `0`) indicating that the editor should perform validation after every key stroke.

### Fields inherited from class org.eclipse.jface.preference.FieldEditor

`HORIZONTAL_GAP, IS_VALID, VALUE`

### Constructor Summary

Constructors
`protected` `StringFieldEditor()` Creates a new string field editor
`` `StringFieldEditor​(String name, String labelText, int widthInChars, int heigthInChars, int strategy, Composite parent)` Creates a string field editor.
`` `StringFieldEditor​(String name, String labelText, int width, int strategy, Composite parent)` Creates a string field editor.
`` `StringFieldEditor​(String name, String labelText, int width, Composite parent)` Creates a string field editor.
`` `StringFieldEditor​(String name, String labelText, Composite parent)` Creates a string field editor of unlimited width.

### Method Summary

All Methods Instance Methods Concrete Methods
`protected void` `adjustForNumColumns​(int numColumns)` Adjusts the horizontal span of this field editor's basic controls.
`protected boolean` `checkState()` Checks whether the text input field contains a valid value or not.
`protected Text` `createTextWidget​(Composite parent)` Create the text widget.
`protected boolean` `doCheckState()` Hook for subclasses to do specific state checks.
`protected void` `doFillIntoGrid​(Composite parent, int numColumns)` Fills this field editor's basic controls into the given parent.
`protected void` `doLoad()` Initializes this field editor with the preference value from the preference store.
`protected void` `doLoadDefault()` Initializes this field editor with the default preference value from the preference store.
`protected void` `doStore()` Stores the preference value from this field editor into the preference store.
`String` `getErrorMessage()` Returns the error message that will be displayed when and if an error occurs.
`int` `getNumberOfControls()` Returns the number of basic controls this field editor consists of.
`String` `getStringValue()` Returns the field editor's value.
`protected Text` `getTextControl()` Returns this field editor's text control.
`Text` `getTextControl​(Composite parent)` Returns this field editor's text control.
`boolean` `isEmptyStringAllowed()` Returns whether an empty string is a valid value.
`boolean` `isValid()` Returns whether this field editor contains a valid value.
`protected void` `refreshValidState()` Refreshes this field editor's valid state after a value change and fires an `IS_VALID` property change event if warranted.
`void` `setEmptyStringAllowed​(boolean b)` Sets whether the empty string is a valid value or not.
`void` `setEnabled​(boolean enabled, Composite parent)` Set whether or not the controls in the field editor are enabled.
`void` `setErrorMessage​(String message)` Sets the error message that will be displayed when and if an error occurs.
`void` `setFocus()` Sets the focus to this field editor.
`void` `setStringValue​(String value)` Sets this field editor's value.
`void` `setTextLimit​(int limit)` Sets this text field's text limit.
`void` `setValidateStrategy​(int value)` Sets the strategy for validating the text.
`void` `showErrorMessage()` Shows the error message set via `setErrorMessage`.
`protected void` `valueChanged()` Informs this field editor's listener, if it has one, about a change to the value (`VALUE` property) provided that the old and new values are different.

### Methods inherited from class org.eclipse.jface.preference.FieldEditor

`applyFont, checkParent, clearErrorMessage, clearMessage, convertHorizontalDLUsToPixels, convertVerticalDLUsToPixels, createControl, dispose, fillIntoGrid, fireStateChanged, fireValueChanged, getFieldEditorFontName, getLabelControl, getLabelControl, getLabelText, getPage, getPreferenceName, getPreferencePage, getPreferenceStore, init, load, loadDefault, presentsDefaultValue, setButtonLayoutData, setLabelText, setPage, setPreferenceName, setPreferencePage, setPreferenceStore, setPresentsDefaultValue, setPropertyChangeListener, showErrorMessage, showMessage, store`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### VALIDATE_ON_KEY_STROKE

    public static final int VALIDATE_ON_KEY_STROKE

Validation strategy constant (value `0`) indicating that the editor should perform validation after every key stroke.

See Also:
  `setValidateStrategy(int)`, Constant Field Values

#### VALIDATE_ON_FOCUS_LOST

    public static final int VALIDATE_ON_FOCUS_LOST

Validation strategy constant (value `1`) indicating that the editor should perform validation only when the text widget loses focus.

See Also:
  `setValidateStrategy(int)`, Constant Field Values

#### UNLIMITED

    public static int UNLIMITED

Text limit constant (value `-1`) indicating unlimited text limit and width.

#### oldValue

    protected String oldValue

Old text value.

Since:
  3.4 this field is protected.

### Constructor Detail

#### StringFieldEditor

    protected StringFieldEditor()

Creates a new string field editor

#### StringFieldEditor

    public StringFieldEditor​(String name,
                             String labelText,
                             int widthInChars,
                             int heigthInChars,
                             int strategy,
                             Composite parent)

Creates a string field editor. Use the method `setTextLimit` to limit the text.

Parameters:
  `name` - the name of the preference this field editor works on
  `labelText` - the label text of the field editor
  `widthInChars` - the width of the text input field in characters, or `UNLIMITED` for no limit
  `heigthInChars` - the height of the text input field in characters.
  `strategy` - either `VALIDATE_ON_KEY_STROKE` to perform on the fly checking (the default), or `VALIDATE_ON_FOCUS_LOST` to perform validation only after the text has been typed in
  `parent` - the parent of the field editor's control
Since:
  3.17

#### StringFieldEditor

    public StringFieldEditor​(String name,
                             String labelText,
                             int width,
                             int strategy,
                             Composite parent)

Creates a string field editor. Use the method `setTextLimit` to limit the text.

Parameters:
  `name` - the name of the preference this field editor works on
  `labelText` - the label text of the field editor
  `width` - the width of the text input field in characters, or `UNLIMITED` for no limit
  `strategy` - either `VALIDATE_ON_KEY_STROKE` to perform on the fly checking (the default), or `VALIDATE_ON_FOCUS_LOST` to perform validation only after the text has been typed in
  `parent` - the parent of the field editor's control
Since:
  2.0

#### StringFieldEditor

    public StringFieldEditor​(String name,
                             String labelText,
                             int width,
                             Composite parent)

Creates a string field editor. Use the method `setTextLimit` to limit the text.

Parameters:
  `name` - the name of the preference this field editor works on
  `labelText` - the label text of the field editor
  `width` - the width of the text input field in characters, or `UNLIMITED` for no limit
  `parent` - the parent of the field editor's control

#### StringFieldEditor

    public StringFieldEditor​(String name,
                             String labelText,
                             Composite parent)

Creates a string field editor of unlimited width. Use the method `setTextLimit` to limit the text.

Parameters:
  `name` - the name of the preference this field editor works on
  `labelText` - the label text of the field editor
  `parent` - the parent of the field editor's control

### Method Detail

#### adjustForNumColumns

    protected void adjustForNumColumns​(int numColumns)

Description copied from class: `FieldEditor`
Adjusts the horizontal span of this field editor's basic controls.

Subclasses must implement this method to adjust the horizontal span of controls so they appear correct in the given number of columns.

The number of columns will always be equal to or greater than the value returned by this editor's `getNumberOfControls` method.

Specified by:
  `adjustForNumColumns` in class `FieldEditor`
Parameters:
  `numColumns` - the number of columns

#### checkState

    protected boolean checkState()

Checks whether the text input field contains a valid value or not.

Returns:
  `true` if the field value is valid, and `false` if invalid

#### doCheckState

    protected boolean doCheckState()

Hook for subclasses to do specific state checks.

The default implementation of this framework method does nothing and returns `true`. Subclasses should override this method to specific state checks.

Returns:
  `true` if the field value is valid, and `false` if invalid

#### doFillIntoGrid

    protected void doFillIntoGrid​(Composite parent,
                                  int numColumns)

Fills this field editor's basic controls into the given parent.

The string field implementation of this `FieldEditor` framework method contributes the text field. Subclasses may override but must call `super.doFillIntoGrid`.

Specified by:
  `doFillIntoGrid` in class `FieldEditor`
Parameters:
  `parent` - the composite used as a parent for the basic controls; the parent's layout must be a `GridLayout`
  `numColumns` - the number of columns

#### doLoad

    protected void doLoad()

Description copied from class: `FieldEditor`
Initializes this field editor with the preference value from the preference store.

Subclasses must implement this method to properly initialize the field editor.

Specified by:
  `doLoad` in class `FieldEditor`

#### doLoadDefault

    protected void doLoadDefault()

Description copied from class: `FieldEditor`
Initializes this field editor with the default preference value from the preference store.

Subclasses must implement this method to properly initialize the field editor.

Specified by:
  `doLoadDefault` in class `FieldEditor`

#### doStore

    protected void doStore()

Description copied from class: `FieldEditor`
Stores the preference value from this field editor into the preference store.

Subclasses must implement this method to save the entered value into the preference store.

Specified by:
  `doStore` in class `FieldEditor`

#### getErrorMessage

    public String getErrorMessage()

Returns the error message that will be displayed when and if an error occurs.

Returns:
  the error message, or `null` if none

#### getNumberOfControls

    public int getNumberOfControls()

Description copied from class: `FieldEditor`
Returns the number of basic controls this field editor consists of.

Specified by:
  `getNumberOfControls` in class `FieldEditor`
Returns:
  the number of controls

#### getStringValue

    public String getStringValue()

Returns the field editor's value.

Returns:
  the current value

#### getTextControl

    protected Text getTextControl()

Returns this field editor's text control.

Returns:
  the text control, or `null` if no text field is created yet

#### getTextControl

    public Text getTextControl​(Composite parent)

Returns this field editor's text control.

The control is created if it does not yet exist

Parameters:
  `parent` - the parent
Returns:
  the text control

#### createTextWidget

    protected Text createTextWidget​(Composite parent)

Create the text widget.

Parameters:
  `parent` - the parent composite
Returns:
  The widget
Since:
  3.17

#### isEmptyStringAllowed

    public boolean isEmptyStringAllowed()

Returns whether an empty string is a valid value.

Returns:
  `true` if an empty string is a valid value, and `false` if an empty string is invalid
See Also:
  `setEmptyStringAllowed(boolean)`

#### isValid

    public boolean isValid()

Description copied from class: `FieldEditor`
Returns whether this field editor contains a valid value.

The default implementation of this framework method returns `true`. Subclasses wishing to perform validation should override both this method and `refreshValidState`.

Overrides:
  `isValid` in class `FieldEditor`
Returns:
  `true` if the field value is valid, and `false` if invalid
See Also:
  `FieldEditor.refreshValidState()`

#### refreshValidState

    protected void refreshValidState()

Description copied from class: `FieldEditor`
Refreshes this field editor's valid state after a value change and fires an `IS_VALID` property change event if warranted.

The default implementation of this framework method does nothing. Subclasses wishing to perform validation should override both this method and `isValid`.

Overrides:
  `refreshValidState` in class `FieldEditor`
See Also:
  `FieldEditor.isValid()`

#### setEmptyStringAllowed

    public void setEmptyStringAllowed​(boolean b)

Sets whether the empty string is a valid value or not.

Parameters:
  `b` - `true` if the empty string is allowed, and `false` if it is considered invalid

#### setErrorMessage

    public void setErrorMessage​(String message)

Sets the error message that will be displayed when and if an error occurs.

Parameters:
  `message` - the error message

#### setFocus

    public void setFocus()

Description copied from class: `FieldEditor`
Sets the focus to this field editor.

The default implementation of this framework method does nothing. Subclasses may reimplement.

Overrides:
  `setFocus` in class `FieldEditor`

#### setStringValue

    public void setStringValue​(String value)

Sets this field editor's value.

Parameters:
  `value` - the new value, or `null` meaning the empty string

#### setTextLimit

    public void setTextLimit​(int limit)

Sets this text field's text limit.

Parameters:
  `limit` - the limit on the number of character in the text input field, or `UNLIMITED` for no limit

#### setValidateStrategy

    public void setValidateStrategy​(int value)

Sets the strategy for validating the text.

Calling this method has no effect after `createPartControl` is called. Thus this method is really only useful for subclasses to call in their constructor. However, it has public visibility for backward compatibility.

Parameters:
  `value` - either `VALIDATE_ON_KEY_STROKE` to perform on the fly checking (the default), or `VALIDATE_ON_FOCUS_LOST` to perform validation only after the text has been typed in

#### showErrorMessage

    public void showErrorMessage()

Shows the error message set via `setErrorMessage`.

#### valueChanged

    protected void valueChanged()

Informs this field editor's listener, if it has one, about a change to the value (`VALUE` property) provided that the old and new values are different.

This hook is not called when the text is initialized (or reset to the default value) from the preference store.

#### setEnabled

    public void setEnabled​(boolean enabled,
                           Composite parent)

Description copied from class: `FieldEditor`
Set whether or not the controls in the field editor are enabled.

Overrides:
  `setEnabled` in class `FieldEditor`
Parameters:
  `enabled` - The enabled state.
  `parent` - The parent of the controls in the group. Used to create the controls if required.