Class FilePropSaveable
- java.lang.Object
- org.eclipse.ui.internal.InternalSaveable
- org.eclipse.ui.Saveable
- com.iizigo.prop.FilePropSaveable
- All Implemented Interfaces:
org.eclipse.core.runtime.IAdaptable
,org.eclipse.ui.ISaveablesSource
public class FilePropSaveable extends org.eclipse.ui.Saveable implements org.eclipse.ui.ISaveablesSource
The Saveable implementation for a FilePropCnr.- Author:
- Christopher Mindus
Field Summary
Fields Modifier and Type Field Description static org.eclipse.ui.Saveable[]
EMPTY
This saveable in a single array.
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
doSave(org.eclipse.core.runtime.IProgressMonitor monitor)
Saves the contents of this saveable.boolean
equals(java.lang.Object object)
Clients must implement equals and hashCode as defined inObject.equals(Object)
andObject.hashCode()
.org.eclipse.ui.Saveable[]
getActiveSaveables()
Returns the saveables currently active in the workbench part.<T> T
getAdapter(java.lang.Class<T> adapter)
This implementation ofIAdaptable.getAdapter(Class)
returnsnull
.org.eclipse.jface.resource.ImageDescriptor
getImageDescriptor()
Returns the image descriptor for this saveable.java.lang.String
getName()
Returns the name of this saveable for display purposes.org.eclipse.ui.Saveable[]
getSaveables()
Returns the saveables presented by the workbench part.java.lang.String
getToolTipText()
Returns the tool tip text for this saveable.int
hashCode()
Clients must implement equals and hashCode as defined inObject.equals(Object)
andObject.hashCode()
.boolean
isDirty()
Returns whether the contents of this saveable have changed since the last save operation.boolean
isSaving()
Flag for saving.void
onDirtyChanged()
The Editor has had its dirty state changed: verify and inform.boolean
show(org.eclipse.ui.IWorkbenchPage page)
Attempts to show this saveable in the given page and returnstrue
on success.org.eclipse.ui.IEditorPart
showEditor(org.eclipse.ui.IWorkbenchPage page)
Attempts to show this saveable in the given page and returns the editor started or shown.
Method Detail
show
public boolean show(org.eclipse.ui.IWorkbenchPage page)
Attempts to show this saveable in the given page and returnstrue
on success.- Overrides:
show
in classorg.eclipse.ui.Saveable
- Parameters:
page
- The workbench page in which to show this saveable.- Returns:
true
if this saveable is now visible to the user.
showEditor
public org.eclipse.ui.IEditorPart showEditor(org.eclipse.ui.IWorkbenchPage page)
Attempts to show this saveable in the given page and returns the editor started or shown.- Parameters:
page
- The workbench page in which to show this saveable.- Returns:
- The editor part, or null for none.
getName
public java.lang.String getName()
Returns the name of this saveable for display purposes.- Specified by:
getName
in classorg.eclipse.ui.Saveable
- Returns:
- The model's name; never
null
.
getToolTipText
public java.lang.String getToolTipText()
Returns the tool tip text for this saveable. This text is used to differentiate between two inputs with the same name.- Specified by:
getToolTipText
in classorg.eclipse.ui.Saveable
- Returns:
- the tool tip text; never
null
.
getImageDescriptor
public org.eclipse.jface.resource.ImageDescriptor getImageDescriptor()
Returns the image descriptor for this saveable.- Specified by:
getImageDescriptor
in classorg.eclipse.ui.Saveable
- Returns:
- The image descriptor for this model.
isSaving
public boolean isSaving()
Flag for saving.
doSave
public void doSave(org.eclipse.core.runtime.IProgressMonitor monitor) throws org.eclipse.core.runtime.CoreException
Saves the contents of this saveable.If the save is cancelled through user action, or for any other reason, the part should invoke
setCancelled
on theIProgressMonitor
to inform the caller.This method is long-running; progress and cancellation are provided by the given progress monitor.
- Specified by:
doSave
in classorg.eclipse.ui.Saveable
- Parameters:
monitor
- The progress monitor.- Throws:
org.eclipse.core.runtime.CoreException
- If the save fails; it is the caller's responsibility to report the failure to the user.
isDirty
public boolean isDirty()
Returns whether the contents of this saveable have changed since the last save operation.Note: this method is called frequently, for example by actions to determine their enabled status.
- Specified by:
isDirty
in classorg.eclipse.ui.Saveable
- Returns:
true
if the contents have been modified and need saving, andfalse
if they have not changed since the last save.
onDirtyChanged
public void onDirtyChanged()
The Editor has had its dirty state changed: verify and inform.
equals
public boolean equals(java.lang.Object object)
Clients must implement equals and hashCode as defined inObject.equals(Object)
andObject.hashCode()
. Two saveables should be equal if their dirty state is shared, and saving one will save the other. If two saveables are equal, their names, tooltips, and images should be the same because only one of them will be shown when prompting the user to save.- Specified by:
equals
in classorg.eclipse.ui.Saveable
- Parameters:
object
- The object to verify equality with.- Returns:
- true if this Saveable is equal to the given object.
hashCode
public int hashCode()
Clients must implement equals and hashCode as defined inObject.equals(Object)
andObject.hashCode()
. Two saveables should be equal if their dirty state is shared, and saving one will save the other. If two saveables are equal, their hash codes MUST be the same, and their names, tooltips, and images should be the same because only one of them will be shown when prompting the user to save.IMPORTANT: Implementers should ensure that the hashCode returned is sufficiently unique so as not to collide with hashCodes returned by other implementations. It is suggested that the defining plug-in's ID be used as part of the returned hashCode, as in the following example:
int PRIME = 31; int hash = ...; // compute the "normal" hash code, e.g. based on some identifier unique within the defining plug-in return hash * PRIME + MY_PLUGIN_ID.hashCode();
- Specified by:
hashCode
in classorg.eclipse.ui.Saveable
- Returns:
- a hash code
getAdapter
public <T> T getAdapter(java.lang.Class<T> adapter)
This implementation ofIAdaptable.getAdapter(Class)
returnsnull
. Subclasses may override. This allows two unrelated subclasses of Saveable to implementequals(Object)
andhashCode()
based on an underlying implementation class that is shared by both Saveable subclasses.- Specified by:
getAdapter
in interfaceorg.eclipse.core.runtime.IAdaptable
- Overrides:
getAdapter
in classorg.eclipse.ui.Saveable
- Returns:
- This implementation always returns
null
.
getSaveables
public org.eclipse.ui.Saveable[] getSaveables()
Returns the saveables presented by the workbench part. If the return value of this method changes during the lifetime of this part (i.e. after initialization and control creation but before disposal) the part must notify an implicit listener usingISaveablesLifecycleListener.handleLifecycleEvent(SaveablesLifecycleEvent)
.Additions of saveables to the list of saveables of this part are announced using an event of type
SaveablesLifecycleEvent.POST_OPEN
. Removals are announced in a two-stage process, first using an event of typeSaveablesLifecycleEvent.PRE_CLOSE
followed by an event of typeSaveablesLifecycleEvent.POST_CLOSE
. Since firing thePRE_CLOSE
event may trigger prompts to save dirty saveables, the cancellation status of the event must be checked by the part after the notification. When removing only non-dirty saveables,POST_CLOSE
notification is sufficient.The listener is obtained from the part site by calling
partSite.getService(ISaveablesLifecycleListener.class)
.The part must not notify from its initialization methods (e.g.
init
orcreatePartControl
), or from its dispose method. Parts that implementIReusableEditor
must notify when their input is changed throughIReusableEditor.setInput(IEditorInput)
.- Specified by:
getSaveables
in interfaceorg.eclipse.ui.ISaveablesSource
- Returns:
- The saveables presented by the workbench part.
- See Also:
ISaveablesLifecycleListener
getActiveSaveables
public org.eclipse.ui.Saveable[] getActiveSaveables()
Returns the saveables currently active in the workbench part.Certain workbench actions, such as Save, target only the active saveables in the active part. For example, the active saveables could be determined based on the current selection in the part.
- Specified by:
getActiveSaveables
in interfaceorg.eclipse.ui.ISaveablesSource
- Returns:
- The saveables currently active in the workbench part.