package com.psddev.cms.rte;
import java.util.Map;
import java.util.Objects;
import com.psddev.dari.util.CompactMap;
public class RichTextToolbarAction extends RichTextToolbarButton {
public static final RichTextToolbarAction CLEAR = builder()
.action("clear")
.text("Clear")
.cssClass("rte2-toolbar-clear")
.tooltip("Clear Formatting")
.inline(true)
.build();
public static final RichTextToolbarAction ENHANCEMENT = builder()
.action("enhancement")
.text("Enhancement")
.cssClass("rte2-toolbar-enhancement")
.tooltip("Add Block Enhancement")
.build();
public static final RichTextToolbarAction MARKER = builder()
.action("marker")
.text("Marker")
.cssClass("rte2-toolbar-marker")
.tooltip("Add Marker")
.build();
public static final RichTextToolbarAction TABLE = builder()
.action("table")
.text("Table")
.cssClass("rte2-toolbar-noicon")
.tooltip("Add Table")
.build();
public static final RichTextToolbarAction TRACK_CHANGES = builder()
.action("trackChangesToggle")
.text("Track Changes")
.cssClass("rte2-toolbar-track-changes")
.tooltip("Toggle Track Changes")
.inline(true)
.build();
public static final RichTextToolbarAction TRACK_CHANGES_ACCEPT = builder()
.action("trackChangesAccept")
.text("Accept")
.cssClass("rte2-toolbar-track-changes-accept")
.tooltip("Accept Change")
.inline(true)
.build();
public static final RichTextToolbarAction TRACK_CHANGES_REJECT = builder()
.action("trackChangesReject")
.text("Reject")
.cssClass("rte2-toolbar-track-changes-reject")
.tooltip("Reject Change")
.inline(true)
.build();
public static final RichTextToolbarAction TRACK_CHANGES_PREVIEW = builder()
.action("trackChangesShowFinalToggle")
.text("Show Final")
.cssClass("rte2-toolbar-track-changes-show-final")
.tooltip("Toggle Preview")
.inline(true)
.build();
public static final RichTextToolbarAction COMMENT_REMOVE = new RichTextToolbarAction() {
@Override
public Map<String, Object> toMap() {
Map<String, Object> map = new CompactMap<>();
map.putAll(RichTextToolbarAction.builder()
.action("cleartext")
.text("Remove Comment")
.cssClass("rte2-toolbar-comment-remove")
.tooltip("Remove Comment")
.inline(true)
.build().toMap());
map.put("cleartextStyle", "comment");
return map;
}
};
public static final RichTextToolbarAction COMMENT_COLLAPSE = new RichTextToolbarAction() {
@Override
public Map<String, Object> toMap() {
Map<String, Object> map = new CompactMap<>();
map.putAll(RichTextToolbarAction.builder()
.action("collapse")
.text("Toggle comment collapse")
.cssClass("rte2-toolbar-comment-collapse")
.tooltip("Toggle comment collapse")
.inline(true)
.build().toMap());
map.put("collapseStyle", "comment");
return map;
}
};
public static final RichTextToolbarAction FULLSCREEN = builder()
.action("fullscreen")
.text("Fullscreen")
.cssClass("rte2-toolbar-fullscreen")
.tooltip("Toggle Fullscreen Editing")
.inline(true)
.build();
public static final RichTextToolbarAction MODE = builder()
.action("modeToggle")
.text("HTML")
.cssClass("rte2-toolbar-noicon")
.tooltip("Toggle HTML Mode")
.inline(true)
.build();
private String action;
public static Builder builder() {
return new Builder();
}
protected RichTextToolbarAction() {
}
public String getAction() {
return action;
}
@Override
public Map<String, Object> toMap() {
Map<String, Object> map = super.toMap();
map.put("action", getAction());
return map;
}
public static class Builder extends ButtonBuilder<Builder, RichTextToolbarAction> {
protected Builder() {
super(new RichTextToolbarAction());
}
public Builder action(String action) {
item.action = action;
return this;
}
@Override
protected void verify() {
super.verify();
Objects.requireNonNull(item.action);
}
}
}