Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeff Johnston2016-05-26 17:57:06 +0000
committerJeff Johnston2016-05-26 19:04:17 +0000
commit3e61aaba00fc436d824c4d5855dcd32111060a6b (patch)
treedd2d8c6e9aceed2d52bed2279bd60b032ba625a8
parentb9ea44b555f165efc45aa2d71392a07251f5c841 (diff)
downloadorg.eclipse.linuxtools-3e61aaba00fc436d824c4d5855dcd32111060a6b.tar.gz
org.eclipse.linuxtools-3e61aaba00fc436d824c4d5855dcd32111060a6b.tar.xz
org.eclipse.linuxtools-3e61aaba00fc436d824c4d5855dcd32111060a6b.zip
Bug 491999 - Docker build fails when called via Quick Access menu
- make connection detection more robust to handle case where Docker Explorer View isn't up yet and a connection selected - add some logic back into CommandUtils and use it instead of calling DockerConnectionWatcher directly Change-Id: I7653fdd80114485db6299f485dbb96d58299d5d0 Reviewed-on: https://git.eclipse.org/r/73752 Tested-by: Hudson CI Reviewed-by: Jeff Johnston <jjohnstn@redhat.com>
-rw-r--r--containers/org.eclipse.linuxtools.docker.ui/src/org/eclipse/linuxtools/internal/docker/ui/commands/BuildImageCommandHandler.java23
-rw-r--r--containers/org.eclipse.linuxtools.docker.ui/src/org/eclipse/linuxtools/internal/docker/ui/commands/CommandUtils.java13
2 files changed, 29 insertions, 7 deletions
diff --git a/containers/org.eclipse.linuxtools.docker.ui/src/org/eclipse/linuxtools/internal/docker/ui/commands/BuildImageCommandHandler.java b/containers/org.eclipse.linuxtools.docker.ui/src/org/eclipse/linuxtools/internal/docker/ui/commands/BuildImageCommandHandler.java
index 0be03715e2..a800185040 100644
--- a/containers/org.eclipse.linuxtools.docker.ui/src/org/eclipse/linuxtools/internal/docker/ui/commands/BuildImageCommandHandler.java
+++ b/containers/org.eclipse.linuxtools.docker.ui/src/org/eclipse/linuxtools/internal/docker/ui/commands/BuildImageCommandHandler.java
@@ -28,10 +28,10 @@ import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.window.Window;
import org.eclipse.jface.wizard.IWizard;
import org.eclipse.jface.wizard.WizardDialog;
+import org.eclipse.linuxtools.docker.core.DockerConnectionManager;
import org.eclipse.linuxtools.docker.core.DockerException;
import org.eclipse.linuxtools.docker.core.IDockerConnection;
import org.eclipse.linuxtools.internal.docker.core.DockerConnection;
-import org.eclipse.linuxtools.internal.docker.ui.DockerConnectionWatcher;
import org.eclipse.linuxtools.internal.docker.ui.views.DVMessages;
import org.eclipse.linuxtools.internal.docker.ui.views.ImageBuildProgressHandler;
import org.eclipse.linuxtools.internal.docker.ui.wizards.ImageBuild;
@@ -39,6 +39,9 @@ import org.eclipse.linuxtools.internal.docker.ui.wizards.WizardMessages;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.handlers.HandlerUtil;
@@ -55,7 +58,23 @@ public class BuildImageCommandHandler extends AbstractHandler {
final ImageBuild wizard = new ImageBuild();
final WizardDialog wizardDialog = new NonModalWizardDialog(HandlerUtil.getActiveShell(event), wizard);
wizardDialog.create();
- connection = DockerConnectionWatcher.getInstance().getConnection();
+ IWorkbenchWindow window = PlatformUI.getWorkbench()
+ .getActiveWorkbenchWindow();
+ IWorkbenchPage activePage = null;
+ IWorkbenchPart activePart = null;
+ if (window != null)
+ activePage = window.getActivePage();
+ if (activePage != null)
+ activePart = activePage.getActivePart();
+ connection = CommandUtils.getCurrentConnection(activePart);
+ // if no current connection, try the first connection in the list of
+ // connections
+ if (connection == null) {
+ IDockerConnection[] connections = DockerConnectionManager
+ .getInstance().getConnections();
+ if (connections.length > 0)
+ connection = connections[0];
+ }
if (connection == null || !connection.isActive()) {
// if no active connection, issue error message dialog and return
Display.getDefault().syncExec(() -> MessageDialog.openError(
diff --git a/containers/org.eclipse.linuxtools.docker.ui/src/org/eclipse/linuxtools/internal/docker/ui/commands/CommandUtils.java b/containers/org.eclipse.linuxtools.docker.ui/src/org/eclipse/linuxtools/internal/docker/ui/commands/CommandUtils.java
index d85a771810..fdbbe12048 100644
--- a/containers/org.eclipse.linuxtools.docker.ui/src/org/eclipse/linuxtools/internal/docker/ui/commands/CommandUtils.java
+++ b/containers/org.eclipse.linuxtools.docker.ui/src/org/eclipse/linuxtools/internal/docker/ui/commands/CommandUtils.java
@@ -75,11 +75,14 @@ public class CommandUtils {
* - active Workbench part
*/
public static IDockerConnection getCurrentConnection(final IWorkbenchPart activePart) {
- return DockerConnectionWatcher.getInstance().getConnection();
- // if (activePart instanceof DockerContainersView) {
- // return ((DockerContainersView) activePart).getConnection();
- // } else if (activePart instanceof DockerImagesView) {
- // return ((DockerImagesView) activePart).getConnection();
+ if (DockerConnectionWatcher.getInstance().getConnection() != null)
+ return DockerConnectionWatcher.getInstance().getConnection();
+ else if (activePart instanceof DockerContainersView) {
+ return ((DockerContainersView) activePart).getConnection();
+ } else if (activePart instanceof DockerImagesView) {
+ return ((DockerImagesView) activePart).getConnection();
+ }
+ return null;
// } else if (activePart instanceof DockerExplorerView) {
// final ITreeSelection selection = ((DockerExplorerView) activePart)
// .getCommonViewer().getStructuredSelection();

Back to the top