Runtime

org.eclipse.gmf.runtime.diagram.ui.resources.editor.parts
Class DiagramDocumentEditor

java.lang.Object
  extended by DiagramEditorWithFlyOutPalette
      extended by org.eclipse.gmf.runtime.diagram.ui.resources.editor.parts.DiagramDocumentEditor
All Implemented Interfaces:
IAdaptable, IDocumentEditor, IEditorPart, IReusableEditor, ISaveablePart, IWorkbenchPart
Direct Known Subclasses:
IDEDiagramDocumentEditor

public class DiagramDocumentEditor
extends DiagramEditorWithFlyOutPalette
implements IDocumentEditor, IReusableEditor

A Diagram Editor with optional flyout palette.


Field Summary
protected  java.lang.String fErrorLabel
          The error message shown in the status line in case of failed information look up.
 
Fields inherited from interface org.eclipse.ui.IEditorPart
PROP_DIRTY, PROP_INPUT
 
Fields inherited from interface org.eclipse.ui.IWorkbenchPart
PROP_TITLE
 
Constructor Summary
DiagramDocumentEditor(boolean hasFlyoutPalette)
          Constructs a diagram editor with optional flyout palette.
 
Method Summary
 boolean askUserReload()
           
 int askUserSaveClose()
           
 boolean askUserSaveOverwrite()
           
 void close(boolean save)
          Closes this text editor after optionally saving changes.
protected  void configureDiagramEditDomain()
           
protected  ActionManager createActionManager()
           
protected  org.eclipse.emf.transaction.TransactionalEditingDomain createEditingDomain()
          Gets an editing domain from the editing domain registry using the id returned from getEditingDomainID() if an editing domain has been registered already with this id.
protected  IOperationHistory createOperationHistory()
          Create my operation history.
 void createPartControl(Composite parent)
           
 void dispose()
           
protected  void disposeDocumentProvider()
          Disposes of the connection with the document provider.
 void doSave(IProgressMonitor progressMonitor)
          The AbstractDiagramEditor implementation of this IEditorPart method may be extended by subclasses.
 void doSaveAs()
          The AbstractDiagramEditor implementation of this IEditorPart method calls performSaveAs.
 void doSetInput(IEditorInput input, boolean releaseEditorContents)
           
protected  void editorSaved()
          Hook which gets called when the editor has been saved.
protected  void enableSanityChecking(boolean enable)
          Enables/disables sanity checking.
protected  void enableStateValidation(boolean enable)
          Enables/disables state validation.
protected  void firePropertyChange(int property)
           
 java.lang.Object getAdapter(java.lang.Class type)
           
protected  java.lang.Object getDefaultPaletteContent()
           
 Diagram getDiagram()
           
 IDiagramDocument getDiagramDocument()
           
 IDocumentProvider getDocumentProvider()
          Returns this text editor's document provider.
protected  IDocumentProvider getDocumentProvider(IEditorInput input)
          Hook method for setting the document provider for the given input.
 org.eclipse.emf.transaction.TransactionalEditingDomain getEditingDomain()
           
protected  java.lang.String getEditingDomainID()
          Returns an editing domain id used to retrive an editing domain from the editing domain registry.
protected  IEditorDescriptor getEditorDescriptor()
          Retrieves the descriptor for this editor
protected  IProgressMonitor getProgressMonitor()
          Returns the progress monitor related to this editor.
protected  void handleEditorInputChanged()
          Handles an external change of the editor's input element.
protected  void handleElementContentAboutToBeReplaced()
          Performs any additional action necessary to perform after the input document's content has been replaced.
protected  void handleElementContentReplaced()
          Performs any additional action necessary to perform after the input document's content has been replaced.
protected  void handleExceptionOnSave(CoreException exception, IProgressMonitor progressMonitor)
          Handles the given exception.
 void init(IEditorSite site, IEditorInput input)
           
 boolean isDirty()
           
 boolean isEditable()
          Returns whether the text in this text editor can be changed by the user.
 boolean isEditorInputModifiable()
          Returns whether the editor's input can be persistently be modified.
 boolean isEditorInputReadOnly()
          Returns whether the editor's input is read-only.
 boolean isSaveAsAllowed()
          The AbstractDiagramEditor implementation of this IEditorPart method returns false.
