| /******************************************************************************* |
| * Copyright (c) 2014, 2018 Red Hat. |
| * |
| * This program and the accompanying materials are made |
| * available under the terms of the Eclipse Public License 2.0 |
| * which is available at https://www.eclipse.org/legal/epl-2.0/ |
| * |
| * SPDX-License-Identifier: EPL-2.0 |
| * |
| * Contributors: |
| * Red Hat - Initial Contribution |
| *******************************************************************************/ |
| |
| package org.eclipse.linuxtools.internal.docker.ui.commands; |
| |
| import java.util.stream.Stream; |
| |
| import org.eclipse.core.commands.AbstractHandler; |
| import org.eclipse.core.commands.ExecutionEvent; |
| import org.eclipse.jface.viewers.ITreeSelection; |
| import org.eclipse.linuxtools.docker.core.DockerConnectionManager; |
| import org.eclipse.linuxtools.docker.core.IDockerConnection; |
| import org.eclipse.ui.IWorkbenchPart; |
| import org.eclipse.ui.handlers.HandlerUtil; |
| import org.eclipse.ui.navigator.CommonNavigator; |
| import org.eclipse.ui.navigator.CommonViewer; |
| |
| /** |
| * Removes the selected {@link IDockerConnection}(s) |
| */ |
| public class RemoveConnectionCommandHandler extends AbstractHandler { |
| |
| @Override |
| public Object execute(ExecutionEvent event) { |
| final IWorkbenchPart activePart = HandlerUtil.getActivePart(event); |
| if(activePart instanceof CommonNavigator) { |
| final CommonViewer viewer = ((CommonNavigator)activePart).getCommonViewer(); |
| final ITreeSelection selection = viewer.getStructuredSelection(); |
| Stream.of(selection.getPaths()).forEach( |
| p -> DockerConnectionManager.getInstance().removeConnection( |
| (IDockerConnection) p.getLastSegment())); |
| } |
| return null; |
| } |
| |
| } |