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

    • DirectEditManager

      public DirectEditManager(GraphicalEditPart source, Class 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 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 constuctor.
      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().