package hudson.plugins.disk_usage;
import hudson.model.AbstractProject;
import hudson.model.Action;
import hudson.model.Job;
import hudson.model.JobProperty;
import hudson.model.JobPropertyDescriptor;
import hudson.Extension;
import net.sf.json.JSONObject;
import org.kohsuke.stapler.StaplerRequest;
//(basically nothing to see here)
/**
* This Property sets DiskUsage action.
*
* @author dvrzalik
*/
public class DiskUsageProperty extends JobProperty<Job<?, ?>> {
@Override
public Action getJobAction(Job<?, ?> job) {
return new ProjectDiskUsageAction((AbstractProject) job);//??
}
@Extension
public static final class DiskUsageDescriptor extends JobPropertyDescriptor {
public DiskUsageDescriptor() {
load();
}
//Show graph on the project page?
private boolean showGraph;
@Override
public String getDisplayName() {
return "Disk usage";
}
@Override
public DiskUsageProperty newInstance(StaplerRequest req, JSONObject formData) throws FormException {
return new DiskUsageProperty();
}
@Override
public boolean configure(StaplerRequest req, JSONObject formData) throws FormException {
showGraph = req.getParameter("disk_usage.showGraph") != null;
save();
return super.configure(req, formData);
}
@Override
public boolean isApplicable(Class<? extends Job> jobType) {
return true;
}
public boolean isShowGraph() {
//The graph is shown by default
return showGraph;
}
public void setShowGraph(Boolean showGraph) {
this.showGraph = showGraph;
}
}
}