Package org.eclipse.gef.tools

# Class DirectEditManager

java.lang.Object
org.eclipse.gef.tools.DirectEditManager

public abstract class DirectEditManager extends Object
Manages the direct edit operation by creating and maintaining the `CellEditor` and executing the resulting command if the cell editor value has changed.

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`protected static class`
`DirectEditManager.DirectEditBorder`
The border used to 'frame' the cell editor.

## Constructor Summary

Constructors
Constructor
Description
`DirectEditManager(GraphicalEditPart source, Class<? extends CellEditor> editorType, CellEditorLocator locator)`
Constructs a new DirectEditManager for the given source edit part.
`DirectEditManager(GraphicalEditPart source, Class<? extends CellEditor> editorType, CellEditorLocator locator, Object feature)`
Constructs a new DirectEditManager for the given source edit part.

## Method Summary

Modifier and Type
Method
Description
`protected void`
`bringDown()`
Cleanup is done here.
`protected void`
`commit()`
Commits the current value of the cell editor by getting a `Command` from the source edit part and executing it via the `CommandStack`.
`protected CellEditor`
`createCellEditorOn(Composite composite)`
Creates the cell editor on the given composite.
`protected DirectEditRequest`
`createDirectEditRequest()`
Creates and returns the DirectEditRequest.
`protected void`
`eraseFeedback()`
Asks the source edit part to erase source feedback.
`protected CellEditor`
`getCellEditor()`
Returns the cell editor.
`protected org.eclipse.draw2d.IFigure`
`getCellEditorFrame()`
Returns the IFigure, which is used to 'embed' the cell editor control.
`protected Object`
`getDirectEditFeature()`
`protected DirectEditRequest`
`getDirectEditRequest()`
Returns the direct edit request, creating it if needed.
`protected GraphicalEditPart`
`getEditPart()`
Returns the source edit part.
`protected CellEditorLocator`
`getLocator()`
`protected void`
`handleValueChanged()`
`protected void`
`hookListeners()`
`protected abstract void`
`initCellEditor()`
Initializes the cell editor.
`protected boolean`
`isDirty()`
Returns `true` if the cell editor's value has been changed.
`protected void`
`setCellEditor(CellEditor editor)`
Sets the cell editor to the given editor.
`protected void`
`setDirty(boolean value)`
Sets the dirty property.
`protected void`
`setEditPart(GraphicalEditPart source)`
Sets the source edit part.
`void`
`setLocator(CellEditorLocator locator)`
Sets the CellEditorLocator used to place the cell editor in the correct location.
`void`
`show()`
Shows the cell editor when direct edit is started.
`void`
`showFeedback()`
Asks the source edit part to show source feedback.
`protected void`
`unhookListeners()`
Unhooks listeners.

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

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

## Constructor Details

### DirectEditManager

public DirectEditManager(GraphicalEditPart source, Class<? extends CellEditor> editorType, CellEditorLocator locator)
Constructs a new DirectEditManager for the given source edit part. The cell editor will be created by instantiating the type editorType. The cell editor will be placed using the given CellEditorLocator.

Parameters:
  `source` - the source edit part
  `editorType` - the cell editor type
  `locator` - the locator

### DirectEditManager

public DirectEditManager(GraphicalEditPart source, Class<? extends CellEditor> editorType, CellEditorLocator locator, Object feature)
Constructs a new DirectEditManager for the given source edit part. The cell editor will be created by instantiating the type editorType. The cell editor will be placed using the given CellEditorLocator.

Parameters:
  `source` - the source edit part
  `editorType` - the cell editor type
  `locator` - the locator
  `feature` - If the EditPart supports direct editing of multiple features, this parameter can be used to discriminate among them.
Since:
  3.2

## Method Details

### bringDown

protected void bringDown()
Cleanup is done here. Any feedback is erased and listeners unhooked. If the cell editor is not `null`, it will be `deativated`, `disposed`, and set to `null`.

### commit

protected void commit()
Commits the current value of the cell editor by getting a `Command` from the source edit part and executing it via the `CommandStack`. Finally, `bringDown()` is called to perform and necessary cleanup.

### createCellEditorOn

protected CellEditor createCellEditorOn(Composite composite)
Creates the cell editor on the given composite. The cell editor is created by instantiating the cell editor type passed into this DirectEditManager's constructor. This method assumes that editorType is not null. Subclasses may on purpose set it to null but then need to override this method to correctly create a CellEditor.

Parameters:
  `composite` - the composite to create the cell editor on
Returns:
  the newly created cell editor

### createDirectEditRequest

protected DirectEditRequest createDirectEditRequest()
Creates and returns the DirectEditRequest.

Returns:
  the direct edit request

### eraseFeedback

protected void eraseFeedback()
Asks the source edit part to erase source feedback.

### getCellEditor

protected CellEditor getCellEditor()
Returns the cell editor.

Returns:
  the cell editor

### getCellEditorFrame

protected org.eclipse.draw2d.IFigure getCellEditorFrame()
Returns the IFigure, which is used to 'embed' the cell editor control.

Returns:
  An `IFigure` to be used as frame around the cell editor control.
Since:
  3.9

### getDirectEditFeature

protected Object getDirectEditFeature()

Returns:
  `Object` that can be used if the EditPart supports direct editing of multiple features, this parameter can be used to discriminate among them.
Since:
  3.2

### getDirectEditRequest

protected DirectEditRequest getDirectEditRequest()
Returns the direct edit request, creating it if needed.

Returns:
  the direct edit request

### getEditPart

protected GraphicalEditPart getEditPart()
Returns the source edit part.

Returns:
  the source edit part

### getLocator

protected CellEditorLocator getLocator()

### handleValueChanged

protected void handleValueChanged()

### hookListeners

protected void hookListeners()

### initCellEditor

protected abstract void initCellEditor()
Initializes the cell editor. Subclasses should implement this to set the initial text and add things such as `VerifyListeners`, if needed.

### isDirty

protected boolean isDirty()
Returns `true` if the cell editor's value has been changed.

Returns:
  `true` if the cell editor is dirty

### setCellEditor

protected void setCellEditor(CellEditor editor)
Sets the cell editor to the given editor.

Parameters:
  `editor` - the cell editor

### setDirty

protected void setDirty(boolean value)
Sets the dirty property.

Parameters:
  `value` - the dirty property

### setEditPart

protected void setEditPart(GraphicalEditPart source)
Sets the source edit part.

Parameters:
  `source` - the source edit part

### setLocator

public void setLocator(CellEditorLocator locator)
Sets the CellEditorLocator used to place the cell editor in the correct location.

Parameters:
  `locator` - the locator

### show

public void show()
Shows the cell editor when direct edit is started. Calls `initCellEditor()`, `CellEditor.activate()`, and `showFeedback()`.

### showFeedback

public void showFeedback()
Asks the source edit part to show source feedback.

### unhookListeners

protected void unhookListeners()
Unhooks listeners. Called from `bringDown()`.