diff options
Diffstat (limited to 'containers')
3 files changed, 66 insertions, 56 deletions
diff --git a/containers/org.eclipse.linuxtools.docker.ui.tests/src/org/eclipse/linuxtools/internal/docker/ui/views/DockerExplorerViewSWTBotTest.java b/containers/org.eclipse.linuxtools.docker.ui.tests/src/org/eclipse/linuxtools/internal/docker/ui/views/DockerExplorerViewSWTBotTest.java index 28101ffa9e..d7876ea71f 100644 --- a/containers/org.eclipse.linuxtools.docker.ui.tests/src/org/eclipse/linuxtools/internal/docker/ui/views/DockerExplorerViewSWTBotTest.java +++ b/containers/org.eclipse.linuxtools.docker.ui.tests/src/org/eclipse/linuxtools/internal/docker/ui/views/DockerExplorerViewSWTBotTest.java @@ -73,16 +73,16 @@ public class DockerExplorerViewSWTBotTest { this.bot = new SWTWorkbenchBot(); SWTUtils.asyncExec(() -> {try { PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage() - .showView("org.eclipse.linuxtools.docker.ui.dockerExplorerView"); + .showView(DockerExplorerView.VIEW_ID); } catch (Exception e) { e.printStackTrace(); Assert.fail("Failed to open Docker Explorer view: " + e.getMessage()); }}); - this.dockerExplorerViewBot = bot.viewById("org.eclipse.linuxtools.docker.ui.dockerExplorerView"); + this.dockerExplorerViewBot = bot.viewById(DockerExplorerView.VIEW_ID); this.dockerExplorerView = (DockerExplorerView) (dockerExplorerViewBot.getViewReference().getView(true)); this.bot.views().stream() - .filter(v -> v.getReference().getId().equals("org.eclipse.linuxtools.docker.ui.dockerContainersView") - || v.getReference().getId().equals("org.eclipse.linuxtools.docker.ui.dockerImagesView") + .filter(v -> v.getReference().getId().equals(DockerContainersView.VIEW_ID) + || v.getReference().getId().equals(DockerImagesView.VIEW_ID) || v.getReference().getId().equals("org.eclipse.ui.views.PropertySheet")) .forEach(v -> v.close()); } diff --git a/containers/org.eclipse.linuxtools.docker.ui.tests/src/org/eclipse/linuxtools/internal/docker/ui/wizards/NewDockerConnectionSWTBotTest.java b/containers/org.eclipse.linuxtools.docker.ui.tests/src/org/eclipse/linuxtools/internal/docker/ui/wizards/NewDockerConnectionSWTBotTest.java index ba401cf1f4..139d8554fb 100644 --- a/containers/org.eclipse.linuxtools.docker.ui.tests/src/org/eclipse/linuxtools/internal/docker/ui/wizards/NewDockerConnectionSWTBotTest.java +++ b/containers/org.eclipse.linuxtools.docker.ui.tests/src/org/eclipse/linuxtools/internal/docker/ui/wizards/NewDockerConnectionSWTBotTest.java @@ -18,13 +18,19 @@ import org.eclipse.linuxtools.internal.docker.ui.testutils.MockDockerConnectionS import org.eclipse.linuxtools.internal.docker.ui.testutils.swt.CheckBoxAssertion; import org.eclipse.linuxtools.internal.docker.ui.testutils.swt.CloseWelcomePageRule; import org.eclipse.linuxtools.internal.docker.ui.testutils.swt.RadioAssertion; +import org.eclipse.linuxtools.internal.docker.ui.testutils.swt.SWTUtils; import org.eclipse.linuxtools.internal.docker.ui.testutils.swt.TextAssertion; +import org.eclipse.linuxtools.internal.docker.ui.views.DockerContainersView; +import org.eclipse.linuxtools.internal.docker.ui.views.DockerExplorerView; +import org.eclipse.linuxtools.internal.docker.ui.views.DockerImagesView; import org.eclipse.swtbot.eclipse.finder.SWTWorkbenchBot; import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView; import org.eclipse.swtbot.swt.finder.junit.SWTBotJunit4ClassRunner; import org.eclipse.swtbot.swt.finder.waits.Conditions; import org.eclipse.swtbot.swt.finder.widgets.SWTBotToolbarButton; +import org.eclipse.ui.PlatformUI; import org.junit.After; +import org.junit.Assert; import org.junit.Before; import org.junit.ClassRule; import org.junit.Test; @@ -45,11 +51,18 @@ public class NewDockerConnectionSWTBotTest { @Before public void lookupDockerExplorerView() throws Exception { - dockerExplorerViewBot = bot.viewById("org.eclipse.linuxtools.docker.ui.dockerExplorerView"); + SWTUtils.asyncExec(() -> {try { + PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage() + .showView(DockerExplorerView.VIEW_ID); + } catch (Exception e) { + e.printStackTrace(); + Assert.fail("Failed to open Docker Explorer view: " + e.getMessage()); + }}); + dockerExplorerViewBot = bot.viewById(DockerExplorerView.VIEW_ID); dockerExplorerViewBot.show(); bot.views().stream() - .filter(v -> v.getReference().getId().equals("org.eclipse.linuxtools.docker.ui.dockerContainersView") - || v.getReference().getId().equals("org.eclipse.linuxtools.docker.ui.dockerImagesView")) + .filter(v -> v.getReference().getId().equals(DockerContainersView.VIEW_ID) + || v.getReference().getId().equals(DockerImagesView.VIEW_ID)) .forEach(v -> v.close()); dockerExplorerViewBot.setFocus(); this.addConnectionButton = dockerExplorerViewBot.toolbarButton("&Add Connection"); diff --git a/containers/org.eclipse.linuxtools.docker.ui/src/org/eclipse/linuxtools/internal/docker/ui/wizards/NewDockerConnectionPage.java b/containers/org.eclipse.linuxtools.docker.ui/src/org/eclipse/linuxtools/internal/docker/ui/wizards/NewDockerConnectionPage.java index b2d36174a1..81ccbe26d1 100644 --- a/containers/org.eclipse.linuxtools.docker.ui/src/org/eclipse/linuxtools/internal/docker/ui/wizards/NewDockerConnectionPage.java +++ b/containers/org.eclipse.linuxtools.docker.ui/src/org/eclipse/linuxtools/internal/docker/ui/wizards/NewDockerConnectionPage.java @@ -21,8 +21,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Iterator; import java.util.List; -import java.util.concurrent.ArrayBlockingQueue; -import java.util.concurrent.TimeUnit; import org.eclipse.core.databinding.DataBindingContext; import org.eclipse.core.databinding.beans.BeanProperties; @@ -92,6 +90,9 @@ public class NewDockerConnectionPage extends WizardPage { private final NewDockerConnectionPageModel model; + /** + * Constructor. + */ public NewDockerConnectionPage() { super("NewDockerConnectionPage", //$NON-NLS-1$ WizardMessages.getString("NewDockerConnectionPage.title"), //$NON-NLS-1$ @@ -561,8 +562,6 @@ public class NewDockerConnectionPage extends WizardPage { @Override public void widgetSelected(SelectionEvent e) { - final ArrayBlockingQueue<Boolean> resultQueue = new ArrayBlockingQueue<>( - 1); try { getWizard().getContainer().run(true, false, new IRunnableWithProgress() { @@ -574,65 +573,63 @@ public class NewDockerConnectionPage extends WizardPage { IProgressMonitor.UNKNOWN); try { final DockerConnection dockerConnection = getDockerConnection(); - if (dockerConnection.getClient() != null) { - dockerConnection.open(false); - dockerConnection.ping(); - dockerConnection.close(); - resultQueue.add(true); - } else { - resultQueue.add(false); - } + dockerConnection.open(false); + dockerConnection.ping(); + dockerConnection.close(); + // ping succeeded + displaySuccessDialog(); } catch (DockerException e) { // only log if there's an underlying cause. if (e.getCause() != null) { Activator.log(e); } - resultQueue.add(false); + displayErrorDialog(); } } + }); } catch (InvocationTargetException | InterruptedException o_O) { Activator.log(o_O); } - try { - final Boolean result = resultQueue.poll(5000, - TimeUnit.MILLISECONDS); - if (result != null && result) { - new MessageDialog(Display.getDefault().getActiveShell(), - WizardMessages.getString( - "NewDockerConnectionPage.success"), //$NON-NLS-1$ - null, - WizardMessages.getString( - "NewDockerConnectionPage.pingSuccess"), //$NON-NLS-1$ - SWT.ICON_INFORMATION, - new String[] { WizardMessages.getString( - "NewDockerConnectionPage.ok") }, //$NON-NLS-1$ - 0).open(); - } else { + } + + private void displaySuccessDialog() { + displayDialog( + WizardMessages + .getString("NewDockerConnectionPage.success"), //$NON-NLS-1$ + WizardMessages.getString( + "NewDockerConnectionPage.pingSuccess"), //$NON-NLS-1$ + SWT.ICON_INFORMATION, + new String[] { WizardMessages + .getString("NewDockerConnectionPage.ok") } //$NON-NLS-1$ + ); + } + + private void displayErrorDialog() { + displayDialog( + WizardMessages + .getString("NewDockerConnectionPage.failure"), //$NON-NLS-1$ + WizardMessages.getString( + "NewDockerConnectionPage.pingFailure"), //$NON-NLS-1$ + SWT.ICON_ERROR, + new String[] { WizardMessages + .getString("NewDockerConnectionPage.ok") } //$NON-NLS-1$ + ); + } + + private void displayDialog(final String dialogTitle, + final String dialogMessage, final int icon, + final String[] buttonLabels) { + Display.getDefault().syncExec(new Runnable() { + + @Override + public void run() { new MessageDialog(Display.getDefault().getActiveShell(), - WizardMessages.getString( - "NewDockerConnectionPage.failure"), //$NON-NLS-1$ - null, - WizardMessages.getString( - "NewDockerConnectionPage.pingFailure"), //$NON-NLS-1$ - SWT.ICON_ERROR, - new String[] { WizardMessages.getString( - "NewDockerConnectionPage.ok") }, //$NON-NLS-1$ - 0).open(); + dialogTitle, null, dialogMessage, icon, + buttonLabels, 0).open(); } - } catch (InterruptedException o_O) { - new MessageDialog(Display.getDefault().getActiveShell(), - WizardMessages.getString( - "NewDockerConnectionPage.failure"), //$NON-NLS-1$ - null, - WizardMessages.getString( - "NewDockerConnectionPage.pingFailure"), //$NON-NLS-1$ - SWT.ICON_ERROR, - new String[] { WizardMessages - .getString("NewDockerConnectionPage.ok") }, //$NON-NLS-1$ - 0).open(); - } + }); } }; |