diff options
Diffstat (limited to 'containers/org.eclipse.linuxtools.docker.ui/src/org/eclipse/linuxtools/internal/docker/ui/views/DockerExplorerLabelProvider.java')
-rw-r--r-- | containers/org.eclipse.linuxtools.docker.ui/src/org/eclipse/linuxtools/internal/docker/ui/views/DockerExplorerLabelProvider.java | 96 |
1 files changed, 84 insertions, 12 deletions
diff --git a/containers/org.eclipse.linuxtools.docker.ui/src/org/eclipse/linuxtools/internal/docker/ui/views/DockerExplorerLabelProvider.java b/containers/org.eclipse.linuxtools.docker.ui/src/org/eclipse/linuxtools/internal/docker/ui/views/DockerExplorerLabelProvider.java index c1649f1210..42f88aeac5 100644 --- a/containers/org.eclipse.linuxtools.docker.ui/src/org/eclipse/linuxtools/internal/docker/ui/views/DockerExplorerLabelProvider.java +++ b/containers/org.eclipse.linuxtools.docker.ui/src/org/eclipse/linuxtools/internal/docker/ui/views/DockerExplorerLabelProvider.java @@ -26,7 +26,13 @@ import org.eclipse.linuxtools.docker.core.EnumDockerStatus; import org.eclipse.linuxtools.docker.core.IDockerConnection; import org.eclipse.linuxtools.docker.core.IDockerContainer; import org.eclipse.linuxtools.docker.core.IDockerImage; +import org.eclipse.linuxtools.docker.core.IDockerPortMapping; import org.eclipse.linuxtools.internal.docker.ui.SWTImagesFactory; +import org.eclipse.linuxtools.internal.docker.ui.views.DockerExplorerContentProvider.DockerContainerLink; +import org.eclipse.linuxtools.internal.docker.ui.views.DockerExplorerContentProvider.DockerContainerLinksCategory; +import org.eclipse.linuxtools.internal.docker.ui.views.DockerExplorerContentProvider.DockerContainerPortMappingsCategory; +import org.eclipse.linuxtools.internal.docker.ui.views.DockerExplorerContentProvider.DockerContainerVolume; +import org.eclipse.linuxtools.internal.docker.ui.views.DockerExplorerContentProvider.DockerContainerVolumesCategory; import org.eclipse.linuxtools.internal.docker.ui.views.DockerExplorerContentProvider.DockerContainersCategory; import org.eclipse.linuxtools.internal.docker.ui.views.DockerExplorerContentProvider.DockerImagesCategory; import org.eclipse.linuxtools.internal.docker.ui.views.DockerExplorerContentProvider.LoadingStub; @@ -78,6 +84,15 @@ public class DockerExplorerLabelProvider implements IStyledLabelProvider, ILabel } else { return SWTImagesFactory.DESC_CONTAINER_STOPPED.createImage(); } + } else if (element instanceof DockerContainerLinksCategory + || element instanceof DockerContainerLink) { + return SWTImagesFactory.DESC_CONTAINER_LINK.createImage(); + } else if (element instanceof DockerContainerVolumesCategory + || element instanceof DockerContainerVolume) { + return SWTImagesFactory.DESC_CONTAINER_VOLUME.createImage(); + } else if (element instanceof DockerContainerPortMappingsCategory + || element instanceof IDockerPortMapping) { + return SWTImagesFactory.DESC_CONTAINER_PORT.createImage(); } else if(element instanceof LoadingStub) { return SWTImagesFactory.DESC_SYSTEM_PROCESS.createImage(); } @@ -135,7 +150,7 @@ public class DockerExplorerLabelProvider implements IStyledLabelProvider, ILabel if (!dockerImage.tags().isEmpty()) { final List<String> tags = new ArrayList<>(dockerImage.tags()); Collections.sort(tags); - messageBuilder.append(":"); + messageBuilder.append(": "); for (Iterator<String> tagIterator = tags.iterator(); tagIterator .hasNext();) { messageBuilder.append(tagIterator.next()); @@ -143,18 +158,75 @@ public class DockerExplorerLabelProvider implements IStyledLabelProvider, ILabel messageBuilder.append(", "); } } - final int startImageId = messageBuilder.length(); - messageBuilder.append(" (").append(imageShortId).append(')'); - final String message = messageBuilder.toString(); - final StyledString styledString = new StyledString(message); - // styled tags - styledString.setStyle(startTags, startImageId - startTags, StyledString.COUNTER_STYLER); - // styled image id - styledString.setStyle(startImageId, message.length() - startImageId, StyledString.QUALIFIER_STYLER); - return styledString; } - } else if (element instanceof LoadingStub) { - return new StyledString(DVMessages.getString("Loading.label")); //$NON-NLS-1$ + final int startImageId = messageBuilder.length(); + messageBuilder.append(" (").append(imageShortId).append(')'); + final String message = messageBuilder.toString(); + final StyledString styledString = new StyledString(message); + // styled tags + styledString.setStyle(startTags, startImageId - startTags, + StyledString.COUNTER_STYLER); + // styled image id + styledString.setStyle(startImageId, message.length() - startImageId, + StyledString.QUALIFIER_STYLER); + return styledString; + } else if (element instanceof DockerContainerPortMappingsCategory) { + return new StyledString(DVMessages + .getString("DockerContainerPortMappingsCategory.label")); //$NON-NLS-1$ + } else if (element instanceof IDockerPortMapping) { + final IDockerPortMapping mapping = (IDockerPortMapping) element; + final String hostMapping = mapping.getIp() + ":" + + mapping.getPublicPort() + " -> "; + final String containerMapping = Integer + .toString(mapping.getPrivatePort()); + final String mappingType = " (" + mapping.getType() + ")"; + final StyledString styledString = new StyledString( + hostMapping + containerMapping + mappingType); + styledString.setStyle( + hostMapping.length() + containerMapping.length(), + mappingType.length(), StyledString.QUALIFIER_STYLER); + return styledString; + } else if (element instanceof DockerContainerVolumesCategory) { + return new StyledString(DVMessages + .getString("DockerContainerVolumesCategory.label")); //$NON-NLS-1$ + } else if (element instanceof DockerContainerVolume) { + final DockerContainerVolume containerVolume = (DockerContainerVolume) element; + final String hostPath = containerVolume.getHostPath(); + final StyledString styledString = new StyledString(); + if (containerVolume.getHostPath() != null + && containerVolume.getContainerPath() != null) { + styledString.append(hostPath).append(" -> ") + .append(containerVolume.getContainerPath()); + } else if (containerVolume.getHostPath() == null + && containerVolume.getContainerPath() != null) { + styledString.append(containerVolume.getContainerPath()); + } + if (containerVolume.getFlags() != null) { + final int offset = styledString.length(); + styledString.append(" (" + containerVolume.getFlags() + ")"); + styledString.setStyle(offset, styledString.length() - offset, + StyledString.QUALIFIER_STYLER); + } + return styledString; + } else if (element instanceof DockerContainerLinksCategory) { + return new StyledString( + DVMessages.getString("DockerContainerLinksCategory.label")); //$NON-NLS-1$ + } else if (element instanceof DockerContainerLink) { + final DockerContainerLink containerLink = (DockerContainerLink) element; + final String containerName = containerLink.getContainerName(); + final String containerAlias = " (" + + containerLink.getContainerAlias() + ")"; + final StyledString styledString = new StyledString( + containerName + containerAlias); + styledString.setStyle(containerName.length(), + containerAlias.length(), StyledString.QUALIFIER_STYLER); + return styledString; + } else if (element instanceof String) { + return new StyledString((String) element); + } + + else if (element instanceof LoadingStub) { + return new StyledString(DVMessages.getString("Loading.label")); } return null; } |