package hudson.plugins.mercurial;
import hudson.Extension;
import hudson.model.Item;
import hudson.scm.SCM;
import hudson.views.ListViewColumn;
import hudson.views.ListViewColumnDescriptor;
import jenkins.triggers.SCMTriggerItem;
import org.kohsuke.stapler.DataBoundConstructor;
/**
* Allows adding a column in the overview that displays the revision that is
* checked out. For non-Mercurial projects the column value is simply left
* empty.
*
* @author andreas-schilling
*/
public class MercurialRevisionColumn extends ListViewColumn {
@DataBoundConstructor
public MercurialRevisionColumn() {
}
public String getMercurialRevision(final Item item) {
SCMTriggerItem s = SCMTriggerItem.SCMTriggerItems.asSCMTriggerItem(item);
if (s == null) {
return "";
}
String revision = null;
for (SCM scm : s.getSCMs()) {
if (!(scm instanceof MercurialSCM)) {
return "";
}
String _revision = ((MercurialSCM) scm).getRevision();
if (revision != null && !revision.equals(_revision)) {
return "";
}
revision = _revision;
}
return revision != null ? revision : "";
}
@Extension public static class DescriptorImpl extends ListViewColumnDescriptor {
@Override
public String getDisplayName() {
return Messages.MercurialRevisionColumn_DisplayName();
}
@Override public boolean shownByDefault() {
return false;
}
}
}