package org.jvnet.hudson.plugins.shelveproject; import hudson.Extension; import hudson.model.AbstractProject; import hudson.model.Action; import hudson.model.Job; import hudson.model.JobProperty; import hudson.model.JobPropertyDescriptor; import hudson.model.TopLevelItem; import net.sf.json.JSONObject; import org.kohsuke.stapler.StaplerRequest; /** * Necessary so {@link ShelveProjectAction} can be added to the project, * which in turn displays a link on the project page. * * @author Ash Lux */ public class ShelveProjectProperty extends JobProperty<AbstractProject<?, ?>> { @Override public Action getJobAction( AbstractProject<?, ?> job ) { return new ShelveProjectAction( job ); } @SuppressWarnings({"UnusedDeclaration"}) @Extension public static final class DescriptorImpl extends JobPropertyDescriptor { public boolean isApplicable( Class<? extends Job> jobType ) { return TopLevelItem.class.isAssignableFrom( jobType ); } public String getDisplayName() { return null; } public ShelveProjectProperty newInstance( StaplerRequest req, JSONObject formData ) throws FormException { return new ShelveProjectProperty(); } } }