package org.csstudio.dal.ui.internal.connectionview; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.csstudio.platform.simpledal.IConnector; import org.eclipse.jface.action.IAction; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.ui.IObjectActionDelegate; import org.eclipse.ui.IWorkbenchPart; /** * Action that dispose all currently selected connectors. * * @author Sven Wende * */ public class DisposeConnectorAction implements IObjectActionDelegate { private List<IConnector> _selectedConnectors; /** * {@inheritDoc} */ @Override public void setActivePart(IAction action, IWorkbenchPart targetPart) { } /** * {@inheritDoc} */ @Override public void run(IAction action) { if(_selectedConnectors!=null) { for(IConnector c : _selectedConnectors) { c.forceDispose(); } } } /** * {@inheritDoc} */ @Override public void selectionChanged(IAction action, ISelection selection) { if (selection != null && selection instanceof IStructuredSelection) { IStructuredSelection sel = (IStructuredSelection) selection; _selectedConnectors = new ArrayList<IConnector>(); Iterator it = sel.iterator(); while (it.hasNext()) { Object o = it.next(); if (o instanceof IConnector) { _selectedConnectors.add((IConnector) o); } } } } }