Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXavier Coulon2015-08-31 12:23:47 +0000
committerJeff Johnston2015-09-01 19:55:14 +0000
commit95ff625aa416273053462ba96d6721cd06be3774 (patch)
treede737e86ac8da316a8386522e47e161dc2d99d40
parent13d24bf3ae393add0fb99e4de3ea5209357c47d2 (diff)
downloadorg.eclipse.linuxtools-95ff625aa416273053462ba96d6721cd06be3774.tar.gz
org.eclipse.linuxtools-95ff625aa416273053462ba96d6721cd06be3774.tar.xz
org.eclipse.linuxtools-95ff625aa416273053462ba96d6721cd06be3774.zip
Bug 470577 - Docker Explorer does not show the latest image id after an image build
DockerExplorerView is now properly registered as a listener. Change-Id: I4a8c5a597f5c13c861613c45a413f4d669bccabb Signed-off-by: Xavier Coulon <xcoulon@redhat.com> Reviewed-on: https://git.eclipse.org/r/55034 Tested-by: Hudson CI Reviewed-by: Jeff Johnston <jjohnstn@redhat.com>
-rw-r--r--containers/org.eclipse.linuxtools.docker.core/src/org/eclipse/linuxtools/docker/core/IDockerContainerListener.java9
-rw-r--r--containers/org.eclipse.linuxtools.docker.core/src/org/eclipse/linuxtools/docker/core/IDockerImageListener.java11
-rw-r--r--containers/org.eclipse.linuxtools.docker.core/src/org/eclipse/linuxtools/internal/docker/core/DockerConnection.java3
-rw-r--r--containers/org.eclipse.linuxtools.docker.core/src/org/eclipse/linuxtools/internal/docker/core/DockerContainerRefreshManager.java5
-rw-r--r--containers/org.eclipse.linuxtools.docker.ui/src/org/eclipse/linuxtools/internal/docker/ui/views/DockerContainersView.java3
-rw-r--r--containers/org.eclipse.linuxtools.docker.ui/src/org/eclipse/linuxtools/internal/docker/ui/views/DockerExplorerView.java83
-rw-r--r--containers/org.eclipse.linuxtools.docker.ui/src/org/eclipse/linuxtools/internal/docker/ui/views/DockerImagesView.java2
7 files changed, 67 insertions, 49 deletions
diff --git a/containers/org.eclipse.linuxtools.docker.core/src/org/eclipse/linuxtools/docker/core/IDockerContainerListener.java b/containers/org.eclipse.linuxtools.docker.core/src/org/eclipse/linuxtools/docker/core/IDockerContainerListener.java
index 85924a1524..d92b310044 100644
--- a/containers/org.eclipse.linuxtools.docker.core/src/org/eclipse/linuxtools/docker/core/IDockerContainerListener.java
+++ b/containers/org.eclipse.linuxtools.docker.core/src/org/eclipse/linuxtools/docker/core/IDockerContainerListener.java
@@ -15,12 +15,13 @@ import java.util.List;
public interface IDockerContainerListener {
/**
- * Listener notification method
+ * Called when the list of {@link IDockerContainer} for the given
+ * {@link IDockerConnection} changed
*
* @param connection
- * - Docker connection
- * @param list
- * - new list of IDockerContainers
+ * - the Docker connection
+ * @param containers
+ * - the new list of {@link IDockerContainer}
*/
void listChanged(IDockerConnection connection, List<IDockerContainer> list);
diff --git a/containers/org.eclipse.linuxtools.docker.core/src/org/eclipse/linuxtools/docker/core/IDockerImageListener.java b/containers/org.eclipse.linuxtools.docker.core/src/org/eclipse/linuxtools/docker/core/IDockerImageListener.java
index d1195a3b5b..1b63e526d4 100644
--- a/containers/org.eclipse.linuxtools.docker.core/src/org/eclipse/linuxtools/docker/core/IDockerImageListener.java
+++ b/containers/org.eclipse.linuxtools.docker.core/src/org/eclipse/linuxtools/docker/core/IDockerImageListener.java
@@ -14,6 +14,15 @@ import java.util.List;
public interface IDockerImageListener {
- void listChanged(IDockerConnection manager, List<IDockerImage> list);
+ /**
+ * Called when the list of {@link IDockerImage} for the given
+ * {@link IDockerConnection} changed
+ *
+ * @param connection
+ * - the Docker connection
+ * @param images
+ * - the new list of {@link IDockerImage}
+ */
+ void listChanged(IDockerConnection manager, List<IDockerImage> images);
}
diff --git a/containers/org.eclipse.linuxtools.docker.core/src/org/eclipse/linuxtools/internal/docker/core/DockerConnection.java b/containers/org.eclipse.linuxtools.docker.core/src/org/eclipse/linuxtools/internal/docker/core/DockerConnection.java
index b550080f81..6881537ce7 100644
--- a/containers/org.eclipse.linuxtools.docker.core/src/org/eclipse/linuxtools/internal/docker/core/DockerConnection.java
+++ b/containers/org.eclipse.linuxtools.docker.core/src/org/eclipse/linuxtools/internal/docker/core/DockerConnection.java
@@ -672,7 +672,8 @@ public class DockerConnection implements IDockerConnection {
if (containerListeners != null) {
Object[] listeners = containerListeners.getListeners();
for (int i = 0; i < listeners.length; ++i) {
- ((IDockerContainerListener) listeners[i]).listChanged(this,
+ ((IDockerContainerListener) listeners[i])
+ .listChanged(this,
list);
}
}
diff --git a/containers/org.eclipse.linuxtools.docker.core/src/org/eclipse/linuxtools/internal/docker/core/DockerContainerRefreshManager.java b/containers/org.eclipse.linuxtools.docker.core/src/org/eclipse/linuxtools/internal/docker/core/DockerContainerRefreshManager.java
index b94520f23c..152a27e606 100644
--- a/containers/org.eclipse.linuxtools.docker.core/src/org/eclipse/linuxtools/internal/docker/core/DockerContainerRefreshManager.java
+++ b/containers/org.eclipse.linuxtools.docker.core/src/org/eclipse/linuxtools/internal/docker/core/DockerContainerRefreshManager.java
@@ -38,8 +38,9 @@ public class DockerContainerRefreshManager implements IDockerContainerListener {
}
@Override
- public synchronized void listChanged(IDockerConnection connection,
- List<IDockerContainer> dclist) {
+ public synchronized void listChanged(
+ final IDockerConnection connection,
+ final List<IDockerContainer> dclist) {
ContainerRefreshThread rt = refreshThreadMap.get(connection);
if (rt == null) {
diff --git a/containers/org.eclipse.linuxtools.docker.ui/src/org/eclipse/linuxtools/internal/docker/ui/views/DockerContainersView.java b/containers/org.eclipse.linuxtools.docker.ui/src/org/eclipse/linuxtools/internal/docker/ui/views/DockerContainersView.java
index 7ccb44333d..aab99e1fe7 100644
--- a/containers/org.eclipse.linuxtools.docker.ui/src/org/eclipse/linuxtools/internal/docker/ui/views/DockerContainersView.java
+++ b/containers/org.eclipse.linuxtools.docker.ui/src/org/eclipse/linuxtools/internal/docker/ui/views/DockerContainersView.java
@@ -369,7 +369,8 @@ public class DockerContainersView extends ViewPart implements
}
@Override
- public void listChanged(final IDockerConnection connection, final List<IDockerContainer> containers) {
+ public void listChanged(final IDockerConnection connection,
+ final List<IDockerContainer> containers) {
if (connection.getName().equals(connection.getName())) {
Display.getDefault().asyncExec(new Runnable() {
@Override
diff --git a/containers/org.eclipse.linuxtools.docker.ui/src/org/eclipse/linuxtools/internal/docker/ui/views/DockerExplorerView.java b/containers/org.eclipse.linuxtools.docker.ui/src/org/eclipse/linuxtools/internal/docker/ui/views/DockerExplorerView.java
index 6b106bc6f8..9772593a6e 100644
--- a/containers/org.eclipse.linuxtools.docker.ui/src/org/eclipse/linuxtools/internal/docker/ui/views/DockerExplorerView.java
+++ b/containers/org.eclipse.linuxtools.docker.ui/src/org/eclipse/linuxtools/internal/docker/ui/views/DockerExplorerView.java
@@ -66,7 +66,8 @@ public class DockerExplorerView extends CommonNavigator implements
private Control connectionsPane;
private Control explanationsPane;
private PageBook pageBook;
- private Map<IDockerConnection, DockerContainersRefresher> containersRefreshers = new HashMap<>();
+ private Map<IDockerConnection, ContainersRefresher> containersRefreshers = new HashMap<>();
+ private Map<IDockerConnection, ImagesRefresher> imagesRefreshers = new HashMap<>();
/** the search text widget. to filter containers and images. */
private Text search;
@@ -252,9 +253,14 @@ public class DockerExplorerView extends CommonNavigator implements
for (IDockerConnection connection : DockerConnectionManager
.getInstance().getConnections()) {
if (!containersRefreshers.containsKey(connection)) {
- final DockerContainersRefresher containerRefresher = new DockerContainersRefresher();
- connection.addContainerListener(containerRefresher);
- containersRefreshers.put(connection, containerRefresher);
+ final ContainersRefresher refresher = new ContainersRefresher();
+ connection.addContainerListener(refresher);
+ containersRefreshers.put(connection, refresher);
+ }
+ if (!imagesRefreshers.containsKey(connection)) {
+ final ImagesRefresher refresher = new ImagesRefresher();
+ connection.addImageListener(refresher);
+ imagesRefreshers.put(connection, refresher);
}
}
}
@@ -263,55 +269,54 @@ public class DockerExplorerView extends CommonNavigator implements
for (IDockerConnection connection : DockerConnectionManager
.getInstance().getConnections()) {
if (containersRefreshers.containsKey(connection)) {
- final DockerContainersRefresher dockerContainersRefresher = containersRefreshers
+ final ContainersRefresher refresher = containersRefreshers
.get(connection);
- connection.removeContainerListener(dockerContainersRefresher);
+ connection.removeContainerListener(refresher);
containersRefreshers.remove(connection);
}
+ if (imagesRefreshers.containsKey(connection)) {
+ final ImagesRefresher refresher = imagesRefreshers
+ .get(connection);
+ connection.removeImageListener(refresher);
+ imagesRefreshers.remove(connection);
+ }
}
}
- class DockerContainersRefresher implements IDockerContainerListener {
+ private void refresh(final IDockerConnection connection) {
+ Display.getDefault().asyncExec(new Runnable() {
+
+ @Override
+ public void run() {
+ // following is to force Container property testers
+ // to run again after list is updated. They won't do so by
+ // default.
+ final ISelection selection = getCommonViewer().getSelection();
+ getCommonViewer().refresh(connection, true);
+ if (selection != null) {
+ getCommonViewer().setSelection(selection, false);
+ }
+ }
+ });
+ }
+
+ class ContainersRefresher implements IDockerContainerListener {
+
@Override
public void listChanged(final IDockerConnection connection,
- final List<IDockerContainer> list) {
- Display.getDefault().asyncExec(new Runnable() {
-
- @Override
- public void run() {
- // following is to force Container property testers
- // to run again after list is updated. They won't do so by
- // default.
- final ISelection selection = getCommonViewer()
- .getSelection();
- if (selection != null) {
- getCommonViewer().setSelection(selection, false);
- }
- getCommonViewer().refresh();
- }
- });
+ final List<IDockerContainer> containers) {
+ refresh(connection);
}
}
- class DockerImagesRefresher implements IDockerImageListener {
+ class ImagesRefresher implements IDockerImageListener {
+
@Override
public void listChanged(final IDockerConnection connection,
- final List<IDockerImage> list) {
- Display.getDefault().asyncExec(new Runnable() {
-
- @Override
- public void run() {
- // following is to force Image property testers
- // to run again after list is updated. They won't do so by
- // default.
- ISelection selection = getCommonViewer().getSelection();
- if (selection != null) {
- getCommonViewer().setSelection(selection, false);
- }
- getCommonViewer().refresh(connection, true);
- }
- });
+ final List<IDockerImage> images) {
+ refresh(connection);
}
+
}
}
diff --git a/containers/org.eclipse.linuxtools.docker.ui/src/org/eclipse/linuxtools/internal/docker/ui/views/DockerImagesView.java b/containers/org.eclipse.linuxtools.docker.ui/src/org/eclipse/linuxtools/internal/docker/ui/views/DockerImagesView.java
index fe661f595a..c15e7d1a59 100644
--- a/containers/org.eclipse.linuxtools.docker.ui/src/org/eclipse/linuxtools/internal/docker/ui/views/DockerImagesView.java
+++ b/containers/org.eclipse.linuxtools.docker.ui/src/org/eclipse/linuxtools/internal/docker/ui/views/DockerImagesView.java
@@ -364,7 +364,7 @@ public class DockerImagesView extends ViewPart implements IDockerImageListener,
@Override
public void listChanged(final IDockerConnection connection,
- final List<IDockerImage> containers) {
+ final List<IDockerImage> images) {
if (connection.getName().equals(connection.getName())) {
Display.getDefault().asyncExec(new Runnable() {
@Override

Back to the top