package com.tibco.as.spacebar.ui.handlers.metaspace; import org.eclipse.core.commands.ExecutionEvent; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; import org.eclipse.jface.dialogs.IDialogConstants; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.osgi.util.NLS; import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.handlers.HandlerUtil; import org.eclipse.ui.progress.UIJob; import com.tibco.as.spacebar.ui.SpaceBarPlugin; import com.tibco.as.spacebar.ui.model.Metaspace; import com.tibco.as.spacebar.ui.model.Connection; public class Suspend extends AbstractMetaspaceHandler { @Override protected void handle(ExecutionEvent event, Metaspace metaspace) { Shell shell = HandlerUtil.getActiveShell(event); final Connection connection = metaspace.getConnection(); final String metaspaceName = connection.getMetaspaceName(); MessageDialog dialog = new MessageDialog(shell, "Confirm Metaspace Suspend", null, NLS.bind( "Are you sure you want to suspend metaspace ''{0}''?", metaspaceName), MessageDialog.QUESTION, new String[] { IDialogConstants.YES_LABEL, IDialogConstants.NO_LABEL }, 0); // yes is the default int code = dialog.open(); if (code == MessageDialog.OK) { new UIJob(shell.getDisplay(), "SuspendMetaspace") { @Override public IStatus runInUIThread(IProgressMonitor monitor) { try { monitor.beginTask(NLS.bind( "Suspending metaspace ''{0}''", metaspaceName), 1); connection.getMetaspace().suspend(); monitor.worked(1); } catch (com.tibco.as.space.ASException e) { return new Status(IStatus.ERROR, SpaceBarPlugin.ID_PLUGIN, NLS.bind("Could not suspend metaspace ''{0}''", metaspaceName), e); } finally { monitor.done(); } return Status.OK_STATUS; } }.schedule(); } } }