Package org.eclipse.graphiti.func

# Interface IDirectEditing

All Known Subinterfaces:
  `IDirectEditingFeature`, `IPattern`

All Known Implementing Classes:
  `AbstractDirectEditingFeature`, `AbstractPattern`, `DirectEditingFeatureForPattern`, `IdPattern`, `TypedPattern`

public interface IDirectEditing
The Interface IDirectEditing.

## Field Summary

Fields
Modifier and Type
Field
Description
`static final int`
`TYPE_CUSTOM`
With this type the customers can provide their own cell editors for the direct editing mode.
`static final int`
`TYPE_DROPDOWN`
combo box is wanted for editing.
`static final int`
`TYPE_DROPDOWN_READ_ONLY`
read only combo box is wanted for editing.
`static final int`
`TYPE_MULTILINETEXT`
multi line text box is wanted for editing.
`static final int`
`TYPE_NONE`
no special UI is wanted for editing.
`static final int`
`TYPE_TEXT`
text field is wanted for editing.

## Method Summary

Modifier and Type
Method
Description
`boolean`
`canDirectEdit(IDirectEditingContext context)`
Checks if the feature can perform direct editing on the context handed over.
`String`
`checkValueValid(String value, IDirectEditingContext context)`
This method will be called by clients many times to see if current value is valid and could be set.
`String`
`completeValue(String value, int caretPosition, String choosenValue, IDirectEditingContext context)`
Framework calls this method to let the feature calculate the new value.
`int`
`getEditingType()`
Framework calls this method to decide which UI to show up.
`String`
`getInitialValue(IDirectEditingContext context)`
Provides the initial value for the opened text editing UI component.
`String[]`
`getPossibleValues(IDirectEditingContext context)`
This value will be used if the cell editor is a combo box.
`IProposalSupport`
`getProposalSupport()`
The direct editing mode contains controls for code completion and the selection from a combo box.
`String[]`
`getValueProposals(String value, int caretPosition, IDirectEditingContext context)`
This proposals will be used for the completion list of a simple text cell editor.
`boolean`
`isAutoCompletionEnabled()`
Checks if auto completion is enabled.
`boolean`
`isCompletionAvailable()`
Checks if completion is available.
`void`
`setValue(String value, IDirectEditingContext context)`
Set the new value.
`boolean`
`stretchFieldToFitText()`
Stretch input field to fit its contents.

## Field Details

### TYPE_NONE

static final int TYPE_NONE
no special UI is wanted for editing.

See Also:
  - Constant Field Values

### TYPE_TEXT

static final int TYPE_TEXT
text field is wanted for editing.

See Also:
  - Constant Field Values

### TYPE_MULTILINETEXT

static final int TYPE_MULTILINETEXT
multi line text box is wanted for editing.

See Also:
  - Constant Field Values

### TYPE_DROPDOWN

static final int TYPE_DROPDOWN
combo box is wanted for editing.

See Also:
  - Constant Field Values

### TYPE_DROPDOWN_READ_ONLY

static final int TYPE_DROPDOWN_READ_ONLY
read only combo box is wanted for editing.

See Also:
  - Constant Field Values

### TYPE_CUSTOM

static final int TYPE_CUSTOM
With this type the customers can provide their own cell editors for the direct editing mode. In this case the direct editing feature must implement the interface `org.eclipse.graphiti.ui.platform.ICellEditorProvider`

Since:
  0.9
See Also:
  - Constant Field Values

## Method Details

### getEditingType

int getEditingType()
Framework calls this method to decide which UI to show up.

Returns:
  the editing type

### canDirectEdit

boolean canDirectEdit(IDirectEditingContext context)
Checks if the feature can perform direct editing on the context handed over.

Parameters:
  `context` - the context
Returns:
  This method is equivalent to
See Also:
  - `IFeature.canExecute(org.eclipse.graphiti.features.context.IContext)`

### getInitialValue

String getInitialValue(IDirectEditingContext context)
Provides the initial value for the opened text editing UI component.

Parameters:
  `context` - the context
Returns:
  the initial value

### getPossibleValues

String[] getPossibleValues(IDirectEditingContext context)
This value will be used if the cell editor is a combo box. This functionality only applies to TYPE_DROPDOWN.

Parameters:
  `context` - the context
Returns:
  the possible values for the combo box.

### getValueProposals

String[] getValueProposals(String value, int caretPosition, IDirectEditingContext context)
This proposals will be used for the completion list of a simple text cell editor. This functionality only applies to TYPE_TEXT.

Parameters:
  `value` - current value
  `caretPosition` - current cursor position
  `context` - the context
Returns:
  the proposed values

### completeValue

String completeValue(String value, int caretPosition, String choosenValue, IDirectEditingContext context)
Framework calls this method to let the feature calculate the new value.

Parameters:
  `value` - current value
  `caretPosition` - current cursor position
  `choosenValue` - value choosen by user
  `context` - the context
Returns:
  the new value

### isCompletionAvailable

boolean isCompletionAvailable()
Checks if completion is available. This functionality only applies to TYPE_TEXT.

Returns:
  true if completion is / proposals are available at all

### isAutoCompletionEnabled

boolean isAutoCompletionEnabled()
Checks if auto completion is enabled. This functionality only applies to TYPE_TEXT.

Returns:
  true, if proposals should appear automatically

### stretchFieldToFitText

boolean stretchFieldToFitText()
Stretch input field to fit its contents. This functionality applies to TYPE_TEXT, TYPE_DROPDOWN and TYPE_DROPDOWN_READ_ONLY.

Returns:
  true if the field should exactly fit the contents

### checkValueValid

String checkValueValid(String value, IDirectEditingContext context)
This method will be called by clients many times to see if current value is valid and could be set.

Parameters:
  `value` - the value
  `context` - the context
Returns:
  null if value is okay and could be set; any text means value is not valid; text is reason for invalidality

### setValue

void setValue(String value, IDirectEditingContext context)
Set the new value. The value comes from the text editing UI component.

Parameters:
  `value` - the value
  `context` - the context

### getProposalSupport

IProposalSupport getProposalSupport()
The direct editing mode contains controls for code completion and the selection from a combo box. In both cases the standard implementation supports only strings.

If the customer wants to work with Objects he must provide an implementation of `IProposalSupport`. In this case the following methods of `IDirectEditing` are ignored:

`
* String checkValueValid(String value, IDirectEditingContext context);
* String completeValue(String value, int caretPosition, String choosenValue, IDirectEditingContext context);
* String[] getPossibleValues(IDirectEditingContext context);
* String[] getValueProposals(String value, int caretPosition, IDirectEditingContext context);
* void setValue(String value, IDirectEditingContext context);`

Returns:
  the special implementation to support Objects in code completion and combo box
Since:
  0.8