/*******************************************************************************
* Copyright (c) 2006 IBM Corporation.
* 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:
* Ryan Morse
*******************************************************************************/
package org.eclipse.linuxtools.internal.systemtap.ui.ide;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.linuxtools.systemtap.ui.consolelog.structures.ScriptConsole;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchListener;
import org.eclipse.ui.IWorkbenchWindow;
/**
* This listener is responsible for monitoring workbench close actions. It is used
* to veto a shutdown if there are scripts still running and the user does not really
* want to shutdown.
* @author Ryan Morse
*/
public class IDECloseMonitor implements IWorkbenchListener {
@Override
public boolean preShutdown(IWorkbench workbench, boolean forced) {
boolean close = true;
if (!forced) {
IWorkbenchWindow window = workbench.getActiveWorkbenchWindow();
if (ScriptConsole.anyRunning()) {
close = MessageDialog.openQuestion(window.getShell(),
Localization.getString("IDECloseMonitor.StillRunningTitle"), //$NON-NLS-1$
Localization.getString("IDECloseMonitor.StillRunning")); //$NON-NLS-1$
}
}
return close;
}
@Override
public void postShutdown(IWorkbench workbench) {}
}