1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package info.magnolia.ui.vaadin.ckeditor;
35
36 import java.util.ArrayList;
37 import java.util.Collections;
38 import java.util.HashMap;
39 import java.util.List;
40 import java.util.Map;
41
42 import org.vaadin.alump.ckeditor.CKEditorConfig;
43
44 import com.google.gson.Gson;
45
46
47
48
49
50 public class MagnoliaCKEditorConfig extends CKEditorConfig {
51
52 private List<String> events = new ArrayList<>();
53
54 private Map<String, String> externalPlugins = new HashMap<>();
55
56
57
58
59
60 public void addToolbarLine(List<ToolbarGroup> toolbars) {
61 Gson gson = new Gson();
62 String json = gson.toJson(toolbars);
63 addCustomToolbarLine(json.substring(1, json.length() - 1));
64 }
65
66
67
68
69
70
71
72 public void addListenedEvent(String eventName) {
73 events.add(eventName);
74 }
75
76 public String[] getListenedEvents() {
77 return events.toArray(new String[0]);
78 }
79
80 public void addExternalPlugin(String pluginName, String source) {
81 externalPlugins.put(pluginName, source);
82 }
83
84 public Map<String, String> getExternalPlugins() {
85 return externalPlugins;
86 }
87
88 @Override
89 public void addExtraConfig(String extraConfigName, String extraConfigValue) {
90 super.addExtraConfig(extraConfigName, extraConfigValue);
91 }
92
93 @Override
94 public synchronized void addToRemovePlugins(String pluginName) {
95 super.addToRemovePlugins(pluginName);
96 }
97
98 @Override
99 public synchronized void addToExtraPlugins(String pluginName) {
100 super.addToExtraPlugins(pluginName);
101 }
102
103 @Override
104 public void setBaseFloatZIndex(int zIndex) {
105 super.setBaseFloatZIndex(zIndex);
106 }
107
108 @Override
109 public void setResizeEnabled(boolean enabled) {
110 super.setResizeEnabled(enabled);
111 }
112
113
114
115
116 public static class ToolbarGroup {
117
118 private String name;
119
120 private List<String> items = new ArrayList<>();
121
122 public ToolbarGroup(String groupname, String... toolbarbuttons) {
123 this.name = groupname;
124 Collections.addAll(items, toolbarbuttons);
125 }
126
127 public String getName() {
128 return name;
129 }
130
131 public void addItem(String item) {
132 items.add(item);
133 }
134 }
135
136 public static List<ToolbarGroup> defaultToolbar() {
137 List<ToolbarGroup> toolbars = new ArrayList<>();
138 toolbars.add(new ToolbarGroup("basicstyles", "Bold", "Italic", "Underline", "SpecialChar"));
139 toolbars.add(new ToolbarGroup("paragraph", "NumberedList", "BulletedList", "JustifyLeft", "JustifyCenter", "JustifyRight", "JustifyBlock", "Image", "Table"));
140 toolbars.add(new ToolbarGroup("links", "Link", "InternalLink", "DamLink", "Unlink"));
141 toolbars.add(new ToolbarGroup("styles", "Font", "FontSize", "TextColor"));
142 toolbars.add(new ToolbarGroup("clipboard", "Cut", "Copy", "Paste", "PasteText", "PasteFromWord"));
143 toolbars.add(new ToolbarGroup("undo", "Undo", "Redo"));
144 toolbars.add(new ToolbarGroup("tools", "Source"));
145 return toolbars;
146 }
147 }