protected  void performSave(boolean overwrite, IProgressMonitor progressMonitor)
          Performs the save and handles errors appropriately.
protected  void performSaveAs(IProgressMonitor progressMonitor)
          Performs a save as and reports the result state back to the given progress monitor.
protected  void releaseInput()
          refreshes the editor with the given file by: 0 - resets resource modification stamp 1- Flushing the command stack 2- Clearing the graphical viewer's contents 3- Setting the new File input 4- Setting the new graphical viewer's contents 5- Clearing the graphical viewer's selection
protected  boolean reuseDiagramOnMove()
           
protected  void safelySanityCheckState(IEditorInput input)
          Checks the state of the given editor input if sanity checking is enabled.
protected  void sanityCheckState(IEditorInput input)
          Checks the state of the given editor input.
 void selectionChanged(IWorkbenchPart part, ISelection selection)
           
protected  void setDocumentProvider(IDocumentProvider provider)
          Sets this editor's document provider.
protected  void setDocumentProvider(IEditorInput input)
          Hook method for setting the document provider for the given input.
 void setInput(IEditorInput input)
           
protected  void setSite(IWorkbenchPartSite site)
           
protected  void updateState(IEditorInput input)
          Updates the state of the given editor input such as read-only flag.
 boolean validateEditorInputState()
          Validates the state of the given editor input.
protected  void validateState(IEditorInput input)
          Validates the state of the given editor input.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.eclipse.ui.IEditorPart
getEditorInput, getEditorSite
 
Methods inherited from interface org.eclipse.ui.IWorkbenchPart
addPropertyListener, getSite, getTitle, getTitleImage, getTitleToolTip, removePropertyListener, setFocus
 
Methods inherited from interface org.eclipse.ui.ISaveablePart
isSaveOnCloseNeeded
 

Field Detail

fErrorLabel

protected final java.lang.String fErrorLabel
The error message shown in the status line in case of failed information look up.

Constructor Detail

DiagramDocumentEditor

public DiagramDocumentEditor(boolean hasFlyoutPalette)
Constructs a diagram editor with optional flyout palette.

Parameters:
hasFlyoutPalette - creates a palette if true, else no palette
Method Detail

getAdapter

public java.lang.Object getAdapter(java.lang.Class type)
Specified by:
getAdapter in interface IAdaptable

init

public void init(IEditorSite site,
                 IEditorInput input)
          throws PartInitException
Specified by:
init in interface IEditorPart
Throws:
PartInitException

setSite

protected final void setSite(IWorkbenchPartSite site)

dispose

public void dispose()
Specified by:
dispose in interface IWorkbenchPart

getDiagram

public Diagram getDiagram()

getDiagramDocument

public IDiagramDocument getDiagramDocument()

askUserSaveOverwrite

public boolean askUserSaveOverwrite()

askUserSaveClose

public int askUserSaveClose()

askUserReload

public boolean askUserReload()

configureDiagramEditDomain

protected void configureDiagramEditDomain()
See Also:
org.eclipse.gmf.runtime.diagram.ui.parts.DiagramEditor#configureDiagramEditDomain()

createActionManager

protected ActionManager createActionManager()

createOperationHistory

protected IOperationHistory createOperationHistory()
Create my operation history.

Returns:
my operation history

getDefaultPaletteContent

protected java.lang.Object getDefaultPaletteContent()

selectionChanged

public void selectionChanged(IWorkbenchPart part,
                             ISelection selection)

getDocumentProvider

public IDocumentProvider getDocumentProvider()
Description copied from interface: IDocumentEditor
Returns this text editor's document provider.

Specified by:
getDocumentProvider in interface IDocumentEditor
Returns:
the document provider or null if none, e.g. after closing the editor

