1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package org.primefaces.extensions.component.monacoeditor;
23
24 import java.util.Collection;
25 import java.util.Map;
26
27 import javax.faces.application.FacesMessage;
28 import javax.faces.context.FacesContext;
29 import javax.faces.event.BehaviorEvent;
30
31 import org.primefaces.util.MapBuilder;
32 import org.primefaces.util.MessageFactory;
33
34
35
36
37
38
39 @SuppressWarnings("java:S110")
40 public abstract class MonacoDiffEditorBase
41 extends MonacoEditorCommon<org.primefaces.extensions.model.monacoeditor.DiffEditorOptions> {
42 static final String DEFAULT_EVENT = "change";
43
44 static final Map<String, Class<? extends BehaviorEvent>> BASE_BEHAVIOR_EVENT_MAPPING = MapBuilder.<String, Class<? extends BehaviorEvent>> builder()
45 .put(DEFAULT_EVENT, null)
46 .put("initialized", null)
47 .put("blur", null)
48 .put("focus", null)
49 .put("keydown", null)
50 .put("keyup", null)
51 .put("mousedown", null)
52 .put("mousemove", null)
53 .put("mouseup", null)
54 .put("paste", null)
55 .put("originalBlur", null)
56 .put("originalChange", null)
57 .put("originalFocus", null)
58 .put("originalKeydown", null)
59 .put("originalKeyup", null)
60 .put("originalMousedown", null)
61 .put("originalMousemove", null)
62 .put("originalMouseup", null)
63 .put("originalPaste", null)
64 .build();
65
66 static final Collection<String> BASE_EVENT_NAMES = BASE_BEHAVIOR_EVENT_MAPPING.keySet();
67
68 static final boolean DEFAULT_ORIGINAL_DISABLED = true;
69 static final boolean DEFAULT_ORIGINAL_READONLY = false;
70 static final boolean DEFAULT_ORIGINAL_REQUIRED = false;
71 static final String DEFAULT_ORIGINAL_BASENAME = "";
72 static final String DEFAULT_ORIGINAL_EXTENSION = "";
73 static final String DEFAULT_ORIGINAL_DIRECTORY = "";
74 static final String DEFAULT_ORIGINAL_SCHEME = "inmemory";
75 static final String DEFAULT_ORIGINAL_LANGUAGE = null;
76
77 protected MonacoDiffEditorBase(final String rendererType) {
78 super(rendererType, org.primefaces.extensions.model.monacoeditor.DiffEditorOptions.class);
79 }
80
81 public final boolean isOriginalDisabled() {
82 return (Boolean) getStateHelper().eval(DiffEditorPropertyKeys.originalDisabled, true);
83 }
84
85 public final void setOriginalDisabled(final boolean originalEditable) {
86 getStateHelper().put(DiffEditorPropertyKeys.originalDisabled, originalEditable);
87 }
88
89 public final boolean isOriginalReadonly() {
90 return (Boolean) getStateHelper().eval(DiffEditorPropertyKeys.originalReadonly, false);
91 }
92
93 public final void setOriginalReadonly(final boolean originalReadonly) {
94 getStateHelper().put(DiffEditorPropertyKeys.originalReadonly, originalReadonly);
95 }
96
97 public final boolean isOriginalRequired() {
98 return (Boolean) getStateHelper().eval(DiffEditorPropertyKeys.originalRequired, false);
99 }
100
101 public final void setOriginalRequired(final boolean originalRequired) {
102 getStateHelper().put(DiffEditorPropertyKeys.originalRequired, originalRequired);
103 }
104
105 @Override
106 public final String getDefaultEventName() {
107 return DEFAULT_EVENT;
108 }
109
110 public String getLanguage() {
111 return (String) getStateHelper().eval(DiffEditorPropertyKeys.language, null);
112 }
113
114
115 public void setLanguage(final Object language) {
116 getStateHelper().put(DiffEditorPropertyKeys.language, language != null ? language.toString() : null);
117 }
118
119 public String getOriginalLanguage() {
120 return (String) getStateHelper().eval(DiffEditorPropertyKeys.originalLanguage, null);
121 }
122
123
124 public void setOriginalLanguage(final Object originalLanguage) {
125 getStateHelper().put(DiffEditorPropertyKeys.originalLanguage,
126 originalLanguage != null ? originalLanguage.toString() : null);
127 }
128
129 public String getOnoriginalblur() {
130 return (String) getStateHelper().eval(DiffEditorPropertyKeys.onoriginalblur, null);
131 }
132
133 public final void setOnoriginalblur(final String onoriginalblur) {
134 getStateHelper().put(DiffEditorPropertyKeys.onoriginalblur, onoriginalblur);
135 }
136
137 public String getOnoriginalchange() {
138 return (String) getStateHelper().eval(DiffEditorPropertyKeys.onoriginalchange, null);
139 }
140
141 public final void setOnoriginalchange(final String onoriginalchange) {
142 getStateHelper().put(DiffEditorPropertyKeys.onoriginalchange, onoriginalchange);
143 }
144
145 public String getOnoriginalfocus() {
146 return (String) getStateHelper().eval(DiffEditorPropertyKeys.onoriginalfocus, null);
147 }
148
149 public final void setOnoriginalfocus(final String onoriginalfocus) {
150 getStateHelper().put(DiffEditorPropertyKeys.onoriginalfocus, onoriginalfocus);
151 }
152
153 public String getOnoriginalkeyup() {
154 return (String) getStateHelper().eval(DiffEditorPropertyKeys.onoriginalkeyup, null);
155 }
156
157 public final void setOnoriginalkeyup(final String onoriginalkeyup) {
158 getStateHelper().put(DiffEditorPropertyKeys.onoriginalkeyup, onoriginalkeyup);
159 }
160
161 public String getOnoriginalkeydown() {
162 return (String) getStateHelper().eval(DiffEditorPropertyKeys.onoriginalkeydown, null);
163 }
164
165 public final void setOnoriginalkeydown(final String onoriginalkeydown) {
166 getStateHelper().put(DiffEditorPropertyKeys.onoriginalkeydown, onoriginalkeydown);
167 }
168
169 public String getOnoriginalmouseup() {
170 return (String) getStateHelper().eval(DiffEditorPropertyKeys.onoriginalmouseup, null);
171 }
172
173 public final void setOnoriginalmouseup(final String onoriginalmouseup) {
174 getStateHelper().put(DiffEditorPropertyKeys.onoriginalmouseup, onoriginalmouseup);
175 }
176
177 public String getOnoriginalmousedown() {
178 return (String) getStateHelper().eval(DiffEditorPropertyKeys.onoriginalmousedown, null);
179 }
180
181 public final void setOnoriginalmousedown(final String onoriginalmousedown) {
182 getStateHelper().put(DiffEditorPropertyKeys.onoriginalmousedown, onoriginalmousedown);
183 }
184
185 public String getOnoriginalmousemove() {
186 return (String) getStateHelper().eval(DiffEditorPropertyKeys.onoriginalmousemove, null);
187 }
188
189 public final void setOnoriginalmousemove(final String onoriginalmousemove) {
190 getStateHelper().put(DiffEditorPropertyKeys.onoriginalmousemove, onoriginalmousemove);
191 }
192
193 public String getOnoriginalpaste() {
194 return (String) getStateHelper().eval(DiffEditorPropertyKeys.onoriginalpaste, null);
195 }
196
197 public final void setOnoriginalpaste(final String onoriginalpaste) {
198 getStateHelper().put(DiffEditorPropertyKeys.onoriginalpaste, onoriginalpaste);
199 }
200
201 public final String getOriginalDirectory() {
202 return (String) getStateHelper().eval(DiffEditorPropertyKeys.originalDirectory, DEFAULT_ORIGINAL_DIRECTORY);
203 }
204
205 public final void setOriginalDirectory(final String originalDirectory) {
206 getStateHelper().put(DiffEditorPropertyKeys.originalDirectory, originalDirectory);
207 }
208
209 public final String getOriginalExtension() {
210 return (String) getStateHelper().eval(DiffEditorPropertyKeys.originalExtension, DEFAULT_ORIGINAL_EXTENSION);
211 }
212
213 public final void setOriginalExtension(final String originalExtension) {
214 getStateHelper().put(DiffEditorPropertyKeys.originalExtension, originalExtension);
215 }
216
217 public final String getOriginalBasename() {
218 return (String) getStateHelper().eval(DiffEditorPropertyKeys.originalBasename, DEFAULT_ORIGINAL_BASENAME);
219 }
220
221 public final void setOriginalBasename(final String basename) {
222 getStateHelper().put(DiffEditorPropertyKeys.originalBasename, basename);
223 }
224
225 public final String getOriginalScheme() {
226 return (String) getStateHelper().eval(DiffEditorPropertyKeys.originalScheme, DEFAULT_ORIGINAL_SCHEME);
227 }
228
229 public final void setOriginalScheme(final String originalScheme) {
230 getStateHelper().put(DiffEditorPropertyKeys.originalScheme, originalScheme);
231 }
232
233 @Override
234 protected void validateValue(final FacesContext context, final Object newValue) {
235 final org.primefaces.extensions.model.monaco.MonacoDiffEditorModel model;
236 model = (org.primefaces.extensions.model.monaco.MonacoDiffEditorModel) newValue;
237
238 if (isValid() && isRequired() && (model == null || isEmpty(model.getModifiedValue()))) {
239 final String requiredMessageStr = getRequiredMessage();
240 final FacesMessage message;
241 if (null != requiredMessageStr) {
242 message = new FacesMessage(FacesMessage.SEVERITY_ERROR, requiredMessageStr, requiredMessageStr);
243 }
244 else {
245 final Object label = org.primefaces.extensions.util.MessageFactory.getLabel(context, this);
246 message = MessageFactory.getFacesMessage(REQUIRED_MESSAGE_ID, FacesMessage.SEVERITY_ERROR,
247 label.toString());
248 }
249 context.addMessage(getClientId(context), message);
250 setValid(false);
251 }
252
253
254 if (isValid() && isOriginalRequired() && (model == null || isEmpty(model.getOriginalValue()))) {
255 final String requiredMessageStr = getRequiredMessage();
256 final FacesMessage message;
257 if (null != requiredMessageStr) {
258 message = new FacesMessage(FacesMessage.SEVERITY_ERROR, requiredMessageStr, requiredMessageStr);
259 }
260 else {
261 final Object label = org.primefaces.extensions.util.MessageFactory.getLabel(context, this);
262 message = MessageFactory.getFacesMessage(REQUIRED_MESSAGE_ID, FacesMessage.SEVERITY_ERROR,
263 label.toString());
264 }
265 context.addMessage(getClientId(context), message);
266 setValid(false);
267 }
268
269
270 super.validateValue(context, newValue);
271 }
272 }