package hudson.plugins.promoted_builds; import org.kohsuke.stapler.DataBoundConstructor; import hudson.Extension; import hudson.model.Item; import hudson.model.Job; import hudson.model.ListView; import hudson.model.Run; import hudson.views.ListViewColumn; import hudson.views.ListViewColumnDescriptor; import java.util.ArrayList; import java.util.List; /** * Provides a last build promotion summary column for {@link ListView}s. * @since 2.22 */ public class LastBuildPromotionStatusColumn extends ListViewColumn { @DataBoundConstructor public LastBuildPromotionStatusColumn() { super(); } public List<String> getPromotionIcons(final Item item) { List<String> icons = new ArrayList<String>(); if (item instanceof Job<?, ?>) { final Job<?, ?> job = (Job<?, ?>) item; final Run<?, ?> b = job.getLastBuild(); PromotedBuildAction a = b != null ? b.getAction(PromotedBuildAction.class) : null; if (a != null) { for (Status s : a.getPromotions()) { PromotionProcess process = s.getProcess(); if (process !=null && process.isVisible()){ icons.add(s.getIcon("16x16")); } } } } return icons; } @Extension public static class DescriptorImpl extends ListViewColumnDescriptor { public DescriptorImpl() { } @Override public String getDisplayName() { return Messages.LastBuildPromotionStatusColumn_DisplayName(); } @Override public boolean shownByDefault() { return false; } } }