const { statusIcon } = require("./StatusIcon"); class ContainerTreeItem extends TreeItem { constructor(container) { super(label(container), TreeItemCollapsibleState.None); this.identifier = container.identifier; this.image = statusIcon(container.running); this.contextValue = container.running ? "container.running" : "container.stopped"; this.tooltip = container.tooltip; this.descriptiveText = description(container); } } function label(container) { switch (nova.config.get("apple_container.containers.label", "string")) { case "Image": return container.imageName; case "Service": return container.service || container.name; default: return container.name; } } function description(container) { let parts = []; if (nova.config.get("apple_container.containers.desc.image", "boolean")) { parts.push(container.imageName); } if (nova.config.get("apple_container.containers.desc.ports", "boolean") && container.ports.length > 0) { parts.push(container.portSummary); } if (nova.config.get("apple_container.containers.desc.address", "boolean") && container.address) { parts.push(container.address); } if (nova.config.get("apple_container.containers.desc.state", "boolean")) { parts.push(container.state); } return parts.join(" "); } module.exports = { ContainerTreeItem };