package org.safehaus.penrose.studio.server.action;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.swt.SWT;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PlatformUI;
import org.apache.log4j.Logger;
import org.safehaus.penrose.studio.PenroseImage;
import org.safehaus.penrose.studio.PenroseStudio;
import org.safehaus.penrose.studio.dialog.ErrorDialog;
import org.safehaus.penrose.studio.server.tree.ServerNode;
import org.safehaus.penrose.studio.server.ServersView;
public class DeleteServerAction extends Action {
Logger log = Logger.getLogger(getClass());
public DeleteServerAction() {
setText("&Delete Server");
setImageDescriptor(PenroseStudio.getImageDescriptor(PenroseImage.DELETE_LARGE));
setAccelerator(SWT.CTRL | 'D');
setToolTipText("Delete Server");
setId(getClass().getName());
}
public void run() {
IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
try {
ServersView serversView = ServersView.getInstance();
ServerNode serverNode = serversView.getSelectedServerNode();
if (serverNode == null) return;
boolean confirm = MessageDialog.openQuestion(
window.getShell(),
"Removing Server", "Are you sure?"
);
if (!confirm) return;
PenroseStudio penroseStudio = PenroseStudio.getInstance();
penroseStudio.getApplicationConfig().removeServerConfig(serverNode.getServerName());
penroseStudio.store();
serversView.refresh();
} catch (Exception e) {
log.error(e.getMessage(), e);
ErrorDialog.open(e);
}
}
}