|
Eclipse Platform 2.1 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--org.eclipse.jface.window.Window | +--org.eclipse.jface.dialogs.Dialog | +--org.eclipse.jface.dialogs.IconAndMessageDialog | +--org.eclipse.jface.dialogs.ProgressMonitorDialog
A modal dialog that displays progress during a long running operation.
This concete dialog class can be instantiated as is, or further subclassed as required.
Typical usage is:
try { IRunnableWithProgress op = ...; new ProgressMonitorDialog(activeShell).run(true, true, op); } catch (InvocationTargetException e) { // handle exception } catch (InterruptedException e) { // handle cancelation }
Note that the ProgressMonitorDialog is not intended to be used with multiple runnables - this dialog should be discarded after completion of one IRunnableWithProgress and a new one instantiated for use by a second or sebsequent IRunnableWithProgress to ensure proper initialization.
Note that not forking the process will result in it running in the UI which may starve the UI. The most obvious symptom of this problem is non responsiveness of the cancel button. If you are running within the UI Thread you should do the bulk of your work in another Thread to prevent starvation. It is recommended that fork is set to true in most cases.
Inner classes inherited from class org.eclipse.jface.window.Window |
Window.IExceptionHandler |
Field Summary | |
protected Button |
cancel
The Cancel button control. |
protected boolean |
enableCancelButton
Indicates whether the Cancel button is to be enabled. |
protected boolean |
operationCancelableState
Indicates whether the Cancel button is to be shown. |
protected ProgressIndicator |
progressIndicator
The progress indicator control. |
protected Label |
subTaskLabel
The label control for the subtask. |
protected Label |
taskLabel
The label control for the task. |
Fields inherited from class org.eclipse.jface.dialogs.IconAndMessageDialog |
message, messageLabel |
Fields inherited from class org.eclipse.jface.dialogs.Dialog |
buttonBar, dialogArea, DLG_IMG_ERROR, DLG_IMG_INFO, DLG_IMG_MESSAGE_ERROR, DLG_IMG_MESSAGE_INFO, DLG_IMG_MESSAGE_WARNING, DLG_IMG_QUESTION, DLG_IMG_WARNING |
Fields inherited from class org.eclipse.jface.window.Window |
CANCEL, OK |
Constructor Summary | |
ProgressMonitorDialog(Shell parent)
Creates a progress monitor dialog under the given shell. |
Method Summary | |
boolean |
close()
The ProgressMonitorDialog implementation of this method
only closes the dialog if there are no currently running runnables. |
protected void |
configureShell(Shell shell)
Configures the given shell in preparation for opening this window in it. |
protected void |
createButtonsForButtonBar(Composite parent)
Adds buttons to this dialog's button bar. |
protected Control |
createDialogArea(Composite parent)
Creates and returns the contents of the upper part of this dialog (above the button bar). |
protected Image |
getImage()
Returns the image to display beside the message in this dialog. |
protected Point |
getInitialSize()
Returns the initial size to use for the shell. |
IProgressMonitor |
getProgressMonitor()
Returns the progress monitor to use for operations run in this progress dialog. |
void |
run(boolean fork,
boolean cancelable,
IRunnableWithProgress runnable)
Runs the given IRunnableWithProgress in this context. |
void |
setCancelable(boolean cancelable)
Sets whether the progress dialog is cancelable or not. |
Methods inherited from class org.eclipse.jface.dialogs.IconAndMessageDialog |
createButtonBar, createContents, createDialogAndButtonArea, createMessageArea |
Methods inherited from class org.eclipse.jface.window.Window |
canHandleShellCloseEvent, create, createShell, getContents, getDefaultImage, getInitialLocation, getParentShell, getReturnCode, getShell, getShellListener, getShellStyle, getWindowManager, handleFontChange, handleShellCloseEvent, open, setBlockOnOpen, setDefaultImage, setExceptionHandler, setReturnCode, setShellStyle, setWindowManager |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
protected ProgressIndicator progressIndicator
protected Label taskLabel
protected Label subTaskLabel
protected Button cancel
protected boolean operationCancelableState
protected boolean enableCancelButton
Constructor Detail |
public ProgressMonitorDialog(Shell parent)
open
is non-blocking.parentShell
- the parent shell, or null
to create a top-level shellMethod Detail |
public boolean close()
ProgressMonitorDialog
implementation of this method
only closes the dialog if there are no currently running runnables.close
in class Dialog
org.eclipse.jface.dialogs.Dialog
Window.close()
protected void configureShell(Shell shell)
Window
The default implementation of this framework method sets the shell's image and gives it a grid layout. Subclasses may extend or reimplement.
configureShell
in class Dialog
org.eclipse.jface.window.Window
newShell
- the shellprotected void createButtonsForButtonBar(Composite parent)
Dialog
The Dialog
implementation of this framework method adds
standard ok and cancel buttons using the createButton
framework method. These standard buttons will be accessible from
getCancelButton
, and getOKButton
.
Subclasses may override.
createButtonsForButtonBar
in class Dialog
org.eclipse.jface.dialogs.Dialog
parent
- the button bar compositeprotected Control createDialogArea(Composite parent)
Dialog
The Dialog
implementation of this framework method
creates and returns a new Composite
with
standard margins and spacing.
The returned control's layout data must be an instance of
GridData
.
Subclasses must override this method but may call super
as in the following example:
Composite composite = (Composite)super.createDialogArea(parent); //add controls to composite as necessary return composite;
createDialogArea
in class Dialog
org.eclipse.jface.dialogs.Dialog
parent
- the parent composite to contain the dialog areaprotected Point getInitialSize()
Window
Shell.computeSize(SWT.DEFAULT, SWT.DEFAULT, true)
.getInitialSize
in class Window
org.eclipse.jface.window.Window
public IProgressMonitor getProgressMonitor()
public void run(boolean fork, boolean cancelable, IRunnableWithProgress runnable) throws InvocationTargetException, InterruptedException
IRunnableContext
IRunnableWithProgress
in this context.
For example, if this is a ProgressMonitorDialog
then the runnable
is run using this dialog's progress monitor.run
in interface IRunnableContext
org.eclipse.jface.operation.IRunnableContext
fork
- true
if the runnable should be run in a separate thread,
and false
to run in the same threadcancelable
- true
to enable the cancelation, and
false
to make the operation uncancellablerunnable
- the runnable to runInvocationTargetException
- wraps any exception or error which occurs
while running the runnableInterruptedException
- propagated by the context if the runnable
acknowledges cancelation by throwing this exception. This should not be thrown
if cancelable is false
.public void setCancelable(boolean cancelable)
cancelable
- true
if the end user can cancel
this progress dialog, and false
if it cannot be canceledprotected Image getImage()
IconAndMessageDialog
Subclasses may override.
getImage
in class IconAndMessageDialog
org.eclipse.jface.dialogs.IconAndMessageDialog
|
Eclipse Platform 2.1 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |