/******************************************************************************* * Copyright (c) 2015 Red Hat. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Red Hat - Initial Contribution *******************************************************************************/ package org.eclipse.linuxtools.internal.docker.ui.testutils.swt; import org.eclipse.linuxtools.docker.core.DockerConnectionManager; import org.eclipse.linuxtools.docker.core.IDockerConnection; import org.eclipse.linuxtools.docker.core.IDockerConnectionStorageManager; import org.eclipse.linuxtools.internal.docker.ui.testutils.MockDockerConnectionStorageManagerFactory; import org.eclipse.linuxtools.internal.docker.ui.views.DockerContainersView; import org.eclipse.linuxtools.internal.docker.ui.views.DockerExplorerView; import org.eclipse.swtbot.eclipse.finder.SWTWorkbenchBot; import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView; /** * */ public class DockerConnectionManagerUtils { /** * Configures the {@link DockerConnectionManager} with the given array of * {@link IDockerConnection} (can be mocked) and refreshes the associated * {@link DockerExplorerView}. * * @param connections * the connection to configure in the * {@link DockerConnectionManager} via a mocked * {@link IDockerConnectionStorageManager} */ public static void configureConnectionManager(final IDockerConnection... connections) { final IDockerConnectionStorageManager connectionStorageManager = MockDockerConnectionStorageManagerFactory .providing(connections); configureConnectionManager(connectionStorageManager); } /** * Configures the {@link DockerConnectionManager} with the given array of * {@link IDockerConnection} (can be mocked) and refreshes the associated * {@link DockerExplorerView}. * * @param connectionStorageManager * the {@link IDockerConnectionStorageManager} to use (can be * mocked) */ public static void configureConnectionManager(final IDockerConnectionStorageManager connectionStorageManager) { DockerConnectionManager.getInstance().setConnectionStorageManager(connectionStorageManager); final SWTWorkbenchBot bot = new SWTWorkbenchBot(); final SWTBotView dockerExplorerBotView = SWTUtils.getSWTBotView(bot, DockerExplorerView.VIEW_ID); final SWTBotView dockerContainersBotView = SWTUtils.getSWTBotView(bot, DockerContainersView.VIEW_ID); SWTUtils.syncExec(() -> { DockerConnectionManager.getInstance().reloadConnections(); if (dockerExplorerBotView != null) { final DockerExplorerView dockerExplorerView = (DockerExplorerView) dockerExplorerBotView .getViewReference().getView(false); if (dockerExplorerView != null) { dockerExplorerView.getCommonViewer().refresh(); dockerExplorerView.showConnectionsOrExplanations(); } } if (dockerContainersBotView != null) { final DockerContainersView dockerContainersView = (DockerContainersView) dockerContainersBotView .getViewReference().getView(false); if (dockerContainersView != null) { dockerContainersView.getViewer().refresh(); } } }); } }