/* * Copyright (C) 2006-2016 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.core.gui.cluster.view.internal; import java.io.IOException; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.eclipse.jface.action.Action; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.TableViewer; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.SelectionListener; import de.rcenvironment.core.gui.cluster.internal.ErrorMessageDialogFactory; import de.rcenvironment.core.utils.cluster.ClusterJobInformation; /** * Class responsible for killing cluster jobs. * * @author Doreen Seider */ public class KillClusterJobListenerListener implements SelectionListener { private static final String CANCELLING_JOBS_FAILED = "Cancelling jobs failed"; private static final Log LOGGER = LogFactory.getLog(KillClusterJobListenerListener.class); private TableViewer tableViewer; private Action refreshAction; public KillClusterJobListenerListener(TableViewer tableViewer, Action refreshAction) { this.tableViewer = tableViewer; this.refreshAction = refreshAction; } @Override public void widgetDefaultSelected(SelectionEvent e) { widgetSelected(e); } @Override public void widgetSelected(SelectionEvent event) { ISelection selection = tableViewer.getSelection(); List<String> jobIds = new ArrayList<String>(); if (selection != null && selection instanceof IStructuredSelection) { IStructuredSelection sel = (IStructuredSelection) selection; for (@SuppressWarnings("unchecked") Iterator<ClusterJobInformation> iterator = sel.iterator(); iterator.hasNext();) { ClusterJobInformation informationEntry = iterator.next(); jobIds.add(informationEntry.getJobId()); } } try { ClusterJobInformationModel.getInstance().getClusterInformationService().cancelClusterJobs(jobIds); } catch (IOException e) { LOGGER.error(CANCELLING_JOBS_FAILED, e); ErrorMessageDialogFactory.createMessageDialogForCancelingJobsFailure(tableViewer.getTable(), e.getMessage()).open(); } refreshAction.run(); } }