Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[gmf-dev] [GMF - API CHANGE] Bugzilla 112826: Adopt Eclipse 3.1 Operation History Framework


Description:
The GMF runtime has been refactored to adopt the Eclipse 3.1 Undoable Operation API and the EMFT Transactional Operations API.  
Changes to bundle and plug-in manifests and code will be required in GMF clients in order to target the next N- or I-build.  These changes will also apply to client code generated by GMF.   Please see the proposal document attached to https://bugs.eclipse.org/bugs/show_bug.cgi?id=112826 for complete details.

New API Availability:
Monday February 13, 2006

Old API Removal:
M6

Tracking:                        
Bugzilla
https://bugs.eclipse.org/bugs/show_bug.cgi?id=112826

Clients Taken Care of:        
GMF

Other Clients' Action:
Documented in
https://bugs.eclipse.org/bugs/show_bug.cgi?id=112826.  In summary:

Changes to the Plugin Dependencies

The dependency from org.eclipse.gmf.runtime.emf.core on org.eclipse.gmf.runtime.emf.type.core has been removed. This result in the following three actions that must be taken by clients:

- Clients using any one of the following from from org.eclipse.gmf.runtime.emf.core.internal.util have to add an explicit plugin dependency to the org.eclipse.gmf.runtime.emf.type.core plugin: IElementType. ElementType, IHintedType

- Clients using any of the following from org.eclipse.gmf.runtime.emf.commands.core.commands have to add an explicit plugin dependency to the org.eclipse.gmf.runtime.emf.type.core plugin: MSLEditHelper, MSLCreateElementCommand, MSLCreateRelationshipCommand, MSLDestroyElementCommand, MSLMoveElementCommand, MSLMoveElementsCommand

- And finally, org.eclipse.gmf.runtime.emf.core.internal.util.IHintedType has moved to org.eclipse.gmf.runtime.emf.type.core.IHintedType (see Bugzilla 122388).


Subclasses of GMF Commands

- change doExecute(IProgressMonitor) to doExecuteWithResult(IProgressMonitor, IAdaptable)
- change doUndo() to doUndoWithResult(IProgressMonitor, IAdaptable)
- change doRedo() to doRedoWithResult(IProgressMonitor, IAdaptable)
- change isExecutable() to canExecute()
- change isUndoable() to canUndo(); AbstractCommands are undoable by default so overide canUndo() to return false if you didn't override isUndoable() from AbstractCommand before
- change isRedoable() to canRedo(); AbstractCommands are redoable by default so overide canRedo() to return false if you didn't override isRedoable() from AbstractCommand before
- use the new static CommandResult methods to create simple error, warning, cancel and ok command results
- use ICompositeCommand#reduce() instead of CompositeCommand#unwrap()

Subclasses of AbstractActionHandler and AbstractContributionItem

- isCommandStackListener() becomes isOperationHistoryListener()

Subclasses of AbstractModelActionDelegate and AbstractModelActionHandler

- implement the abstract getEditingDomain() method
- implement isReadOnly()
- where commands were executed through the command manager, now execute the command directly and set the status of the action delegate to the command status. The AbstractModelActionDelegate now runs through an operation on the operation history if it is not read-only.

Implementors of IGraphicalEditPart

- implement the getEditingDomain() method


Regards,

Linda


Back to the top