Package org.eclipse.graphiti.ui.editor
Class DefaultUpdateBehavior
java.lang.Object
org.eclipse.core.runtime.PlatformObject
org.eclipse.graphiti.ui.editor.DefaultUpdateBehavior
- All Implemented Interfaces:
org.eclipse.core.commands.operations.IOperationHistoryListener
,org.eclipse.core.runtime.IAdaptable
,org.eclipse.emf.edit.domain.IEditingDomainProvider
public class DefaultUpdateBehavior
extends org.eclipse.core.runtime.PlatformObject
implements org.eclipse.emf.edit.domain.IEditingDomainProvider, org.eclipse.core.commands.operations.IOperationHistoryListener
The default implementation for the
Note that there is always a 1:1 relation with a
IDiagramContainerUI
behavior extension
that controls update behavior of the editor and defines the EMF adapters that
watch over model object modifications. Clients may subclass to change the
behavior; use IDiagramContainerUI#createUpdateBehavior()
to return the
instance that shall be used.Note that there is always a 1:1 relation with a
IDiagramContainerUI
.- Since:
- 0.9
-
Nested Class Summary
Modifier and TypeClassDescriptionprotected class
The default implementation of the update adapter that cares about refreshing the diagram editor in case of resource changes. -
Field Summary
-
Constructor Summary
ConstructorDescriptionDefaultUpdateBehavior
(DiagramBehavior diagramBehavior) Creates a newDefaultUpdateBehavior
instance associated with the givenDiagramBehavior
. -
Method Summary
Modifier and TypeMethodDescriptionprotected void
Closes theIDiagramContainerUI
(usually a diagram Editor) behind thisDefaultUpdateBehavior
instance.protected void
Created theTransactionalEditingDomain
that shall be used within the diagram editor and initializes it by delegating toinitializeEditingDomain(TransactionalEditingDomain)
.protected org.eclipse.emf.common.notify.Adapter
Hook to create anupdateAdapter
that cares about updating the diagram editor.protected org.eclipse.emf.workspace.util.WorkspaceSynchronizer.Delegate
Can be overridden to return a client specific implementation of aWorkspaceSynchronizer
WorkspaceSynchronizer.Delegate
object.void
dispose()
Disposes thisDefaultUpdateBehavior
and free all resources it holds.protected void
Cares about disposing theTransactionalEditingDomain
held in this instance.org.eclipse.emf.transaction.TransactionalEditingDomain
This returns the editing domain as required by theIEditingDomainProvider
interface.protected org.eclipse.core.commands.operations.IOperationHistory
Returns theIOperationHistory
for the command stack.protected org.eclipse.emf.common.notify.Adapter
Returns theupdateAdapter
of this instance ornull
in case the adapter has not yet been initialized.void
Handles activation of the editor.protected void
Handles what to do with changed resources on editor activation.protected boolean
Shows a dialog that asks if conflicting changes should be discarded or not.void
historyNotification
(org.eclipse.core.commands.operations.OperationHistoryEvent event) Is called by the operation history of theTransactionalEditingDomain
in case the history changes.void
init()
Initializes listeners and adapters.protected void
initializeEditingDomain
(org.eclipse.emf.transaction.TransactionalEditingDomain domain) This sets up the editing domain for this model editor.protected boolean
Returns the flag that indicates if theupdateAdapter
shall be active of not (adapterActive
).protected boolean
Returns the flag that indicates if the underlying resource of theDiagram
has been changed.protected boolean
Returns the flag that indicates if the underlying resource of theDiagram
has been deleted.void
setAdapterActive
(boolean active) Sets the flag that indicates if theupdateAdapter
shall be active of not (adapterActive
).void
setEditingDomain
(org.eclipse.emf.transaction.TransactionalEditingDomain editingDomain) void
setResourceChanged
(boolean resourceChanged) Sets the flag that indicates if the underlying resource of theDiagram
has been changed.void
setResourceDeleted
(boolean resourceDeleted) Sets the flag that indicates if the underlying resource of theDiagram
has been deleted.Methods inherited from class org.eclipse.core.runtime.PlatformObject
getAdapter
-
Field Details
-
diagramBehavior
- Since:
- 0.10
-
-
Constructor Details
-
DefaultUpdateBehavior
Creates a newDefaultUpdateBehavior
instance associated with the givenDiagramBehavior
.- Parameters:
diagramEditor
- the part this model editor works on- Since:
- 0.10
-
-
Method Details
-
isResourceDeleted
protected boolean isResourceDeleted()Returns the flag that indicates if the underlying resource of theDiagram
has been deleted. Note that this flag will only be updated in case theupdateAdapter
is enabled, seeadapterActive
,isAdapterActive()
andsetAdapterActive(boolean)
. If this flag is set the editor will close on receiving the next event.- Returns:
true
in case the resource has been deleted,false
otherwise
-
setResourceDeleted
public void setResourceDeleted(boolean resourceDeleted) Sets the flag that indicates if the underlying resource of theDiagram
has been deleted. Note that this flag should only be updated by theupdateAdapter
, seeadapterActive
,isAdapterActive()
andsetAdapterActive(boolean)
.Should not be called by external clients.
- Parameters:
resourceDeleted
- the value to set the flag to,true
indicates that the resource has been deleted.
-
isResourceChanged
protected boolean isResourceChanged()Returns the flag that indicates if the underlying resource of theDiagram
has been changed. Note that this flag will only be updated in case theupdateAdapter
is enabled, seeadapterActive
,isAdapterActive()
andsetAdapterActive(boolean)
.- Returns:
true
in case the resource has been changed,false
otherwise
-
setResourceChanged
public void setResourceChanged(boolean resourceChanged) Sets the flag that indicates if the underlying resource of theDiagram
has been changed. Note that this flag should only be updated by theupdateAdapter
, seeadapterActive
,isAdapterActive()
andsetAdapterActive(boolean)
.Should not be called by external clients.
- Parameters:
resourceChanged
- the value to set the flag to,true
indicates that the resource has been changed.
-
handleActivate
public void handleActivate()Handles activation of the editor. In case of the underlying diagram resource being deleted (resourceDeleted
istrue
) the editor will be closed after a call tohandleDirtyConflict()
that returnstrue
. Also it will callhandleChangedResources()
in case the underlying diagram resource has changed (resourceChanged
istrue
). -
isAdapterActive
protected boolean isAdapterActive()Returns the flag that indicates if theupdateAdapter
shall be active of not (adapterActive
). In case this method returnsfalse
, theupdateAdapter
will do nothing on being called.- Returns:
true
in case the adapter shall run,false
otherwise.
-
setAdapterActive
public void setAdapterActive(boolean active) Sets the flag that indicates if theupdateAdapter
shall be active of not (adapterActive
).- Parameters:
active
- the new value for the flag
-
handleChangedResources
protected void handleChangedResources()Handles what to do with changed resources on editor activation. -
handleDirtyConflict
protected boolean handleDirtyConflict()Shows a dialog that asks if conflicting changes should be discarded or not. SeehandleActivate()
.- Returns:
true
in case the editor shall be closed,false
otherwise
-
getEditingDomain
public org.eclipse.emf.transaction.TransactionalEditingDomain getEditingDomain()This returns the editing domain as required by theIEditingDomainProvider
interface.- Specified by:
getEditingDomain
in interfaceorg.eclipse.emf.edit.domain.IEditingDomainProvider
- Returns:
- The
TransactionalEditingDomain
that is used within this editor
-
init
public void init()Initializes listeners and adapters. -
createUpdateAdapter
protected org.eclipse.emf.common.notify.Adapter createUpdateAdapter()Hook to create anupdateAdapter
that cares about updating the diagram editor. The default implementation simply creates aDefaultUpdateBehavior.DefaultUpdateAdapter
.- Returns:
- The newly created adapter
- Since:
- 0.11
-
getUpdateAdapter
protected org.eclipse.emf.common.notify.Adapter getUpdateAdapter()Returns theupdateAdapter
of this instance ornull
in case the adapter has not yet been initialized.- Returns:
- Since:
- 0.11
-
createEditingDomain
Created theTransactionalEditingDomain
that shall be used within the diagram editor and initializes it by delegating toinitializeEditingDomain(TransactionalEditingDomain)
.- Parameters:
input
- TheIDiagramEditorInput
instance that was used to open theIDiagramContainer
.- Since:
- 0.11
-
initializeEditingDomain
protected void initializeEditingDomain(org.eclipse.emf.transaction.TransactionalEditingDomain domain) This sets up the editing domain for this model editor.- Parameters:
domain
- TheTransactionalEditingDomain
that is used within this model editor
-
createWorkspaceSynchronizerDelegate
protected org.eclipse.emf.workspace.util.WorkspaceSynchronizer.Delegate createWorkspaceSynchronizerDelegate()Can be overridden to return a client specific implementation of aWorkspaceSynchronizer
WorkspaceSynchronizer.Delegate
object. Graphiti uses the returned instance to manage and react on changes done to the resources tied to the diagram outside of the diagram editor's TransactionalEditingDomain.- Returns:
- The delegate to use. The default implementation return's
Graphiti's own implementation of such a delegate that should be
sufficient for most client editors. Might return
null
; in this case noWorkspaceSynchronizer
will be installed. - Since:
- 0.10
-
dispose
public void dispose()Disposes thisDefaultUpdateBehavior
and free all resources it holds. In case you only want to omit or influence the disposal of theTransactionalEditingDomain
, you can also overridedisposeEditingDomain()
. -
disposeEditingDomain
protected void disposeEditingDomain()Cares about disposing theTransactionalEditingDomain
held in this instance. Is called during thedispose()
method. -
historyNotification
public void historyNotification(org.eclipse.core.commands.operations.OperationHistoryEvent event) Is called by the operation history of theTransactionalEditingDomain
in case the history changes. Reacts on undo and redo events and updates the dirty state of the editor.- Specified by:
historyNotification
in interfaceorg.eclipse.core.commands.operations.IOperationHistoryListener
- Parameters:
event
- theOperationHistoryEvent
to react upon
-
closeContainer
protected void closeContainer()Closes theIDiagramContainerUI
(usually a diagram Editor) behind thisDefaultUpdateBehavior
instance. Called e.g. when the diagram resource underneath the editor has been deleted.- Since:
- 0.11
-
getOperationHistory
protected org.eclipse.core.commands.operations.IOperationHistory getOperationHistory()Returns theIOperationHistory
for the command stack. The default implementation retrieves the command stack of the currentTransactionalEditingDomain
and returns its operation history.- Returns:
- The operation history
- Since:
- 0.11
-
setEditingDomain
public void setEditingDomain(org.eclipse.emf.transaction.TransactionalEditingDomain editingDomain) - Since:
- 0.10
-