package hudson.plugins.sectioned_view;
import hudson.Extension;
import hudson.util.EnumConverter;
import net.sf.json.JSONObject;
import org.kohsuke.stapler.DataBoundConstructor;
import org.kohsuke.stapler.Stapler;
import org.kohsuke.stapler.StaplerRequest;
public class TextSection extends SectionedViewSection {
private String text;
private Style style;
/**
* @deprecated since 1.8 use {@link #TextSection(String, Width, Positioning, String, Style)} instead
*/
@Deprecated
public TextSection(String name, Width width, Positioning alignment, String text) {
this(name, width, alignment, text, Style.NONE);
}
@DataBoundConstructor
public TextSection(String name, Width width, Positioning alignment, String text, Style style) {
super(name, width, alignment);
this.text = text;
this.style = style;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
public Style getStyle() {
return style;
}
public boolean hasStyle() {
return style != Style.NONE;
}
@Extension
public static final class DescriptorImpl extends SectionedViewSectionDescriptor {
@Override
public SectionedViewSection newInstance(StaplerRequest req, JSONObject formData) throws FormException {
return (SectionedViewSection)req.bindJSON(getClass().getDeclaringClass(), formData);
}
@Override
public String getDisplayName() {
return "Text Section";
}
}
/**
* Constants that control how a Text Section is styled.
*/
public enum Style {
NONE("None", ""),
NOTE("Note", "sectioned-view-note"),
INFO("Info", "sectioned-view-info"),
WARN("Warning", "sectioned-view-warning"),
TIP("Tip", "sectioned-view-tip");
private final String description;
private final String cssClass;
public String getDescription() {
return description;
}
public String getCssClass() {
return cssClass;
}
public String getName() {
return name();
}
Style(String description, String cssClass) {
this.description = description;
this.cssClass = cssClass;
}
static {
Stapler.CONVERT_UTILS.register(new EnumConverter(), Style.class);
}
}
}