Mercurial > projects > dwt-addons
diff dwtx/jface/dialogs/IDialogBlockedHandler.d @ 8:a3ff22a98bef
Dialog
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Sat, 29 Mar 2008 01:25:27 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dwtx/jface/dialogs/IDialogBlockedHandler.d Sat Mar 29 01:25:27 2008 +0100 @@ -0,0 +1,75 @@ +/******************************************************************************* + * Copyright (c) 2000, 2006 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + * Port to the D programming language: + * Frank Benoit <benoit@tionex.de> + *******************************************************************************/ +module dwtx.jface.dialogs.IDialogBlockedHandler; + + +import dwt.widgets.Shell; +import dwtx.core.runtime.IProgressMonitor; +import dwtx.core.runtime.IStatus; +import dwtx.jface.wizard.WizardDialog; + +import dwt.dwthelper.utils; + +/** + * The IDialogBlockedHandler is the handler used by + * JFace to provide extra information when a + * blocking has occured. There is one static instance + * of this class used by WizardDialog and ModalContext. + * @see dwtx.core.runtime.IProgressMonitorWithBlocking#clearBlocked() + * @see dwtx.core.runtime.IProgressMonitorWithBlocking#setBlocked(IStatus) + * @see WizardDialog + * @since 3.0 + */ +public interface IDialogBlockedHandler { + /** + * The blockage has been cleared. Clear the + * extra information and resume. + */ + public void clearBlocked(); + + /** + * A blockage has occured. Show the blockage and + * forward any actions to blockingMonitor. + * <b>NOTE:</b> This will open any blocked notification immediately + * even if there is a modal shell open. + * + * @param parentShell The shell this is being sent from. If the parent + * shell is <code>null</code> the behavior will be the same as + * IDialogBlockedHandler#showBlocked(IProgressMonitor, IStatus, String) + * + * @param blocking The monitor to forward to. This is most + * important for calls to <code>cancel()</code>. + * @param blockingStatus The status that describes the blockage + * @param blockedName The name of the locked operation. + * @see IDialogBlockedHandler#showBlocked(IProgressMonitor, IStatus, String) + */ + public void showBlocked(Shell parentShell, IProgressMonitor blocking, + IStatus blockingStatus, String blockedName); + + /** + * A blockage has occured. Show the blockage when there is + * no longer any modal shells in the UI and forward any actions + * to blockingMonitor. + * + * <b>NOTE:</b> As no shell has been specified this method will + * not open any blocked notification until all other modal shells + * have been closed. + * + * @param blocking The monitor to forward to. This is most + * important for calls to <code>cancel()</code>. + * @param blockingStatus The status that describes the blockage + * @param blockedName The name of the locked operation. + */ + public void showBlocked(IProgressMonitor blocking, IStatus blockingStatus, + String blockedName); +}