setDocumentProvider

protected void setDocumentProvider(IDocumentProvider provider)
Sets this editor's document provider. This method must be called before the editor's control is created.

Parameters:
provider - the document provider

isEditable

public boolean isEditable()
Description copied from interface: IDocumentEditor
Returns whether the text in this text editor can be changed by the user.

Specified by:
isEditable in interface IDocumentEditor
Returns:
true if it can be edited, and false if it is read-only

setDocumentProvider

protected void setDocumentProvider(IEditorInput input)
Hook method for setting the document provider for the given input. This default implementation does nothing. Clients may reimplement.

Parameters:
input - the input of this editor.

getDocumentProvider

protected IDocumentProvider getDocumentProvider(IEditorInput input)
Hook method for setting the document provider for the given input. This default implementation does nothing. Clients may reimplement.

Parameters:
input - the input of this editor.

releaseInput

protected void releaseInput()
refreshes the editor with the given file by: 0 - resets resource modification stamp 1- Flushing the command stack 2- Clearing the graphical viewer's contents 3- Setting the new File input 4- Setting the new graphical viewer's contents 5- Clearing the graphical viewer's selection

Parameters:
file - The new file editor input

setInput

public void setInput(IEditorInput input)
Specified by:
setInput in interface IReusableEditor

doSetInput

public void doSetInput(IEditorInput input,
                       boolean releaseEditorContents)
                throws CoreException
Throws:
CoreException

close

public void close(boolean save)
Description copied from interface: IDocumentEditor
Closes this text editor after optionally saving changes.

Specified by:
close in interface IDocumentEditor
Parameters:
save - true if unsaved changed should be saved, and false if unsaved changed should be discarded

disposeDocumentProvider

protected void disposeDocumentProvider()
Disposes of the connection with the document provider. Subclasses may extend.


getProgressMonitor

protected IProgressMonitor getProgressMonitor()
Returns the progress monitor related to this editor. It should not be necessary to extend this method.

Returns:
the progress monitor related to this editor

handleEditorInputChanged

protected void handleEditorInputChanged()
Handles an external change of the editor's input element. Subclasses may extend.


doSaveAs

public void doSaveAs()
The AbstractDiagramEditor implementation of this IEditorPart method calls performSaveAs. Subclasses may reimplement.

Specified by:
doSaveAs in interface ISaveablePart

performSaveAs

protected void performSaveAs(IProgressMonitor progressMonitor)
Performs a save as and reports the result state back to the given progress monitor. This default implementation does nothing. Subclasses may reimplement.

Parameters:
progressMonitor - the progress monitor for communicating result state or null

doSave

public void doSave(IProgressMonitor progressMonitor)
The AbstractDiagramEditor implementation of this IEditorPart method may be extended by subclasses.

Specified by:
doSave in interface ISaveablePart
Parameters:
progressMonitor - the progress monitor for communicating result state or null

enableSanityChecking

protected void enableSanityChecking(boolean enable)
Enables/disables sanity checking.

Parameters:
enable - true if sanity checking should be enabled, false otherwise

safelySanityCheckState

protected void safelySanityCheckState(IEditorInput input)
Checks the state of the given editor input if sanity checking is enabled.

Parameters:
input - the editor input whose state is to be checked

sanityCheckState

protected void sanityCheckState(IEditorInput input)
Checks the state of the given editor input.

Parameters:
input - the editor input whose state is to be checked

enableStateValidation

protected void enableStateValidation(boolean enable)
Enables/disables state validation.

Parameters:
enable - true if state validation should be enabled, false otherwise

validateState

protected void validateState(IEditorInput input)
Validates the state of the given editor input. The predominate intent of this method is to take any action probably necessary to ensure that the input can persistently be changed.

Parameters:
input - the input to be validated

validateEditorInputState

public boolean validateEditorInputState()
Description copied from interface: IDocumentEditor
Validates the state of the given editor input. The predominate intent of this method is to take any action probably necessary to ensure that the input can persistently be changed.

