package com.psddev.cms.rte;
import java.util.Collections;
import java.util.HashSet;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
public class RichTextToolbarStyle extends RichTextToolbarButton {
public static final RichTextToolbarStyle BOLD = builder()
.style("bold")
.text("B")
.cssClass("rte2-toolbar-bold")
.tooltip("Bold")
.inline(true)
.build();
public static final RichTextToolbarStyle ITALIC = builder()
.style("italic")
.text("I")
.cssClass("rte2-toolbar-italic")
.tooltip("Italic")
.inline(true)
.build();
public static final RichTextToolbarStyle UNDERLINE = builder()
.style("underline")
.text("U")
.cssClass("rte2-toolbar-underline")
.tooltip("Underline")
.inline(true)
.build();
public static final RichTextToolbarStyle STRIKETHROUGH = builder()
.style("strikethrough")
.text("S")
.cssClass("rte2-toolbar-strikethrough")
.tooltip("Strikethrough")
.inline(true)
.build();
public static final RichTextToolbarStyle SUPERSCRIPT = builder()
.style("superscript")
.text("Super")
.cssClass("rte2-toolbar-superscript")
.tooltip("Superscript")
.inline(true)
.build();
public static final RichTextToolbarStyle SUBSCRIPT = builder()
.style("subscript")
.text("Sub")
.cssClass("rte2-toolbar-subscript")
.tooltip("Subscript")
.inline(true)
.build();
public static final RichTextToolbarStyle LINK = builder()
.style("link")
.text("Link")
.cssClass("rte2-toolbar-link")
.tooltip("Link")
.inline(true)
.build();
public static final RichTextToolbarStyle HTML = builder()
.style("html")
.text("HTML")
.cssClass("rte2-toolbar-html")
.tooltip("Raw HTML")
.inline(true)
.build();
public static final RichTextToolbarStyle UL = builder()
.style("ul")
.text("•")
.cssClass("rte2-toolbar-ul")
.tooltip("Bulleted List")
.build();
public static final RichTextToolbarStyle OL = builder()
.style("ol")
.text("1.")
.cssClass("rte2-toolbar-ol")
.tooltip("Numbered List")
.build();
public static final RichTextToolbarStyle ALIGN_LEFT = builder()
.style("alignLeft")
.activeIfUnset("alignCenter", "alignRight", "ol", "ul")
.text("Left")
.cssClass("rte2-toolbar-align-left")
.tooltip("Left Align Text")
.build();
public static final RichTextToolbarStyle ALIGN_CENTER = builder()
.style("alignCenter")
.text("Center")
.cssClass("rte2-toolbar-align-center")
.tooltip("Center Align Text")
.build();
public static final RichTextToolbarStyle ALIGN_RIGHT = builder()
.style("alignRight")
.text("Right")
.cssClass("rte2-toolbar-align-right")
.tooltip("Right Align Text")
.build();
public static final RichTextToolbarStyle COMMENT = builder()
.style("comment")
.text("Add Comment")
.cssClass("rte2-toolbar-comment")
.tooltip("Add Comment")
.inline(true)
.build();
private String style;
private Set<String> activeIfUnset;
public static Builder builder() {
return new Builder();
}
protected RichTextToolbarStyle() {
}
public String getStyle() {
return style;
}
public Set<String> getActiveIfUnset() {
return activeIfUnset;
}
@Override
public Map<String, Object> toMap() {
Map<String, Object> map = super.toMap();
map.put("style", getStyle());
map.put("activeIfUnset", getActiveIfUnset());
return map;
}
public static class Builder extends ButtonBuilder<Builder, RichTextToolbarStyle> {
protected Builder() {
super(new RichTextToolbarStyle());
}
public Builder style(String style) {
item.style = style;
return this;
}
public Builder activeIfUnset(String... styles) {
if (styles != null) {
Set<String> set = new HashSet<>();
Collections.addAll(set, styles);
item.activeIfUnset = set;
}
return this;
}
@Override
protected void verify() {
super.verify();
Objects.requireNonNull(item.style);
}
}
}