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 Details

    • 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:
    • 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:
    • 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 Details

    • 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 Details

    • 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:
    • 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:
    • 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:
    • 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.