Specified by:
validateEditorInputState in interface IDocumentEditor
Returns:
true if the input was validated, false otherwise

updateState

protected void updateState(IEditorInput input)
Updates the state of the given editor input such as read-only flag.

Parameters:
input - the input to be validated

performSave

protected void performSave(boolean overwrite,
                           IProgressMonitor progressMonitor)
Performs the save and handles errors appropriately.

Parameters:
overwrite - indicates whether or not overwriting is allowed
progressMonitor - the monitor in which to run the operation

handleExceptionOnSave

protected void handleExceptionOnSave(CoreException exception,
                                     IProgressMonitor progressMonitor)
Handles the given exception. If the exception reports an out-of-sync situation, this is reported to the user. Otherwise, the exception is generically reported.

Parameters:
exception - the exception to handle
progressMonitor - the progress monitor

isSaveAsAllowed

public boolean isSaveAsAllowed()
The AbstractDiagramEditor implementation of this IEditorPart method returns false. Subclasses may override.

Specified by:
isSaveAsAllowed in interface ISaveablePart
Returns:
false

isDirty

public boolean isDirty()
Specified by:
isDirty in interface ISaveablePart

handleElementContentReplaced

protected void handleElementContentReplaced()
Performs any additional action necessary to perform after the input document's content has been replaced.

Clients may extended this method.


handleElementContentAboutToBeReplaced

protected void handleElementContentAboutToBeReplaced()
Performs any additional action necessary to perform after the input document's content has been replaced.

Clients may extended this method.


editorSaved

protected void editorSaved()
Hook which gets called when the editor has been saved. Subclasses may extend.


firePropertyChange

protected void firePropertyChange(int property)

isEditorInputReadOnly

public boolean isEditorInputReadOnly()
Description copied from interface: IDocumentEditor
Returns whether the editor's input is read-only. The semantics of this method is orthogonal to isEditable as it talks about the editor input, i.e. the domain element, and not about the editor document.

Specified by:
isEditorInputReadOnly in interface IDocumentEditor
Returns:
true if the editor input is read-only

isEditorInputModifiable

public boolean isEditorInputModifiable()
Description copied from interface: IDocumentEditor
Returns whether the editor's input can be persistently be modified. This is orthogonal to ITextEditorExtension.isEditorInputReadOnly as read-only elements may be modifiable and writable elements may not be modifiable. If the given element is not connected to this document provider, the result is undefined. Document providers are allowed to use a cache to answer this question, i.e. there can be a difference between the "real" state of the element and the return value.

Specified by:
isEditorInputModifiable in interface IDocumentEditor
Returns:
true if the editor input is modifiable

getEditorDescriptor

protected final IEditorDescriptor getEditorDescriptor()
Retrieves the descriptor for this editor

Returns:
the editor descriptor

createPartControl

public void createPartControl(Composite parent)
Specified by:
createPartControl in interface IWorkbenchPart

getEditingDomain

public org.eclipse.emf.transaction.TransactionalEditingDomain getEditingDomain()

createEditingDomain

protected org.eclipse.emf.transaction.TransactionalEditingDomain createEditingDomain()
Gets an editing domain from the editing domain registry using the id returned from getEditingDomainID() if an editing domain has been registered already with this id. Use the org.eclipse.emf.transaction.editingDomains extension point to register a shared editing domain.

If an editing domain is not found for the id, then a new editing domain will be created per editor instance.

Returns:
the editing domain

getEditingDomainID

protected java.lang.String getEditingDomainID()
Returns an editing domain id used to retrive an editing domain from the editing domain registry. Clients should override this if they wish to use a shared editing domain for this editor. If null is returned then a new editing domain will be created per editor instance.

Returns:
the shared editing domain id if applicable

reuseDiagramOnMove

protected boolean reuseDiagramOnMove()

Runtime

Guidelines for using Eclipse APIs.

Copyright (c) IBM Corp., Borland Software Corp., and others 2005,2006. All rights reserved.