1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.myfaces.custom.inputHtml;
20
21 import java.io.IOException;
22 import java.util.List;
23 import java.util.Map;
24
25 import javax.faces.component.UIComponent;
26 import javax.faces.component.UIForm;
27 import javax.faces.component.UINamingContainer;
28 import javax.faces.context.FacesContext;
29 import javax.faces.context.ResponseWriter;
30 import javax.faces.convert.ConverterException;
31 import javax.faces.FacesException;
32
33 import org.apache.commons.logging.Log;
34 import org.apache.commons.logging.LogFactory;
35 import org.apache.myfaces.component.UserRoleUtils;
36 import org.apache.myfaces.renderkit.html.util.AddResource;
37 import org.apache.myfaces.custom.tabbedpane.HtmlPanelTab;
38 import org.apache.myfaces.custom.tabbedpane.HtmlPanelTabbedPane;
39 import org.apache.myfaces.shared_tomahawk.renderkit.JSFAttr;
40 import org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils;
41 import org.apache.myfaces.shared_tomahawk.renderkit.html.HTML;
42 import org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlRenderer;
43 import org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlRendererUtils;
44 import org.apache.myfaces.renderkit.html.util.AddResourceFactory;
45 import org.apache.myfaces.shared_tomahawk.renderkit.html.util.HTMLEncoder;
46 import org.apache.myfaces.shared_tomahawk.renderkit.html.util.JavascriptUtils;
47 import org.apache.myfaces.shared_tomahawk.renderkit.html.util.FormInfo;
48
49
50
51
52
53
54
55
56
57
58 public class InputHtmlRenderer extends HtmlRenderer {
59
60
61
62
63
64
65
66
67 private static final Log log = LogFactory.getLog(HtmlRendererUtils.class);
68
69 private static String ROWSPAN_ATTR = "rowspan";
70
71 private static String I18N_TRANSLATE_ATTR = "i18n:translate";
72 private static String I18N_ATTRIBUTES_ATTR = "i18n:attributes";
73
74 protected boolean isDisabled(FacesContext facesContext, UIComponent uiComponent) {
75 if( !UserRoleUtils.isEnabledOnUserRole(uiComponent) )
76 return false;
77
78 return ((InputHtml)uiComponent).isDisabled();
79 }
80
81 private static boolean useFallback(InputHtml editor){
82
83 return editor.getFallback().equals("true");
84 }
85
86 public void encodeEnd(FacesContext context, UIComponent uiComponent) throws IOException {
87 RendererUtils.checkParamValidity(context, uiComponent, InputHtml.class);
88 InputHtml editor = (InputHtml) uiComponent;
89 if( HtmlRendererUtils.isDisplayValueOnly(editor) )
90 encodeDisplayValueOnly(context, editor);
91 else if( useFallback(editor) )
92 encodeEndFallBackMode(context, editor);
93 else{
94
95
96
97
98
99 if( ! isVisible(editor) ){
100 encodeHidden(context, editor);
101 }else if( ! hasThisPageAlreadyRenderedAnInputHtml( context ) ){
102 encodeEndNormalMode(context, editor);
103 setThisPageAlreadyRenderedAnInputHtml( context );
104 }else{
105 log.warn("Only one inputHtml can be displayed at the same time. The component will be rendered isung a textarea." +
106 "\nConpoment : "+RendererUtils.getPathToComponent( editor ));
107 encodeEndFallBackMode(context, editor);
108 }
109 }
110 }
111
112 static private boolean hasThisPageAlreadyRenderedAnInputHtml(FacesContext context){
113 return context.getExternalContext().getRequestMap().containsKey( InputHtmlRenderer.class.getName() );
114 }
115
116 static private void setThisPageAlreadyRenderedAnInputHtml(FacesContext context){
117 context.getExternalContext().getRequestMap().put(InputHtmlRenderer.class.getName(), Boolean.TRUE);
118 }
119
120
121
122
123 private boolean isVisible(InputHtml editor){
124 for(UIComponent parent = editor.getParent(); parent != null ; parent = parent.getParent()){
125 if( parent instanceof HtmlPanelTab ){
126 HtmlPanelTab panelTab = (HtmlPanelTab) parent;
127 HtmlPanelTabbedPane panelTabbedPane = null;
128 for(UIComponent panelAncestor=panelTab.getParent(); panelAncestor!=null ; panelAncestor=panelAncestor.getParent()){
129 if( panelAncestor instanceof HtmlPanelTabbedPane ){
130 panelTabbedPane = (HtmlPanelTabbedPane)panelAncestor;
131 break;
132 }
133 }
134
135 if( panelTabbedPane != null ){
136 if( panelTabbedPane.isClientSide() ){
137 parent = panelTabbedPane;
138 continue;
139 }
140
141
142
143 int selectedIndex = panelTabbedPane.getSelectedIndex();
144 List children = panelTabbedPane.getChildren();
145 int tabIdx = 0;
146 for (int i = 0, len = children.size(); i < len && tabIdx <= selectedIndex ; i++){
147 UIComponent child = htmlTabbedPaneRenderer_getUIComponent((UIComponent)children.get(i));
148 if (child instanceof HtmlPanelTab){
149 if( child == panelTab ){
150 if( ! child.isRendered() || tabIdx != selectedIndex){
151 return false;
152 }else{
153
154 parent = panelTabbedPane;
155 continue;
156 }
157 }
158 tabIdx++;
159 }
160 }
161 }else{
162 log.debug("pannelTabbedPane == null for component "+RendererUtils.getPathToComponent(panelTab));
163 }
164 }
165 }
166
167 return true;
168 }
169
170
171
172
173 private UIComponent htmlTabbedPaneRenderer_getUIComponent(UIComponent uiComponent)
174 {
175
176 if (uiComponent instanceof UIForm || uiComponent instanceof UINamingContainer)
177 {
178 List children = uiComponent.getChildren();
179 for (int i = 0, len = children.size(); i < len; i++)
180 {
181 uiComponent = htmlTabbedPaneRenderer_getUIComponent((UIComponent)children.get(i));
182 }
183 }
184 return uiComponent;
185 }
186
187 private void encodeHidden(FacesContext context, InputHtml editor) throws IOException {
188 String clientId = editor.getClientId(context);
189
190 ResponseWriter writer = context.getResponseWriter();
191 writer.startElement(HTML.TEXTAREA_ELEM, editor);
192
193 writer.writeAttribute(HTML.NAME_ATTR, clientId, null);
194 writer.writeAttribute(HTML.STYLE_ATTR, "display:none", null);
195
196 String text = RendererUtils.getStringValue(context, editor);
197 writer.writeText(text, JSFAttr.VALUE_ATTR);
198
199 writer.endElement(HTML.TEXTAREA_ELEM);
200 }
201
202 private void encodeDisplayValueOnly(FacesContext context, InputHtml editor) throws IOException {
203
204 ResponseWriter writer = context.getResponseWriter();
205 writer.startElement(HTML.SPAN_ELEM, editor);
206 HtmlRendererUtils.writeIdIfNecessary(writer, editor, context);
207
208 HtmlRendererUtils.renderDisplayValueOnlyAttributes(editor, writer);
209
210 String text = RendererUtils.getStringValue(context, editor);
211 writer.write( editor.getHtmlBody( text ) );
212
213 writer.endElement(HTML.SPAN_ELEM);
214 }
215
216 private void encodeEndFallBackMode(FacesContext context, InputHtml editor) throws IOException {
217 String clientId = editor.getClientId(context);
218
219 ResponseWriter writer = context.getResponseWriter();
220 writer.startElement(HTML.TEXTAREA_ELEM, editor);
221
222 writer.writeAttribute(HTML.NAME_ATTR, clientId, null);
223 HtmlRendererUtils.writeIdIfNecessary(writer, editor, context);
224
225 if( editor.getStyle()!=null )
226 writer.writeAttribute(HTML.STYLE_ATTR, editor.getStyle(), null);
227 if( editor.getStyleClass()!=null )
228 writer.writeAttribute(HTML.CLASS_ATTR, editor.getStyleClass(), null);
229
230 if (isDisabled(context, editor))
231 writer.writeAttribute(HTML.DISABLED_ATTR, Boolean.TRUE, null);
232
233 String text = RendererUtils.getStringValue(context, editor);
234 writer.write( htmlToPlainText(text, editor) );
235
236 writer.endElement(HTML.TEXTAREA_ELEM);
237 }
238
239 private static String htmlToPlainText(String html, InputHtml editor){
240 return editor.getHtmlBody( html )
241 .replaceAll("<br.*>","\n")
242 .replaceAll("<.+?>", "");
243 }
244
245 private void encodeEndNormalMode(FacesContext context, InputHtml editor) throws IOException {
246 String clientId = editor.getClientId(context);
247 FormInfo parentFormInfo = RendererUtils.findNestingForm(editor, context);
248 if(parentFormInfo == null)
249 throw new FacesException("InputHtml must be embedded in a form.");
250 String formId = parentFormInfo.getFormName();
251
252 AddResource addResource = AddResourceFactory.getInstance(context);
253 addResource.addStyleSheet(context, AddResource.HEADER_BEGIN, InputHtmlRenderer.class, "kupustyles.css");
254 addResource.addStyleSheet(context, AddResource.HEADER_BEGIN, InputHtmlRenderer.class, "kupudrawerstyles.css");
255 addResource.addStyleSheet(context, AddResource.HEADER_BEGIN, InputHtmlRenderer.class, "myFaces.css");
256
257 addResource.addJavaScriptAtPosition(context, AddResource.HEADER_BEGIN, InputHtmlRenderer.class, "sarissa.js");
258 addResource.addJavaScriptAtPosition(context, AddResource.HEADER_BEGIN, InputHtmlRenderer.class, "sarissa_ieemu_xpath.js");
259 addResource.addJavaScriptAtPosition(context, AddResource.HEADER_BEGIN, InputHtmlRenderer.class, "kupuhelpers.js");
260 addResource.addJavaScriptAtPosition(context, AddResource.HEADER_BEGIN, InputHtmlRenderer.class, "kupueditor.js");
261 addResource.addJavaScriptAtPosition(context, AddResource.HEADER_BEGIN, InputHtmlRenderer.class, "kupubasetools.js");
262 addResource.addJavaScriptAtPosition(context, AddResource.HEADER_BEGIN, InputHtmlRenderer.class, "kupuloggers.js");
263 addResource.addJavaScriptAtPosition(context, AddResource.HEADER_BEGIN, InputHtmlRenderer.class, "kupunoi18n.js");
264
265 addResource.addJavaScriptAtPosition(context, AddResource.HEADER_BEGIN, InputHtmlRenderer.class, "kupucleanupexpressions.js");
266 addResource.addJavaScriptAtPosition(context, AddResource.HEADER_BEGIN, InputHtmlRenderer.class, "kupucontentfilters.js");
267
268 if (editor.isShowAnyToolBox())
269 {
270 addResource.addJavaScriptAtPosition(context, AddResource.HEADER_BEGIN, InputHtmlRenderer.class, "kuputoolcollapser.js");
271 }
272 addResource.addJavaScriptAtPosition(context, AddResource.HEADER_BEGIN, InputHtmlRenderer.class, "kupucontextmenu.js");
273
274 addResource.addJavaScriptAtPosition(context, AddResource.HEADER_BEGIN, InputHtmlRenderer.class, "kupuinit.js");
275 addResource.addJavaScriptAtPosition(context, AddResource.HEADER_BEGIN, InputHtmlRenderer.class, "kupustart.js");
276
277 addResource.addJavaScriptAtPosition(context, AddResource.HEADER_BEGIN, InputHtmlRenderer.class, "kupusourceedit.js");
278 addResource.addJavaScriptAtPosition(context, AddResource.HEADER_BEGIN, InputHtmlRenderer.class, "kupuspellchecker.js");
279 addResource.addJavaScriptAtPosition(context, AddResource.HEADER_BEGIN, InputHtmlRenderer.class, "kupudrawers.js");
280
281 addResource.addJavaScriptAtPosition(context, AddResource.HEADER_BEGIN, InputHtmlRenderer.class, "kupuundo.js");
282 addResource.addJavaScriptAtPosition(context, AddResource.HEADER_BEGIN, InputHtmlRenderer.class, "diff_match_patch.js");
283
284 addResource.addJavaScriptAtPosition(context, AddResource.HEADER_BEGIN, InputHtmlRenderer.class, "myFacesUtils.js");
285
286 ResponseWriter writer = context.getResponseWriter();
287
288 writer.startElement(HTML.DIV_ELEM,editor);
289 writer.writeAttribute(HTML.STYLE_ATTR, "display: none;",null);
290
291 writer.startElement("xml", editor);
292 writer.writeAttribute("id", "kupuconfig", null);
293 writer.writeAttribute(HTML.CLASS_ATTR, "kupuconfig", null);
294
295 writer.startElement("kupuconfig", editor);
296
297 writeTag(writer, "dst", "fulldoc.html", editor);
298 writeTag(writer, "use_css", "1", editor);
299 writeTag(writer, "reload_after_save", "0", editor);
300 writeTag(writer, "strict_output", "1", editor);
301 writeTag(writer, "content_type", "application/xhtml+xml", editor);
302 writeTag(writer, "compatible_singletons", "1", editor);
303
304 writer.startElement("table_classes", editor);
305 writeTag(writer, "class", "plain", editor);
306 writeTag(writer, "class", "listing", editor);
307 writeTag(writer, "class", "grid", editor);
308 writeTag(writer, "class", "data", editor);
309 writer.endElement("table_classes");
310
311 writer.startElement("cleanup_expressions",editor);
312 writer.startElement("set",editor);
313 writer.startElement("name",editor);
314 writer.write("Convert single quotes to curly ones");
315 writer.endElement("name");
316 writer.startElement("expression",editor);
317 writer.startElement("reg",editor);
318 writer.write("(\\W)'");
319 writer.endElement("reg");
320 writer.startElement("replacement",editor);
321 writer.write("\\1舖");
322 writer.endElement("replacement");
323 writer.endElement("expression");
324 writer.startElement("expression",editor);
325 writer.startElement("reg",editor);
326 writer.write("'");
327 writer.endElement("reg");
328 writer.startElement("replacement",editor);
329 writer.write("舗");
330 writer.endElement("replacement");
331 writer.endElement("expression");
332 writer.endElement("set");
333 writer.startElement("set",editor);
334 writer.startElement("name",editor);
335 writer.write("Reduce whitespace");
336 writer.endElement("name");
337 writer.startElement("expression",editor);
338 writer.startElement("reg",editor);
339 writer.write("[\\n\\r\\t]");
340 writer.endElement("reg");
341 writer.startElement("replacement",editor);
342 writer.write("\\x20");
343 writer.endElement("replacement");
344 writer.endElement("expression");
345 writer.startElement("expression",editor);
346 writer.startElement("reg",editor);
347 writer.write("[ ]{2}");
348 writer.endElement("reg");
349 writer.startElement("replacement",editor);
350 writer.write("\\x20");
351 writer.endElement("replacement");
352 writer.endElement("expression");
353 writer.endElement("set");
354 writer.endElement("cleanup_expressions");
355
356 writeTag(writer, "image_xsl_uri", addResource.getResourceUri(context, InputHtmlRenderer.class, "kupudrawers/drawer.xsl"), editor);
357 writeTag(writer, "link_xsl_uri", addResource.getResourceUri(context, InputHtmlRenderer.class, "kupudrawers/drawer.xsl"), editor);
358
359
360 writeTag(writer, "image_libraries_uri", addResource.getResourceUri(context, InputHtmlRenderer.class, "kupudrawers/imagelibrary.xml"), editor);
361 writeTag(writer, "link_libraries_uri", addResource.getResourceUri(context, InputHtmlRenderer.class, "kupudrawers/linklibrary.xml"), editor);
362 writeTag(writer, "search_images_uri", "", editor);
363 writeTag(writer, "search_links_uri", "", editor);
364
365 writer.endElement("kupuconfig");
366 writer.endElement("xml");
367 writer.endElement(HTML.DIV_ELEM);
368
369
370 writer.startElement(HTML.DIV_ELEM,editor);
371 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-fulleditor", null);
372 writer.writeAttribute("xmlns:i18n", "http://xml.zope.org/namespaces/i18n", null);
373 writer.writeAttribute("i18n:domain","kupu",null);
374
375
376
377
378 writer.startElement(HTML.DIV_ELEM,editor);
379 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-tb",null);
380 writer.writeAttribute(HTML.ID_ATTR, "toolbar",null);
381
382 writer.startElement(HTML.SPAN_ELEM,editor);
383 writer.writeAttribute(HTML.ID_ATTR, "kupu-tb-buttons",null);
384 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-tb-buttons",null);
385
386 writer.startElement(HTML.SPAN_ELEM,editor);
387 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-tb-buttongroup",null);
388 writer.writeAttribute(HTML.STYLE_ATTR, "float: right", null);
389 writer.writeAttribute(HTML.ID_ATTR, "kupu-logo",null);
390 if( editor.isAddKupuLogo() ){
391 writer.startElement(HTML.BUTTON_ELEM,editor);
392 writer.writeAttribute(HTML.TYPE_ATTR, "button",null);
393 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-logo",null);
394 writer.writeAttribute(HTML.TITLE_ATTR, "Kupu 1.4.16",null);
395 writer.writeAttribute(I18N_ATTRIBUTES_ATTR,"title title_logo;",null);
396 writer.writeAttribute(HTML.ACCESSKEY_ATTR, "k",null);
397 writer.writeAttribute(HTML.ONCLICK_ATTR, "window.open('http://kupu.oscom.org');",null);
398 writer.write(" ");
399 writer.endElement(HTML.BUTTON_ELEM);
400 }
401 writer.endElement(HTML.SPAN_ELEM);
402
403 writer.startElement(HTML.SPAN_ELEM,editor);
404 writer.writeAttribute(HTML.CLASS_ATTR,"kupu-tb-buttongroup",null);
405 writer.writeAttribute(HTML.STYLE_ATTR,"float: right",null);
406 writer.writeAttribute(HTML.ID_ATTR,"kupu-zoom",null);
407 writer.startElement(HTML.BUTTON_ELEM,null);
408 writer.writeAttribute(HTML.TYPE_ATTR, "button",null);
409 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-zoom",null);
410 writer.writeAttribute(HTML.ID_ATTR, "kupu-zoom-button",null);
411 writer.writeAttribute(I18N_ATTRIBUTES_ATTR,"title title_zoom;",null);
412 writer.writeAttribute(HTML.TITLE_ATTR,"Zoom: Access key (Alt or Ctrl) + X",null);
413 writer.writeAttribute(HTML.ACCESSKEY_ATTR, "x",null);
414 writer.write(" ");
415 writer.endElement(HTML.BUTTON_ELEM);
416 writer.endElement(HTML.SPAN_ELEM);
417
418 writer.startElement(HTML.SELECT_ELEM,editor);
419 writer.writeAttribute(HTML.ID_ATTR, "kupu-tb-styles",null);
420 writer.startElement(HTML.OPTION_ELEM,editor);
421 writer.writeAttribute(HTML.VALUE_ATTR, "P",null);
422 writer.writeAttribute(I18N_TRANSLATE_ATTR,"Normal",null);
423 writer.write("Normal paragraph");
424 writer.endElement(HTML.OPTION_ELEM);
425
426 writer.startElement(HTML.OPTION_ELEM,editor);
427 writer.writeAttribute(HTML.VALUE_ATTR, "H1",null);
428 writer.startElement(HTML.SPAN_ELEM,editor);
429
430 writer.writeAttribute(I18N_TRANSLATE_ATTR,"Heading 1",null);
431 writer.write("Heading 1");
432 writer.endElement(HTML.SPAN_ELEM);
433 writer.endElement(HTML.OPTION_ELEM);
434
435 writer.startElement(HTML.OPTION_ELEM, editor);
436 writer.writeAttribute(HTML.VALUE_ATTR, "H2",null);
437 writer.startElement(HTML.SPAN_ELEM,editor);
438
439 writer.writeAttribute(I18N_TRANSLATE_ATTR,"Heading 2",null);
440 writer.write("Heading 2");
441 writer.endElement(HTML.SPAN_ELEM);
442 writer.endElement(HTML.OPTION_ELEM);
443
444 writer.startElement(HTML.OPTION_ELEM,editor);
445 writer.writeAttribute(HTML.VALUE_ATTR, "H3",null);
446 writer.startElement(HTML.SPAN_ELEM,editor);
447
448 writer.writeAttribute(I18N_TRANSLATE_ATTR,"Heading 3",null);
449 writer.write("Heading 3");
450 writer.endElement(HTML.SPAN_ELEM);
451
452 writer.endElement(HTML.OPTION_ELEM);
453
454 writer.startElement(HTML.OPTION_ELEM,editor);
455 writer.writeAttribute(HTML.VALUE_ATTR, "H4",null);
456 writer.startElement(HTML.SPAN_ELEM,editor);
457
458 writer.writeAttribute(I18N_TRANSLATE_ATTR,"Heading 4",null);
459 writer.write("Heading 4");
460 writer.endElement(HTML.SPAN_ELEM);
461
462 writer.endElement(HTML.OPTION_ELEM);
463
464 writer.startElement(HTML.OPTION_ELEM,editor);
465 writer.writeAttribute(HTML.VALUE_ATTR, "H5",null);
466 writer.startElement(HTML.SPAN_ELEM,editor);
467
468 writer.writeAttribute(I18N_TRANSLATE_ATTR,"Heading 5",null);
469 writer.write("Heading 5");
470 writer.endElement(HTML.SPAN_ELEM);
471
472 writer.endElement(HTML.OPTION_ELEM);
473
474 writer.startElement(HTML.OPTION_ELEM,editor);
475 writer.writeAttribute(HTML.VALUE_ATTR, "H6",null);
476
477 writer.startElement(HTML.SPAN_ELEM,editor);
478
479 writer.writeAttribute(I18N_TRANSLATE_ATTR,"Heading 6",null);
480 writer.write("Heading 6");
481 writer.endElement(HTML.SPAN_ELEM);
482
483 writer.endElement(HTML.OPTION_ELEM);
484
485 writer.startElement(HTML.OPTION_ELEM,editor);
486
487 writer.writeAttribute(HTML.VALUE_ATTR, "PRE",null);
488 writer.writeAttribute(I18N_TRANSLATE_ATTR,"Formatted",null);
489 writer.write("Formatted");
490 writer.endElement(HTML.OPTION_ELEM);
491
492 writer.endElement(HTML.SELECT_ELEM);
493
494 writer.startElement(HTML.SPAN_ELEM,editor);
495 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-tb-buttongroup", null);
496 writer.writeAttribute(HTML.STYLE_ATTR, "display: none", null);
497 writeButton(writer, "kupu-save", "save: alt-s", "s", editor, null);
498 writer.endElement(HTML.SPAN_ELEM);
499
500 writer.startElement(HTML.SPAN_ELEM,editor);
501 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-tb-buttongroup", null);
502 writer.writeAttribute(HTML.ID_ATTR, "kupu-bg-basicmarkup", null);
503 writeButton(writer, "kupu-bold", "Bold: Access key (Alt or Ctrl) + B", "b", editor,"title title_bold;");
504 writeButton(writer, "kupu-italic", "Italic: Access key (Alt or Ctrl) + I", "i", editor,"title title_italic;");
505 writeButton(writer, "kupu-underline", "Underline: Access key (Alt or Ctrl) + U", "u", editor,"title title_underline;");
506 writer.endElement(HTML.SPAN_ELEM);
507
508 writer.startElement(HTML.SPAN_ELEM,editor);
509 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-tb-buttongroup", null);
510 writer.writeAttribute(HTML.ID_ATTR, "kupu-bg-subsuper", null);
511 writeButton(writer, "kupu-subscript", "Subscript: Access key (Alt or Ctrl) + -", "-", editor,"title title_subscript;");
512 writeButton(writer, "kupu-superscript", "Superscript: Access key (Alt or Ctrl) + +", "+", editor,"title title_superscript;");
513 writer.endElement(HTML.SPAN_ELEM);
514
515 writer.startElement(HTML.SPAN_ELEM,editor);
516 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-tb-buttongroup", null);
517 writer.writeAttribute(HTML.ID_ATTR, "kupu-bg-color", null);
518 writeButton(writer, "kupu-forecolor", "text color: alt-f", "f", editor,"title title_text_color;");
519 writeButton(writer, "kupu-hilitecolor", "background color: alt-h", "h", editor,"title title_back_color;");
520 writer.endElement(HTML.SPAN_ELEM);
521
522 writer.startElement(HTML.SPAN_ELEM,editor);
523 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-tb-buttongroup", null);
524 writer.writeAttribute(HTML.ID_ATTR, "kupu-bg-justify", null);
525 writeButton(writer, "kupu-justifyleft", "Left justify: Access key (Alt or Ctrl) + L", "l", editor,"title title_ljust;");
526 writeButton(writer, "kupu-justifycenter", "Center justify: Access key (Alt or Ctrl) + C", "c", editor,"title title_center;");
527 writeButton(writer, "kupu-justifyright", "Right justify: Access key (Alt or Ctrl) + R", "r", editor,"title title_rjust;");
528 writer.endElement(HTML.SPAN_ELEM);
529
530 writer.startElement(HTML.SPAN_ELEM,editor);
531 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-tb-buttongroup", null);
532 writer.writeAttribute(HTML.ID_ATTR, "kupu-bg-list", null);
533 writeButton(writer, "kupu-insertorderedlist", "Numbered list: Access key (Alt or Ctrl) + #", "#", "kupu-list-ol-addbutton", editor,"title title_numlist;");
534 writeButton(writer, "kupu-insertunorderedlist", "Unordered list: Access key (Alt or Ctrl) + *", "*", "kupu-list-ul-addbutton", editor,"title title_unorderedlist;");
535 writer.endElement(HTML.SPAN_ELEM);
536
537 writer.startElement(HTML.SPAN_ELEM,editor);
538 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-tb-buttongroup", null);
539 writer.writeAttribute(HTML.ID_ATTR, "kupu-bg-definitionlist", null);
540 writeButton(writer, "kupu-insertdefinitionlist", "Definition list: Access key (Alt or Ctrl) + =", "=", "kupu-list-dl-addbutton", editor,"title title_deflist;");
541 writer.endElement(HTML.SPAN_ELEM);
542
543 writer.startElement(HTML.SPAN_ELEM,editor);
544 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-tb-buttongroup", null);
545 writer.writeAttribute(HTML.ID_ATTR, "kupu-bg-indent", null);
546 writeButton(writer, "kupu-outdent", "Decrease quote level: Access key (Alt or Ctrl) + <", "<", editor,"title title_decrease_quote;");
547 writeButton(writer, "kupu-indent", "Increase quote level: Access key (Alt or Ctrl) + >", ">", editor,"title title_increase_quote;");
548 writer.endElement(HTML.SPAN_ELEM);
549
550 writer.startElement(HTML.SPAN_ELEM,editor);
551 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-tb-buttongroup", null);
552 if( ! editor.isAllowExternalLinks() ){
553 writer.writeAttribute(HTML.STYLE_ATTR, "display: none", null);
554 }
555 writeButton(writer, "kupu-image", "Insert image", null, "kupu-imagelibdrawer-button", false, editor,"title title_insert_image;");
556 writeButton(writer, "kupu-inthyperlink", "Insert internal link", null, "kupu-linklibdrawer-button", false, editor,"title title_insert_internal_link;");
557 writeButton(writer, "kupu-exthyperlink", "Insert external link", null, "kupu-linkdrawer-button", editor,"title title_insert_external_link;");
558 writeButton(writer, "kupu-anchors", "Insert anchors", null, "kupu-anchors", editor,"title title_insert_anchors;");
559 writeButton(writer, "kupu-table", "Insert table", null, "kupu-tabledrawer-button", editor,"title title_insert_table;");
560 writer.endElement(HTML.SPAN_ELEM);
561
562 writer.startElement(HTML.SPAN_ELEM,editor);
563 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-tb-buttongroup", null);
564 writer.writeAttribute(HTML.ID_ATTR, "kupu-bg-remove", null);
565 writeButton(writer, "kupu-removeimage invisible", "Remove image", null, "kupu-removeimage-button", editor,"title title_removeimage;");
566 writeButton(writer, "kupu-removelink invisible", "Remove link", null, "kupu-removelink-button", editor,"title title_removelink;");
567 writer.endElement(HTML.SPAN_ELEM);
568
569 writer.startElement(HTML.SPAN_ELEM,editor);
570 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-tb-buttongroup", null);
571 writer.writeAttribute(HTML.ID_ATTR, "kupu-bg-undo", null);
572 writeButton(writer, "kupu-undo", "Undo: Access key (Alt or Ctrl) + Z", "z", editor,"title title_undo;");
573 writeButton(writer, "kupu-redo", "Redo: Access key (Alt or Ctrl) + Y", "y", editor,"title title_redo;");
574 writer.endElement(HTML.SPAN_ELEM);
575
576 writer.startElement(HTML.SPAN_ELEM,editor);
577 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-tb-buttongroup kupu-spellchecker-span", null);
578 writer.writeAttribute(HTML.ID_ATTR, "kupu-spellchecker", null);
579
580 writer.writeAttribute(HTML.STYLE_ATTR, "display: none", null);
581
582 writeButton(writer, "kupu-spellchecker", "Check spelling", null, editor,"title title_check_spelling;");
583 writer.endElement(HTML.SPAN_ELEM);
584
585 writer.startElement(HTML.SPAN_ELEM,editor);
586 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-tb-buttongroup kupu-source-span", null);
587 writer.writeAttribute(HTML.ID_ATTR, "kupu-source", null);
588 if( ! editor.isAllowEditSource() ){
589 writer.writeAttribute(HTML.STYLE_ATTR, "display: none", null);
590 }
591 writeButton(writer, "kupu-source", "Switch between visual editor and HTML view", "h", editor,"title toggle_source_view;");
592 writer.endElement(HTML.SPAN_ELEM);
593
594 writer.endElement(HTML.SPAN_ELEM);
595
596 writer.startElement(HTML.SELECT_ELEM,editor);
597 writer.writeAttribute(HTML.ID_ATTR, "kupu-ulstyles", null);
598 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-ulstyles", null);
599 writeOption(writer, "disc", "list-disc", "●", editor);
600 writeOption(writer, "square", "list-square", "■", editor);
601 writeOption(writer, "circle", "list-circle", "○", editor);
602 writeOption(writer, "none", "list-nobullet", "no bullet", editor);
603 writer.endElement(HTML.SELECT_ELEM);
604
605 writer.startElement(HTML.SELECT_ELEM,editor);
606 writer.writeAttribute(HTML.ID_ATTR, "kupu-olstyles", null);
607 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-olstyles", null);
608 writeOption(writer, "decimal", "list-decimal", "1", editor);
609 writeOption(writer, "upper-roman", "list-upperroman", "I", editor);
610 writeOption(writer, "lower-roman", "list-lowerroman", "i", editor);
611 writeOption(writer, "upper-alpha", "list-upperalpha", "A", editor);
612 writeOption(writer, "lower-alpha", "list-loweralpha", "a", editor);
613 writer.endElement(HTML.SELECT_ELEM);
614
615 writer.startElement(HTML.DIV_ELEM,editor);
616 writer.writeAttribute(HTML.STYLE_ATTR, "display:block;", null);
617 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-librarydrawer-parent", null);
618
619 writer.startElement(HTML.IFRAME_ELEM,editor);
620 writer.writeAttribute(HTML.STYLE_ATTR,"display:none",null);
621 writer.writeAttribute(HTML.CLASS_ATTR,"kupu-anchorframe",null);
622 writer.writeAttribute("src","javascript:''",null);
623 writer.writeAttribute("scrolling","auto",null);
624 writer.writeAttribute("frameborder","1",null);
625 writer.endElement(HTML.IFRAME_ELEM);
626
627 writer.endElement(HTML.DIV_ELEM);
628
629
630 writer.startElement(HTML.DIV_ELEM,editor);
631 writer.writeAttribute(HTML.ID_ATTR, "kupu-linkdrawer", null);
632 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-drawer kupu-linkdrawer", null);
633 writer.startElement(HTML.H1_ELEM,editor);
634 writer.writeAttribute(HTML.CLASS_ATTR,"kupu-drawer-title",null);
635
636 writer.writeAttribute(I18N_TRANSLATE_ATTR,"title_external_link", null);
637 writer.write("External Link");
638 writer.endElement(HTML.H1_ELEM);
639 writer.startElement(HTML.DIV_ELEM,editor);
640 writer.writeAttribute(HTML.ID_ATTR, "kupu-linkdrawer-addlink", null);
641 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-panels kupu-linkdrawer-addlink", null);
642
643 writer.startElement(HTML.UL_ELEM,editor);
644 writer.writeAttribute(HTML.CLASS_ATTR,"kupu-tabs",null);
645
646 writer.startElement(HTML.LI_ELEM,editor);
647 writer.writeAttribute(HTML.CLASS_ATTR,"kupu-linkdrawer-addlink selected",null);
648 writer.startElement(HTML.ANCHOR_ELEM,editor);
649 writer.writeAttribute("href","#",null);
650
651 writer.writeAttribute(I18N_TRANSLATE_ATTR,"tab_link",null);
652 writer.writeAttribute("shape","rect",null);
653 writer.write("Link to url");
654 writer.endElement(HTML.ANCHOR_ELEM);
655 writer.endElement(HTML.LI_ELEM);
656
657 writer.startElement(HTML.LI_ELEM,editor);
658 writer.writeAttribute(HTML.CLASS_ATTR,"kupu-linkdrawer-embed",null);
659
660 writer.startElement(HTML.ANCHOR_ELEM,editor);
661 writer.writeAttribute("href","#",null);
662
663 writer.writeAttribute(I18N_TRANSLATE_ATTR,"tab_embed",null);
664 writer.writeAttribute("shape","rect",null);
665 writer.write("Embed external object");
666 writer.endElement(HTML.ANCHOR_ELEM);
667 writer.endElement(HTML.LI_ELEM);
668
669 writer.endElement(HTML.UL_ELEM);
670
671 writer.startElement(HTML.TABLE_ELEM,editor);
672 writer.writeAttribute(HTML.CLASS_ATTR,"kupu-tabbed",null);
673 writer.startElement(HTML.TBODY_ELEM,editor);
674 writer.writeAttribute(HTML.CLASS_ATTR,"kupu-addlink",null);
675
676 writer.startElement(HTML.TR_ELEM,editor);
677 writer.startElement(HTML.TD_ELEM,editor);
678 writer.writeAttribute(HTML.COLSPAN_ATTR,"1",null);
679 writer.writeAttribute(ROWSPAN_ATTR,"1",null);
680 writer.startElement(HTML.DIV_ELEM,editor);
681 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-label", null);
682 writer.startElement(HTML.SPAN_ELEM,editor);
683
684 writer.writeAttribute(I18N_TRANSLATE_ATTR,"label_link_text",null);
685 writer.write("Link the highlighted text to this URL:");
686 writer.endElement(HTML.SPAN_ELEM);
687 writer.endElement(HTML.DIV_ELEM);
688
689 writer.startElement(HTML.INPUT_ELEM,editor);
690 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-st kupu-linkdrawer-input", null);
691 writer.writeAttribute(HTML.TYPE_ATTR, "text", null);
692 writer.writeAttribute(HTML.ONKEYPRESS_ATTR, "return HandleDrawerEnter(event, 'linkdrawer-preview');", null);
693 writer.endElement(HTML.INPUT_ELEM);
694 writer.endElement(HTML.TD_ELEM);
695 writer.startElement(HTML.TD_ELEM,null);
696 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-preview-button", null);
697 writer.writeAttribute(HTML.COLSPAN_ATTR,"1",null);
698 writer.writeAttribute(ROWSPAN_ATTR,"1",null);
699 writer.startElement(HTML.BUTTON_ELEM,editor);
700 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-dialog-button", null);
701 writer.writeAttribute(HTML.TYPE_ATTR, "button", null);
702 writer.writeAttribute(HTML.ID_ATTR,"linkdrawer-preview",null);
703 writer.writeAttribute(HTML.ONCLICK_ATTR, "drawertool.current_drawer.preview()", null);
704
705 writer.writeAttribute(I18N_TRANSLATE_ATTR,"button_preview",null);
706 writer.write("Preview");
707 writer.endElement(HTML.BUTTON_ELEM);
708 writer.endElement(HTML.TD_ELEM);
709 writer.endElement(HTML.TR_ELEM);
710 writer.startElement(HTML.TR_ELEM,editor);
711 writer.writeAttribute(HTML.CLASS_ATTR,"kupu-linkdrawer-anchors",null);
712 writer.writeAttribute(HTML.STYLE_ATTR,"display:none",null);
713
714 writer.startElement(HTML.TD_ELEM,editor);
715 writer.writeAttribute(HTML.COLSPAN_ATTR, "2", null);
716 writer.writeAttribute(ROWSPAN_ATTR,"1",null);
717
718 writer.startElement(HTML.LABEL_ATTR,editor);
719
720 writer.writeAttribute(I18N_TRANSLATE_ATTR,"label_anchor",null);
721 writer.writeAttribute("for","anchorselect",null);
722 writer.write("Anchor");
723 writer.endElement(HTML.LABEL_ATTR);
724 writer.startElement(HTML.SELECT_ELEM,editor);
725 writer.writeAttribute(HTML.ID_ATTR,"anchorselect",null);
726 writer.startElement(HTML.OPTION_ELEM,editor);
727
728 writer.writeAttribute(I18N_TRANSLATE_ATTR,"opt_top_of_page",null);
729 writer.writeAttribute(HTML.VALUE_ATTR,"",null);
730 writer.write("top of page (default)");
731 writer.endElement(HTML.OPTION_ELEM);
732 writer.endElement(HTML.SELECT_ELEM);
733
734 writer.endElement(HTML.TD_ELEM);
735
736 writer.endElement(HTML.TR_ELEM);
737
738 writer.startElement(HTML.TR_ELEM,editor);
739 writer.startElement(HTML.TD_ELEM,editor);
740 writer.writeAttribute(HTML.COLSPAN_ATTR,"2",null);
741 writer.writeAttribute(HTML.ALIGN_ATTR, "center", null);
742 writer.writeAttribute(ROWSPAN_ATTR,"1",null);
743 writer.startElement(HTML.DIV_ELEM,editor);
744 writer.writeAttribute(HTML.CLASS_ATTR,"watermark",null);
745 writer.startElement(HTML.SPAN_ELEM,editor);
746
747 writer.writeAttribute(I18N_TRANSLATE_ATTR,"watermark_preview",null);
748 writer.write("Preview");
749 writer.endElement(HTML.SPAN_ELEM);
750 writer.endElement(HTML.DIV_ELEM);
751 writer.startElement(HTML.IFRAME_ELEM,editor);
752 writer.writeAttribute(HTML.FRAMEBORDER_ATTR, "1", null);
753 writer.writeAttribute(HTML.SCROLLING_ATTR, "auto", null);
754 writer.writeAttribute(HTML.WIDTH_ATTR, "440", null);
755 writer.writeAttribute(HTML.HEIGHT_ATTR, "198", null);
756 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-linkdrawer-preview", null);
757
758 writer.writeAttribute(HTML.SRC_ATTR, "javascript:''", null);
759 writer.endElement(HTML.IFRAME_ELEM);
760 writer.endElement(HTML.TD_ELEM);
761 writer.endElement(HTML.TR_ELEM);
762 writer.endElement(HTML.TBODY_ELEM);
763
764 writer.startElement(HTML.TBODY_ELEM,editor);
765 writer.writeAttribute(HTML.CLASS_ATTR,"kupu-embed",null);
766 writer.startElement(HTML.TR_ELEM,editor);
767 writer.startElement(HTML.TD_ELEM,editor);
768 writer.writeAttribute(HTML.COLSPAN_ATTR,"1",null);
769 writer.writeAttribute(ROWSPAN_ATTR,"1",null);
770 writer.startElement(HTML.DIV_ELEM,editor);
771 writer.writeAttribute(HTML.CLASS_ATTR,"kupu-toolbox-label",null);
772 writer.startElement(HTML.SPAN_ELEM,editor);
773
774 writer.writeAttribute(I18N_TRANSLATE_ATTR,"help_paste_here",null);
775 writer.write("Paste <object> or <embed> tag here:");
776 writer.endElement(HTML.SPAN_ELEM);
777 writer.endElement(HTML.DIV_ELEM);
778 writer.startElement(HTML.TEXTAREA_ELEM,editor);
779 writer.writeAttribute(HTML.CLASS_ATTR,"kupu-toolbox-st kupu-embed-input",null);
780
781 writer.writeAttribute(I18N_TRANSLATE_ATTR,"placeholder_html_code",null);
782 writer.write("[insert arbitrary HTML code here]");
783 writer.endElement(HTML.TEXTAREA_ELEM);
784 writer.endElement(HTML.TD_ELEM);
785 writer.endElement(HTML.TR_ELEM);
786 writer.startElement(HTML.TR_ELEM,editor);
787 writer.startElement(HTML.TD_ELEM,editor);
788
789 writer.writeAttribute(I18N_TRANSLATE_ATTR,"custom_html_help",null);
790 writer.writeAttribute(HTML.COLSPAN_ATTR,"1",null);
791 writer.writeAttribute(ROWSPAN_ATTR,"1",null);
792 writer.write("You may use this box to insert custom snippets of");
793 writer.write("HTML code. There is no guarantee that any code");
794 writer.write("inserted in this way will be preserved when you save");
795 writer.write("your edits. To select an existing object from IE click on");
796 writer.write("the border, from Firefox double click it.");
797 writer.endElement(HTML.TD_ELEM);
798 writer.endElement(HTML.TR_ELEM);
799 writer.endElement(HTML.TBODY_ELEM);
800 writer.endElement(HTML.TABLE_ELEM);
801
802 writer.startElement(HTML.DIV_ELEM,editor);
803 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-dialogbuttons", null);
804 writer.startElement(HTML.BUTTON_ELEM,editor);
805
806 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-dialog-button", null);
807 writer.writeAttribute(HTML.TYPE_ATTR, "button", null);
808 writer.writeAttribute(HTML.ONCLICK_ATTR, "drawertool.current_drawer.save()", null);
809
810 writer.writeAttribute(I18N_TRANSLATE_ATTR,"button_ok",null);
811 writer.write("Ok");
812 writer.endElement(HTML.BUTTON_ELEM);
813 writer.startElement(HTML.BUTTON_ELEM,editor);
814
815 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-dialog-button", null);
816 writer.writeAttribute(HTML.TYPE_ATTR, "button", null);
817 writer.writeAttribute(HTML.ONCLICK_ATTR, "drawertool.closeDrawer()", null);
818
819 writer.writeAttribute(I18N_TRANSLATE_ATTR,"button_cancel",null);
820 writer.write("Cancel");
821 writer.endElement(HTML.BUTTON_ELEM);
822 writer.endElement(HTML.DIV_ELEM);
823 writer.endElement(HTML.DIV_ELEM);
824 writer.endElement(HTML.DIV_ELEM);
825
826
827 writer.startElement(HTML.DIV_ELEM,editor);
828 writer.writeAttribute(HTML.ID_ATTR, "kupu-tabledrawer",null);
829 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-drawer kupu-tabledrawer",null);
830 writer.startElement(HTML.H1_ELEM,editor);
831 writer.writeAttribute(HTML.CLASS_ATTR,"kupu-drawer-title",null);
832
833 writer.writeAttribute(I18N_TRANSLATE_ATTR,"tabledrawer_title",null);
834 writer.write("Table");
835 writer.endElement(HTML.H1_ELEM);
836 writer.startElement(HTML.DIV_ELEM,editor);
837 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-panels", null);
838 writer.startElement(HTML.TABLE_ELEM,editor);
839 writer.writeAttribute(HTML.WIDTH_ATTR, "300",null);
840 writer.startElement(HTML.TR_ELEM,editor);
841 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-panelsrow",null);
842 writer.startElement(HTML.TD_ELEM,editor);
843 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-panel",null);
844 writer.writeAttribute(HTML.COLSPAN_ATTR,"1",null);
845 writer.writeAttribute(ROWSPAN_ATTR,"1",null);
846
847 writer.startElement(HTML.DIV_ELEM,editor);
848 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-tabledrawer-addtable", null);
849 writer.startElement(HTML.TABLE_ELEM,editor);
850 writer.startElement(HTML.TR_ELEM,editor);
851 writer.startElement(HTML.TH_ELEM,editor);
852
853 writer.writeAttribute(I18N_TRANSLATE_ATTR,"tabledrawer_class_label",null);
854 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-label", null);
855 writer.writeAttribute(HTML.COLSPAN_ATTR,"1",null);
856 writer.writeAttribute(ROWSPAN_ATTR,"1",null);
857 writer.write("Table Class");
858 writer.endElement(HTML.TH_ELEM);
859 writer.startElement(HTML.TD_ELEM,editor);
860 writer.writeAttribute(HTML.COLSPAN_ATTR,"1",null);
861 writer.writeAttribute(ROWSPAN_ATTR,"1",null);
862 writer.startElement(HTML.SELECT_ELEM,editor);
863 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-tabledrawer-addclasschooser", null);
864 writeOption(writer, "plain", "Plain", "Plain", editor);
865 writeOption(writer, "listing","Listing" , "Listing", editor);
866 writeOption(writer, "grid", "Grid", "Grid", editor);
867 writeOption(writer, "data", "Data", "Data", editor);
868 writer.endElement(HTML.SELECT_ELEM);
869 writer.endElement(HTML.TD_ELEM);
870 writer.endElement(HTML.TR_ELEM);
871
872 writer.startElement(HTML.TR_ELEM, editor);
873 writer.startElement(HTML.TH_ELEM,editor);
874
875 writer.writeAttribute(I18N_TRANSLATE_ATTR,"tabledrawer_rows_label",null);
876 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-label", null);
877 writer.writeAttribute(HTML.COLSPAN_ATTR,"1",null);
878 writer.writeAttribute(ROWSPAN_ATTR,"1",null);
879 writer.write("Rows");
880 writer.endElement(HTML.TH_ELEM);
881 writer.startElement(HTML.TD_ELEM, editor);
882 writer.writeAttribute(HTML.COLSPAN_ATTR,"1",null);
883 writer.writeAttribute(ROWSPAN_ATTR,"1",null);
884 writer.startElement(HTML.INPUT_ELEM, editor);
885 writer.writeAttribute(HTML.TYPE_ATTR, "text", null);
886 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-tabledrawer-newrows", null);
887 writer.writeAttribute(HTML.VALUE_ATTR, "3", null);
888 writer.writeAttribute(HTML.ONKEYPRESS_ATTR, "return HandleDrawerEnter(event);", null);
889 writer.endElement(HTML.INPUT_ELEM);
890 writer.endElement(HTML.TD_ELEM);
891 writer.endElement(HTML.TR_ELEM);
892
893 writer.startElement(HTML.TR_ELEM, editor);
894 writer.startElement(HTML.TH_ELEM,editor);
895
896 writer.writeAttribute(I18N_TRANSLATE_ATTR,"tabledrawer_columns_label",null);
897 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-label", null);
898 writer.writeAttribute(HTML.COLSPAN_ATTR,"1",null);
899 writer.writeAttribute(ROWSPAN_ATTR,"1",null);
900 writer.write("Columns");
901 writer.endElement(HTML.TH_ELEM);
902 writer.startElement(HTML.TD_ELEM, editor);
903 writer.writeAttribute(HTML.COLSPAN_ATTR,"1",null);
904 writer.writeAttribute(ROWSPAN_ATTR,"1",null);
905 writer.startElement(HTML.INPUT_ELEM, editor);
906 writer.writeAttribute(HTML.TYPE_ATTR, "text", null);
907 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-tabledrawer-newcols", null);
908 writer.writeAttribute(HTML.VALUE_ATTR, "3", null);
909 writer.writeAttribute(HTML.ONKEYPRESS_ATTR, "return HandleDrawerEnter(event);", null);
910 writer.endElement(HTML.INPUT_ELEM);
911 writer.endElement(HTML.TD_ELEM);
912 writer.endElement(HTML.TR_ELEM);
913
914 writer.startElement(HTML.TR_ELEM, editor);
915 writer.startElement(HTML.TH_ELEM,editor);
916 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-label", null);
917 writer.writeAttribute(HTML.COLSPAN_ATTR,"1",null);
918 writer.writeAttribute(ROWSPAN_ATTR,"1",null);
919 writer.endElement(HTML.TH_ELEM);
920 writer.startElement(HTML.TD_ELEM, editor);
921 writer.writeAttribute(HTML.COLSPAN_ATTR,"1",null);
922 writer.writeAttribute(ROWSPAN_ATTR,"1",null);
923 writer.startElement(HTML.INPUT_ELEM,editor);
924 writer.writeAttribute(HTML.CLASS_ATTR,"kupu-tabledrawer-makeheader",null);
925 writer.writeAttribute(HTML.TYPE_ATTR,"checkbox",null);
926 writer.writeAttribute("checked","checked",null);
927 writer.writeAttribute(HTML.ONKEYPRESS_ATTR,"return HandleDrawerEnter(event);",null);
928 writer.writeAttribute(HTML.ID_ATTR,"tabledrawer_makeheader",null);
929 writer.endElement(HTML.INPUT_ELEM);
930 writer.startElement(HTML.LABEL_ATTR,editor);
931
932 writer.writeAttribute(I18N_TRANSLATE_ATTR,"tabledrawer_headings_label",null);
933 writer.writeAttribute("for","tabledrawer_makeheader",null);
934 writer.write("Create Headings");
935 writer.endElement(HTML.LABEL_ATTR);
936 writer.endElement(HTML.TD_ELEM);
937 writer.endElement(HTML.TR_ELEM);
938
939 writer.startElement(HTML.TR_ELEM, editor);
940 writer.startElement(HTML.TH_ELEM,editor);
941 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-label", null);
942 writer.writeAttribute(HTML.COLSPAN_ATTR,"1",null);
943 writer.writeAttribute(ROWSPAN_ATTR,"1",null);
944 writer.endElement(HTML.TH_ELEM);
945 writer.startElement(HTML.TD_ELEM, editor);
946 writer.writeAttribute(HTML.COLSPAN_ATTR,"1",null);
947 writer.writeAttribute(ROWSPAN_ATTR,"1",null);
948 writer.startElement(HTML.BUTTON_ELEM, editor);
949 writer.writeAttribute(HTML.CLASS_ATTR,"kupu-dialog-button",null);
950 writer.writeAttribute(HTML.TYPE_ATTR, "button", null);
951
952 writer.writeAttribute(I18N_TRANSLATE_ATTR,"tabledrawer_add_table_button",null);
953 writer.writeAttribute(HTML.ONCLICK_ATTR, "drawertool.current_drawer.createTable()", null);
954 writer.write("Add Table");
955 writer.endElement(HTML.BUTTON_ELEM);
956 writer.startElement(HTML.BUTTON_ELEM, editor);
957 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-dialog-button", null);
958 writer.writeAttribute(HTML.TYPE_ATTR, "button", null);
959
960 writer.writeAttribute(I18N_TRANSLATE_ATTR,"tabledrawer_fix_tables_button",null);
961 writer.writeAttribute(HTML.ONCLICK_ATTR, "drawertool.current_drawer.fixAllTables()", null);
962 writer.write("Fix All Tables");
963 writer.endElement(HTML.BUTTON_ELEM);
964 writer.endElement(HTML.TD_ELEM);
965 writer.endElement(HTML.TR_ELEM);
966
967 writer.endElement(HTML.TABLE_ELEM);
968 writer.endElement(HTML.DIV_ELEM);
969
970 writer.startElement(HTML.DIV_ELEM,editor);
971 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-tabledrawer-edittable", null);
972 writer.startElement(HTML.TABLE_ELEM,editor);
973 writer.startElement(HTML.TR_ELEM,editor);
974 writer.startElement(HTML.TH_ELEM,editor);
975 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-label", null);
976 writer.writeAttribute(I18N_TRANSLATE_ATTR,"tabledrawer_class_label",null);
977 writer.writeAttribute(HTML.COLSPAN_ATTR,"1",null);
978 writer.writeAttribute(ROWSPAN_ATTR,"1",null);
979 writer.write("Table Class");
980 writer.endElement(HTML.TH_ELEM);
981 writer.startElement(HTML.TD_ELEM,editor);
982 writer.writeAttribute(HTML.COLSPAN_ATTR,"1",null);
983 writer.writeAttribute(ROWSPAN_ATTR,"1",null);
984 writer.startElement(HTML.SELECT_ELEM,editor);
985 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-tabledrawer-editclasschooser", null);
986 writer.writeAttribute(HTML.ONCHANGE_ATTR, "drawertool.current_drawer.setTableClass(this.options[this.selectedIndex].value)", null);
987 writeOption(writer, "plain", "Plain", "Plain", editor);
988 writeOption(writer, "listing", "Listing", "Listing", editor);
989 writeOption(writer, "grid", "Grid", "Grid", editor);
990 writeOption(writer, "data", "Data", "Data", editor);
991 writer.endElement(HTML.SELECT_ELEM);
992 writer.endElement(HTML.TD_ELEM);
993 writer.endElement(HTML.TR_ELEM);
994
995 writer.startElement(HTML.TR_ELEM,editor);
996 writer.startElement(HTML.TH_ELEM,editor);
997 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-label", null);
998 writer.writeAttribute(I18N_TRANSLATE_ATTR,"tabledrawer_alignment_label",null);
999 writer.writeAttribute(HTML.COLSPAN_ATTR,"1",null);
1000 writer.writeAttribute(ROWSPAN_ATTR,"1",null);
1001 writer.write("Current column alignment");
1002 writer.endElement(HTML.TH_ELEM);
1003 writer.startElement(HTML.TD_ELEM,editor);
1004 writer.writeAttribute(HTML.COLSPAN_ATTR,"1",null);
1005 writer.writeAttribute(ROWSPAN_ATTR,"1",null);
1006 writer.startElement(HTML.SELECT_ELEM,editor);
1007 writer.writeAttribute(HTML.ID_ATTR,"kupu-tabledrawer-alignchooser",null);
1008 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-tabledrawer-alignchooser", null);
1009 writer.writeAttribute(HTML.ONCHANGE_ATTR, "drawertool.current_drawer.tool.setColumnAlign(this.options[this.selectedIndex].value)", null);
1010 writeOption(writer, "left", "tabledrawer_left_option", "Left", editor);
1011 writeOption(writer, "center", "tabledrawer_center_option", "Center", editor);
1012 writeOption(writer, "right", "tabledrawer_right_option", "Right", editor);
1013 writer.endElement(HTML.SELECT_ELEM);
1014 writer.endElement(HTML.TD_ELEM);
1015 writer.endElement(HTML.TR_ELEM);
1016
1017 writer.startElement(HTML.TR_ELEM,editor);
1018 writer.startElement(HTML.TH_ELEM,editor);
1019 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-label", null);
1020 writer.writeAttribute(I18N_TRANSLATE_ATTR,"tabledrawer_column_label",null);
1021 writer.writeAttribute(HTML.COLSPAN_ATTR,"1",null);
1022 writer.writeAttribute(ROWSPAN_ATTR,"1",null);
1023 writer.write("Column");
1024 writer.endElement(HTML.TH_ELEM);
1025 writer.startElement(HTML.TD_ELEM,editor);
1026 writer.writeAttribute(HTML.COLSPAN_ATTR,"1",null);
1027 writer.writeAttribute(ROWSPAN_ATTR,"1",null);
1028 writer.startElement(HTML.BUTTON_ELEM, editor);
1029 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-dialog-button", null);
1030 writer.writeAttribute(HTML.TYPE_ATTR, "button", null);
1031 writer.writeAttribute(I18N_TRANSLATE_ATTR,"tabledrawer_add_button",null);
1032 writer.writeAttribute(HTML.ONCLICK_ATTR, "drawertool.current_drawer.addTableColumn()", null);
1033 writer.write("Add");
1034 writer.endElement(HTML.BUTTON_ELEM);
1035 writer.startElement(HTML.BUTTON_ELEM, editor);
1036 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-dialog-button", null);
1037 writer.writeAttribute(HTML.TYPE_ATTR, "button", null);
1038 writer.writeAttribute(I18N_TRANSLATE_ATTR,"tabledrawer_remove_button",null);
1039 writer.writeAttribute(HTML.ONCLICK_ATTR, "drawertool.current_drawer.delTableColumn()", null);
1040 writer.write("Remove");
1041 writer.endElement(HTML.BUTTON_ELEM);
1042 writer.endElement(HTML.TD_ELEM);
1043 writer.endElement(HTML.TR_ELEM);
1044
1045 writer.startElement(HTML.TR_ELEM,editor);
1046 writer.startElement(HTML.TH_ELEM,editor);
1047 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-label", null);
1048 writer.writeAttribute(I18N_TRANSLATE_ATTR,"tabledrawer_row_label",null);
1049 writer.writeAttribute(HTML.COLSPAN_ATTR,"1",null);
1050 writer.writeAttribute(ROWSPAN_ATTR,"1",null);
1051 writer.write("Row");
1052 writer.endElement(HTML.TH_ELEM);
1053 writer.startElement(HTML.TD_ELEM,editor);
1054 writer.writeAttribute(HTML.COLSPAN_ATTR,"1",null);
1055 writer.writeAttribute(ROWSPAN_ATTR,"1",null);
1056 writer.startElement(HTML.BUTTON_ELEM, editor);
1057 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-dialog-button", null);
1058 writer.writeAttribute(HTML.TYPE_ATTR, "button", null);
1059 writer.writeAttribute(I18N_TRANSLATE_ATTR,"tabledrawer_add_button",null);
1060 writer.writeAttribute(HTML.ONCLICK_ATTR, "drawertool.current_drawer.addTableRow()", null);
1061 writer.write("Add");
1062 writer.endElement(HTML.BUTTON_ELEM);
1063 writer.startElement(HTML.BUTTON_ELEM, editor);
1064 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-dialog-button", null);
1065 writer.writeAttribute(HTML.TYPE_ATTR, "button", null);
1066 writer.writeAttribute(I18N_TRANSLATE_ATTR,"tabledrawer_remove_button",null);
1067 writer.writeAttribute(HTML.ONCLICK_ATTR, "drawertool.current_drawer.delTableRow()", null);
1068 writer.write("Remove");
1069 writer.endElement(HTML.BUTTON_ELEM);
1070 writer.endElement(HTML.TD_ELEM);
1071 writer.endElement(HTML.TR_ELEM);
1072
1073 writer.startElement(HTML.TR_ELEM,editor);
1074 writer.startElement(HTML.TH_ELEM,editor);
1075 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-label", null);
1076 writer.writeAttribute(I18N_TRANSLATE_ATTR,"tabledrawer_table_label",null);
1077 writer.writeAttribute(HTML.COLSPAN_ATTR,"1",null);
1078 writer.writeAttribute(ROWSPAN_ATTR,"1",null);
1079 writer.write("Fix Table");
1080 writer.endElement(HTML.TH_ELEM);
1081 writer.startElement(HTML.TD_ELEM,editor);
1082 writer.writeAttribute(HTML.COLSPAN_ATTR,"1",null);
1083 writer.writeAttribute(ROWSPAN_ATTR,"1",null);
1084 writer.startElement(HTML.BUTTON_ELEM, editor);
1085 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-dialog-button", null);
1086 writer.writeAttribute(HTML.TYPE_ATTR, "button", null);
1087 writer.writeAttribute(I18N_TRANSLATE_ATTR,"tabledrawer_fix_button",null);
1088 writer.writeAttribute(HTML.ONCLICK_ATTR, "drawertool.current_drawer.fixTable()", null);
1089 writer.write("Fix");
1090 writer.endElement(HTML.BUTTON_ELEM);
1091 writer.startElement(HTML.BUTTON_ELEM,editor);
1092 writer.writeAttribute(HTML.CLASS_ATTR,"kupu-dialog-button",null);
1093 writer.writeAttribute(HTML.TYPE_ATTR,"button",null);
1094 writer.writeAttribute(I18N_TRANSLATE_ATTR,"tabledrawer_remove_button",null);
1095 writer.writeAttribute(HTML.ONCLICK_ATTR,"drawertool.current_drawer.delTable()",null);
1096 writer.write("Remove");
1097 writer.endElement(HTML.BUTTON_ELEM);
1098 writer.endElement(HTML.TD_ELEM);
1099 writer.endElement(HTML.TR_ELEM);
1100
1101 writer.endElement(HTML.TABLE_ELEM);
1102 writer.endElement(HTML.DIV_ELEM);
1103 writer.endElement(HTML.TD_ELEM);
1104 writer.endElement(HTML.TR_ELEM);
1105 writer.endElement(HTML.TABLE_ELEM);
1106
1107 writer.startElement(HTML.DIV_ELEM,editor);
1108 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-dialogbuttons", null);
1109 writer.startElement(HTML.BUTTON_ELEM,editor);
1110 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-dialog-button", null);
1111 writer.writeAttribute(HTML.TYPE_ATTR, "button", null);
1112 writer.writeAttribute(I18N_TRANSLATE_ATTR,"tabledrawer_close_button",null);
1113 writer.writeAttribute(HTML.ONCLICK_ATTR, "drawertool.closeDrawer(this)", null);
1114 writer.write("Close");
1115 writer.endElement(HTML.BUTTON_ELEM);
1116 writer.endElement(HTML.DIV_ELEM);
1117 writer.endElement(HTML.DIV_ELEM);
1118 writer.endElement(HTML.DIV_ELEM);
1119
1120 writer.startElement(HTML.DIV_ELEM,editor);
1121 writer.writeAttribute(HTML.ID_ATTR,"kupu-anchordrawer",null);
1122 writer.writeAttribute(HTML.CLASS_ATTR,"kupu-drawer kupu-anchordrawer",null);
1123
1124 writer.startElement(HTML.H1_ELEM,editor);
1125 writer.writeAttribute(HTML.CLASS_ATTR,"kupu-drawer-title",null);
1126 writer.writeAttribute(I18N_TRANSLATE_ATTR,"anchordrawer_title",null);
1127 writer.write("Anchors");
1128 writer.endElement(HTML.H1_ELEM);
1129
1130 writer.startElement(HTML.DIV_ELEM,editor);
1131 writer.writeAttribute(HTML.CLASS_ATTR,"kupu-panels kupu-ins-bm",null);
1132
1133 writer.startElement(HTML.UL_ELEM,editor);
1134 writer.writeAttribute(HTML.CLASS_ATTR,"kupu-tabs",null);
1135
1136 writer.startElement(HTML.LI_ELEM,editor);
1137 writer.writeAttribute(HTML.CLASS_ATTR,"kupu-ins-bm selected",null);
1138 writer.startElement(HTML.ANCHOR_ELEM,editor);
1139 writer.writeAttribute("href","#",null);
1140 writer.writeAttribute(I18N_TRANSLATE_ATTR,"tab_link_anchor",null);
1141 writer.writeAttribute("shape","rect",null);
1142 writer.write("Link to anchor");
1143 writer.endElement(HTML.ANCHOR_ELEM);
1144 writer.endElement(HTML.LI_ELEM);
1145
1146 writer.startElement(HTML.LI_ELEM,editor);
1147 writer.writeAttribute(HTML.CLASS_ATTR,"kupu-anchor",null);
1148 writer.startElement(HTML.ANCHOR_ELEM,editor);
1149 writer.writeAttribute("href","#",null);
1150 writer.writeAttribute(I18N_TRANSLATE_ATTR,"tab_manage_anchors",null);
1151 writer.writeAttribute("shape","rect",null);
1152 writer.write("Manage Anchors");
1153 writer.endElement(HTML.ANCHOR_ELEM);
1154 writer.endElement(HTML.LI_ELEM);
1155
1156 writer.startElement(HTML.LI_ELEM,editor);
1157 writer.writeAttribute(HTML.CLASS_ATTR,"kupu-toc",null);
1158 writer.startElement(HTML.ANCHOR_ELEM,editor);
1159 writer.writeAttribute("href","#",null);
1160 writer.writeAttribute(I18N_TRANSLATE_ATTR,"tab_toc",null);
1161 writer.writeAttribute("shape","rect",null);
1162 writer.write("Table of contents");
1163 writer.endElement(HTML.ANCHOR_ELEM);
1164 writer.endElement(HTML.LI_ELEM);
1165
1166 writer.endElement(HTML.UL_ELEM);
1167
1168 writer.startElement(HTML.TABLE_ELEM,editor);
1169 writer.writeAttribute(HTML.CLASS_ATTR,"kupu-tabbed",null);
1170 writer.writeAttribute("cellspacing","0",null);
1171
1172 writer.startElement(HTML.TR_ELEM,editor);
1173
1174 writer.startElement(HTML.TD_ELEM,editor);
1175 writer.writeAttribute(HTML.CLASS_ATTR,"kupu-bm-select",null);
1176 writer.writeAttribute(HTML.COLSPAN_ATTR,"1",null);
1177 writer.writeAttribute(ROWSPAN_ATTR,"1",null);
1178
1179 writer.startElement(HTML.SELECT_ELEM,editor);
1180 writer.writeAttribute(HTML.ID_ATTR,"kupu-bm-sel1",null);
1181 writer.writeAttribute("size","10",null);
1182
1183 writer.endElement(HTML.SELECT_ELEM);
1184
1185 writer.endElement(HTML.TD_ELEM);
1186
1187 writer.startElement(HTML.TD_ELEM,editor);
1188 writer.writeAttribute(HTML.COLSPAN_ATTR,"1",null);
1189 writer.writeAttribute(ROWSPAN_ATTR,"1",null);
1190
1191 writer.startElement(HTML.DIV_ELEM,editor);
1192 writer.writeAttribute(HTML.CLASS_ATTR,"kupu-bm-heading",null);
1193
1194 writer.startElement(HTML.DIV_ELEM,editor);
1195 writer.writeAttribute(HTML.CLASS_ATTR,"kupu-bm-tablestyle invis-ins-bm invis-anchor",null);
1196
1197 writer.startElement(HTML.LABEL_ATTR,editor);
1198 writer.writeAttribute(I18N_TRANSLATE_ATTR,"label_table_style",null);
1199 writer.writeAttribute("for","kupu-bm-outcls",null);
1200 writer.write("Table style");
1201
1202 writer.endElement(HTML.LABEL_ATTR);
1203
1204 writer.startElement(HTML.SELECT_ELEM,editor);
1205 writer.writeAttribute(HTML.ID_ATTR,"kupu-bm-outcls",null);
1206 writer.writeAttribute("size","1",null);
1207
1208 writer.startElement(HTML.OPTION_ELEM,editor);
1209 writer.writeAttribute(HTML.VALUE_ATTR,"",null);
1210 writer.writeAttribute(I18N_TRANSLATE_ATTR,"Normal",null);
1211 writer.write("Normal paragraph");
1212 writer.endElement(HTML.OPTION_ELEM);
1213
1214 writer.endElement(HTML.SELECT_ELEM);
1215
1216 writer.endElement(HTML.DIV_ELEM);
1217
1218 writer.startElement(HTML.DIV_ELEM,editor);
1219 writer.writeAttribute(HTML.CLASS_ATTR,"kupu-bm-numbering invis-ins-bm invis-anchor",null);
1220
1221 writer.startElement(HTML.LABEL_ATTR,editor);
1222 writer.writeAttribute(I18N_TRANSLATE_ATTR,"label_numbering",null);
1223 writer.writeAttribute("for","kupu-bm-number",null);
1224 writer.write("Numbering");
1225
1226 writer.endElement(HTML.LABEL_ATTR);
1227
1228 writer.startElement(HTML.INPUT_ELEM,editor);
1229 writer.writeAttribute(HTML.TYPE_ATTR,"checkbox",null);
1230 writer.writeAttribute(HTML.CLASS_ATTR,"hide-ins-bm hide-anchor",null);
1231 writer.writeAttribute("checked","checked",null);
1232 writer.writeAttribute(HTML.ID_ATTR,"kupu-bm-number",null);
1233 writer.endElement(HTML.INPUT_ELEM);
1234
1235 writer.endElement(HTML.DIV_ELEM);
1236
1237 writer.startElement(HTML.DIV_ELEM,editor);
1238 writer.writeAttribute(HTML.CLASS_ATTR,"invis-ins-bm",null);
1239
1240 writer.startElement(HTML.LABEL_ATTR,editor);
1241 writer.writeAttribute("for","kupu-bm-checkall",null);
1242
1243 writer.startElement("em",editor);
1244 writer.writeAttribute(I18N_TRANSLATE_ATTR,"label_toggle_all",null);
1245 writer.write("toggle all");
1246 writer.endElement("em");
1247
1248 writer.endElement(HTML.LABEL_ATTR);
1249
1250 writer.startElement(HTML.INPUT_ELEM,editor);
1251 writer.writeAttribute(HTML.TYPE_ATTR,"checkbox",null);
1252 writer.writeAttribute(HTML.CLASS_ATTR,"hide-ins-bm",null);
1253 writer.writeAttribute("checked","checked",null);
1254 writer.writeAttribute(HTML.ID_ATTR,"kupu-bm-checkall",null);
1255 writer.endElement(HTML.INPUT_ELEM);
1256
1257 writer.endElement(HTML.DIV_ELEM);
1258
1259 writer.endElement(HTML.DIV_ELEM);
1260
1261 writer.startElement(HTML.DIV_ELEM,editor);
1262 writer.writeAttribute(HTML.CLASS_ATTR,"kupu-bm-paras",null);
1263 writer.write(" ");
1264 writer.endElement(HTML.DIV_ELEM);
1265
1266 writer.endElement(HTML.TD_ELEM);
1267
1268 writer.endElement(HTML.TR_ELEM);
1269
1270 writer.startElement(HTML.TR_ELEM,editor);
1271
1272 writer.startElement(HTML.TD_ELEM,editor);
1273 writer.writeAttribute(HTML.COLSPAN_ATTR,"1",null);
1274 writer.writeAttribute(ROWSPAN_ATTR,"1",null);
1275
1276 writer.startElement(HTML.SELECT_ELEM,editor);
1277 writer.writeAttribute(HTML.ID_ATTR,"kupu-bm-sel2",null);
1278 writer.writeAttribute("size","1",null);
1279 writer.writeAttribute(HTML.CLASS_ATTR,"hide-ins-bm hide-anchor",null);
1280
1281 writer.startElement(HTML.OPTION_ELEM,editor);
1282 writer.writeAttribute(HTML.VALUE_ATTR,"",null);
1283 writer.writeAttribute(I18N_TRANSLATE_ATTR,"opt_2nd_style",null);
1284 writer.write("(optional 2nd style)");
1285 writer.endElement(HTML.OPTION_ELEM);
1286
1287 writer.endElement(HTML.SELECT_ELEM);
1288
1289 writer.endElement(HTML.TD_ELEM);
1290
1291 writer.startElement(HTML.TD_ELEM,editor);
1292 writer.writeAttribute(HTML.COLSPAN_ATTR,"1",null);
1293 writer.writeAttribute(ROWSPAN_ATTR,"1",null);
1294
1295 writer.startElement(HTML.DIV_ELEM,editor);
1296 writer.writeAttribute(HTML.CLASS_ATTR,"kupu-bm-help",null);
1297
1298 writer.startElement(HTML.SPAN_ELEM,editor);
1299 writer.writeAttribute(HTML.CLASS_ATTR,"hide-anchor hide-toc discreet",null);
1300 writer.writeAttribute(I18N_TRANSLATE_ATTR,"create_anchor_link_help",null);
1301 writer.write("Select a paragraph style then choose a paragraph and Ok to insert a link to that location.");
1302
1303 writer.endElement(HTML.SPAN_ELEM);
1304
1305 writer.startElement(HTML.SPAN_ELEM,editor);
1306 writer.writeAttribute(HTML.CLASS_ATTR,"hide-ins-bm hide-anchor discreet",null);
1307 writer.writeAttribute(I18N_TRANSLATE_ATTR,"create_toc_help",null);
1308 writer.write("Select one or two paragraph styles, then Ok to insert a table of contents.");
1309
1310 writer.endElement(HTML.SPAN_ELEM);
1311
1312 writer.startElement(HTML.SPAN_ELEM,editor);
1313 writer.writeAttribute(HTML.CLASS_ATTR,"hide-ins-bm hide-toc discreet",null);
1314 writer.writeAttribute(I18N_TRANSLATE_ATTR,"create_anchor_help",null);
1315 writer.write("Anchors are created for checked paragraphs and");
1316 writer.write("removed for unchecked paragraphs when you press Ok.");
1317 writer.write("Anchors in use on this page may not be deleted.");
1318
1319 writer.endElement(HTML.SPAN_ELEM);
1320
1321 writer.endElement(HTML.DIV_ELEM);
1322
1323 writer.endElement(HTML.TD_ELEM);
1324
1325 writer.endElement(HTML.TR_ELEM);
1326
1327 writer.endElement(HTML.TABLE_ELEM);
1328
1329 writer.startElement(HTML.DIV_ELEM,editor);
1330 writer.writeAttribute(HTML.CLASS_ATTR,"kupu-dialogbuttons",null);
1331
1332 writer.startElement(HTML.BUTTON_ELEM,editor);
1333 writer.writeAttribute(HTML.CLASS_ATTR,"kupu-dialog-button",null);
1334 writer.writeAttribute(HTML.TYPE_ATTR,"button",null);
1335 writer.writeAttribute(HTML.ONCLICK_ATTR,"drawertool.current_drawer.save()",null);
1336 writer.writeAttribute(I18N_TRANSLATE_ATTR,"button_ok",null);
1337 writer.write("Ok");
1338 writer.endElement(HTML.BUTTON_ELEM);
1339
1340 writer.startElement(HTML.BUTTON_ELEM,editor);
1341 writer.writeAttribute(HTML.CLASS_ATTR,"kupu-dialog-button",null);
1342 writer.writeAttribute(HTML.TYPE_ATTR,"button",null);
1343 writer.writeAttribute(HTML.ONCLICK_ATTR,"drawertool.closeDrawer()",null);
1344 writer.writeAttribute(I18N_TRANSLATE_ATTR,"button_cancel",null);
1345 writer.write("Cancel");
1346 writer.endElement(HTML.BUTTON_ELEM);
1347
1348 writer.endElement(HTML.DIV_ELEM);
1349 writer.endElement(HTML.DIV_ELEM);
1350 writer.endElement(HTML.DIV_ELEM);
1351 writer.endElement(HTML.DIV_ELEM);
1352
1353
1354
1355
1356 writer.startElement(HTML.DIV_ELEM, editor);
1357 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolboxes", null);
1358 writer.writeAttribute(HTML.ID_ATTR, "kupu-toolboxes", null);
1359 if( ! editor.isShowAnyToolBox() ){
1360 writer.writeAttribute(HTML.STYLE_ATTR, "display: none", null);
1361 }
1362
1363
1364 writer.startElement(HTML.DIV_ELEM, editor);
1365 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox", null);
1366 writer.writeAttribute(HTML.ID_ATTR, "kupu-toolbox-properties", null);
1367 if( ! editor.isShowPropertiesToolBox() ){
1368 writer.writeAttribute(HTML.STYLE_ATTR, "display: none", null);
1369 }
1370 writer.startElement(HTML.H1_ELEM, editor);
1371 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-heading", null);
1372 writer.writeAttribute(I18N_TRANSLATE_ATTR,"title_properties",null);
1373 writer.write("Properties");
1374 writer.endElement(HTML.H1_ELEM);
1375
1376 writer.startElement(HTML.DIV_ELEM, editor);
1377 writer.startElement(HTML.DIV_ELEM, editor);
1378 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-label", null);
1379 writer.writeAttribute(I18N_TRANSLATE_ATTR,"label_title",null);
1380 writer.write("Title:");
1381 writer.endElement(HTML.DIV_ELEM);
1382 writer.startElement(HTML.INPUT_ELEM, editor);
1383 writer.writeAttribute(HTML.CLASS_ATTR, "wide", null);
1384 writer.writeAttribute(HTML.ID_ATTR, "kupu-properties-title", null);
1385 writer.writeAttribute(HTML.TYPE_ATTR,"text",null);
1386 writer.endElement(HTML.INPUT_ELEM);
1387 writer.startElement(HTML.DIV_ELEM, editor);
1388 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-label", null);
1389 writer.writeAttribute(I18N_TRANSLATE_ATTR,"label_description",null);
1390 writer.write("Description:");
1391 writer.endElement(HTML.DIV_ELEM);
1392 writer.startElement(HTML.TEXTAREA_ELEM, editor);
1393 writer.writeAttribute(HTML.CLASS_ATTR, "wide", null);
1394 writer.writeAttribute(HTML.ID_ATTR, "kupu-properties-description", null);
1395 writer.endElement(HTML.TEXTAREA_ELEM);
1396 writer.endElement(HTML.DIV_ELEM);
1397 writer.endElement(HTML.DIV_ELEM);
1398
1399
1400 writer.startElement(HTML.DIV_ELEM, editor);
1401 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox", null);
1402 writer.writeAttribute(HTML.ID_ATTR, "kupu-toolbox-links", null);
1403 if( ! editor.isShowLinksToolBox() ){
1404 writer.writeAttribute(HTML.STYLE_ATTR, "display: none", null);
1405 }
1406 writer.startElement(HTML.H1_ELEM, editor);
1407 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-heading", null);
1408 writer.writeAttribute(I18N_TRANSLATE_ATTR,"label_links",null);
1409 writer.write("Links");
1410 writer.endElement(HTML.H1_ELEM);
1411
1412 writer.startElement(HTML.DIV_ELEM, editor);
1413 writer.writeAttribute(HTML.ID_ATTR,"kupu-toolbox-addlink",null);
1414
1415 writer.startElement(HTML.DIV_ELEM, editor);
1416 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-label", null);
1417 writer.startElement(HTML.SPAN_ELEM, editor);
1418
1419 writer.writeAttribute(I18N_TRANSLATE_ATTR,"label_link_text",null);
1420 writer.write("Link the highlighted text to this URL:");
1421 writer.endElement(HTML.SPAN_ELEM);
1422 writer.endElement(HTML.DIV_ELEM);
1423
1424 writer.startElement(HTML.INPUT_ELEM, editor);
1425 writer.writeAttribute(HTML.ID_ATTR, "kupu-link-input", null);
1426 writer.writeAttribute(HTML.CLASS_ATTR, "wide", null);
1427 writer.writeAttribute(HTML.TYPE_ATTR, "text", null);
1428 writer.endElement(HTML.INPUT_ELEM);
1429
1430 writer.startElement(HTML.DIV_ELEM, editor);
1431 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-buttons", null);
1432 writer.startElement(HTML.BUTTON_ELEM, editor);
1433 writer.writeAttribute(HTML.TYPE_ATTR, "button", null);
1434 writer.writeAttribute(HTML.ID_ATTR, "kupu-link-button", null);
1435 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-action", null);
1436 writer.writeAttribute(I18N_TRANSLATE_ATTR,"button_makelink",null);
1437 writer.write("Make Link");
1438 writer.endElement(HTML.BUTTON_ELEM);
1439 writer.endElement(HTML.DIV_ELEM);
1440
1441 writer.endElement(HTML.DIV_ELEM);
1442 writer.endElement(HTML.DIV_ELEM);
1443
1444
1445 writer.startElement(HTML.DIV_ELEM, editor);
1446 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox", null);
1447 writer.writeAttribute(HTML.ID_ATTR, "kupu-toolbox-images", null);
1448 if( ! editor.isShowImagesToolBox() ){
1449 writer.writeAttribute(HTML.STYLE_ATTR, "display: none", null);
1450 }
1451 writer.startElement(HTML.H1_ELEM, editor);
1452 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-heading", null);
1453 writer.writeAttribute(I18N_TRANSLATE_ATTR,"title_images",null);
1454 writer.write("Images");
1455 writer.endElement(HTML.H1_ELEM);
1456
1457 writer.startElement(HTML.DIV_ELEM, editor);
1458 writer.startElement(HTML.DIV_ELEM, editor);
1459 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-label", null);
1460 writer.startElement(HTML.SPAN_ELEM, editor);
1461
1462 writer.writeAttribute(I18N_TRANSLATE_ATTR,"label_image_class",null);
1463 writer.write("Image class:");
1464 writer.endElement(HTML.SPAN_ELEM);
1465 writer.endElement(HTML.DIV_ELEM);
1466
1467 writer.startElement(HTML.SELECT_ELEM, editor);
1468 writer.writeAttribute(HTML.CLASS_ATTR, "wide", null);
1469 writer.writeAttribute(HTML.ID_ATTR, "kupu-image-float-select", null);
1470 writeOption(writer, "image-inline", "opt_inline", "Inline", editor);
1471 writeOption(writer, "image-left", "opt_left", "Left", editor);
1472 writeOption(writer, "image-right", "opt_right", "Right", editor);
1473 writer.endElement(HTML.SELECT_ELEM);
1474
1475 writer.startElement(HTML.DIV_ELEM, editor);
1476 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-label", null);
1477 writer.startElement(HTML.SPAN_ELEM, editor);
1478
1479 writer.writeAttribute(I18N_TRANSLATE_ATTR,"label_insert_image_url",null);
1480 writer.write("Insert image at the following URL:");
1481 writer.endElement(HTML.SPAN_ELEM);
1482 writer.endElement(HTML.DIV_ELEM);
1483 writer.startElement(HTML.INPUT_ELEM, editor);
1484 writer.writeAttribute(HTML.ID_ATTR, "kupu-image-input", null);
1485 writer.writeAttribute(HTML.VALUE_ATTR, "kupuimages/kupu_icon.gif", null);
1486 writer.writeAttribute(HTML.CLASS_ATTR, "wide", null);
1487 writer.writeAttribute(HTML.TYPE_ATTR, "text", null);
1488 writer.endElement(HTML.INPUT_ELEM);
1489
1490 writer.startElement(HTML.DIV_ELEM, editor);
1491 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-buttons", null);
1492 writer.startElement(HTML.BUTTON_ELEM, editor);
1493 writer.writeAttribute(HTML.TYPE_ATTR, "button", null);
1494 writer.writeAttribute(HTML.ID_ATTR, "kupu-image-addbutton", null);
1495 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-action", null);
1496 writer.writeAttribute(I18N_TRANSLATE_ATTR,"button_insert_image",null);
1497 writer.write("Insert Image");
1498 writer.endElement(HTML.BUTTON_ELEM);
1499 writer.endElement(HTML.DIV_ELEM);
1500
1501 writer.endElement(HTML.DIV_ELEM);
1502
1503 writer.endElement(HTML.DIV_ELEM);
1504
1505
1506 writer.startElement(HTML.DIV_ELEM, editor);
1507 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox", null);
1508 writer.writeAttribute(HTML.ID_ATTR, "kupu-toolbox-tables", null);
1509 if( ! editor.isShowTablesToolBox() ){
1510 writer.writeAttribute(HTML.STYLE_ATTR, "display: none", null);
1511 }
1512 writer.startElement(HTML.H1_ELEM, editor);
1513 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-heading", null);
1514 writer.writeAttribute(I18N_TRANSLATE_ATTR,"title_tables",null);
1515 writer.write("Tables");
1516 writer.endElement(HTML.H1_ELEM);
1517
1518 writer.startElement(HTML.DIV_ELEM, editor);
1519
1520 writer.startElement(HTML.DIV_ELEM, editor);
1521 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-label", null);
1522 writer.startElement(HTML.SPAN_ELEM, editor);
1523 writer.writeAttribute(I18N_TRANSLATE_ATTR,"label_table_class",null);
1524 writer.write("Table Class:");
1525 writer.endElement(HTML.SPAN_ELEM);
1526 writer.startElement(HTML.SELECT_ELEM, editor);
1527 writer.writeAttribute(HTML.CLASS_ATTR, "wide", null);
1528 writer.writeAttribute(HTML.ID_ATTR, "kupu-table-classchooser", null);
1529 writer.write(' ');
1530 writer.endElement(HTML.SELECT_ELEM);
1531 writer.endElement(HTML.DIV_ELEM);
1532
1533
1534 writer.startElement(HTML.DIV_ELEM, editor);
1535 writer.writeAttribute(HTML.ID_ATTR, "kupu-toolbox-addtable", null);
1536 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-addtable", null);
1537 writer.startElement(HTML.DIV_ELEM, editor);
1538 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-label", null);
1539 writer.writeAttribute(I18N_TRANSLATE_ATTR,"label_rows",null);
1540 writer.write("Rows:");
1541 writer.endElement(HTML.DIV_ELEM);
1542 writer.startElement(HTML.INPUT_ELEM, editor);
1543 writer.writeAttribute(HTML.CLASS_ATTR, "wide", null);
1544 writer.writeAttribute(HTML.TYPE_ATTR, "text", null);
1545 writer.writeAttribute(HTML.ID_ATTR, "kupu-table-newrows", null);
1546 writer.endElement(HTML.INPUT_ELEM);
1547
1548 writer.startElement(HTML.DIV_ELEM, editor);
1549 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-label", null);
1550 writer.writeAttribute(I18N_TRANSLATE_ATTR,"label_columns",null);
1551 writer.write("Columns:");
1552 writer.endElement(HTML.DIV_ELEM);
1553
1554 writer.startElement(HTML.INPUT_ELEM, editor);
1555 writer.writeAttribute(HTML.CLASS_ATTR, "wide", null);
1556 writer.writeAttribute(HTML.TYPE_ATTR, "text", null);
1557 writer.writeAttribute(HTML.ID_ATTR, "kupu-table-newcols", null);
1558 writer.endElement(HTML.INPUT_ELEM);
1559
1560 writer.startElement(HTML.DIV_ELEM, editor);
1561 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-label", null);
1562 writer.startElement(HTML.SPAN_ELEM,editor);
1563 writer.writeAttribute(I18N_TRANSLATE_ATTR,"label_headings",null);
1564 writer.write("Headings:");
1565 writer.endElement(HTML.SPAN_ELEM);
1566 writer.startElement(HTML.INPUT_ELEM, editor);
1567 writer.writeAttribute(HTML.NAME_ATTR, "kupu-table-makeheader", null);
1568 writer.writeAttribute(HTML.ID_ATTR, "kupu-table-makeheader", null);
1569 writer.writeAttribute(HTML.TYPE_ATTR, "checkbox", null);
1570 writer.endElement(HTML.INPUT_ELEM);
1571 writer.startElement(HTML.LABEL_ELEM, editor);
1572 writer.writeAttribute(HTML.FOR_ATTR, "kupu-table-makeheader", null);
1573 writer.writeAttribute(I18N_TRANSLATE_ATTR,"label_create",null);
1574 writer.write("Create");
1575 writer.endElement(HTML.LABEL_ELEM);
1576 writer.endElement(HTML.DIV_ELEM);
1577
1578 writer.startElement(HTML.DIV_ELEM, editor);
1579 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-buttons", null);
1580 writeButton(writer, "kupu-table-fixall-button", "Fix Table", editor,"button_fix_table");
1581 writeButton(writer, "kupu-table-addtable-button", "Add Table", editor,"button_add_table");
1582 writer.endElement(HTML.DIV_ELEM);
1583 writer.endElement(HTML.DIV_ELEM);
1584
1585
1586 writer.startElement(HTML.DIV_ELEM, editor);
1587 writer.writeAttribute(HTML.ID_ATTR, "kupu-toolbox-edittable", null);
1588 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-edittable", null);
1589
1590 writer.startElement(HTML.DIV_ELEM, editor);
1591 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-label", null);
1592 writer.startElement(HTML.SPAN_ELEM,editor);
1593 writer.writeAttribute(I18N_TRANSLATE_ATTR,"label_col_align",null);
1594 writer.write("Col Align:");
1595 writer.endElement(HTML.SPAN_ELEM);
1596
1597 writer.startElement(HTML.SELECT_ELEM, editor);
1598 writer.writeAttribute(HTML.CLASS_ATTR, "wide", null);
1599 writer.writeAttribute(HTML.ID_ATTR, "kupu-table-alignchooser", null);
1600 writeOption(writer, "left","tabledrawer_left_option", "Left", editor);
1601 writeOption(writer, "center","tabledrawer_center_option", "Center", editor);
1602 writeOption(writer, "right","tabledrawer_right_option", "Right", editor);
1603 writer.endElement(HTML.SELECT_ELEM);
1604 writer.endElement(HTML.DIV_ELEM);
1605
1606 writer.startElement(HTML.DIV_ELEM,editor);
1607 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-buttons", null);
1608 writer.startElement(HTML.BR_ELEM,editor);
1609 writer.writeAttribute("clear","none",null);
1610 writer.endElement(HTML.BR_ELEM);
1611
1612 writeButton(writer, "kupu-table-addcolumn-button", "Add Column", editor,"button_add_column");
1613 writeButton(writer, "kupu-table-delcolumn-button", "Remove Column", editor,"button_remove_column");
1614
1615 writer.startElement(HTML.BR_ELEM,editor);
1616 writer.writeAttribute("clear","none",null);
1617 writer.endElement(HTML.BR_ELEM);
1618
1619 writeButton(writer, "kupu-table-addrow-button", "Add Row", editor,"button_add_row");
1620 writeButton(writer, "kupu-table-delrow-button", "Remove Row", editor,"button_remove_row");
1621 writeButton(writer, "kupu-table-fix-button", "Fix Table", editor,"button_fix_table");
1622 writeButton(writer, "kupu-table-del-button", "Remove Table", editor,"button_remove_table");
1623 writer.endElement(HTML.DIV_ELEM);
1624
1625 writer.endElement(HTML.DIV_ELEM);
1626
1627 writer.endElement(HTML.DIV_ELEM);
1628 writer.endElement(HTML.DIV_ELEM);
1629
1630
1631 writer.startElement(HTML.DIV_ELEM, editor);
1632 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox", null);
1633 writer.writeAttribute(HTML.ID_ATTR, "kupu-toolbox-cleanupexpressions", null);
1634 if( ! editor.isShowCleanupExpressionsToolBox() ){
1635 writer.writeAttribute(HTML.STYLE_ATTR, "display: none", null);
1636 }
1637 writer.startElement(HTML.H1_ELEM, editor);
1638 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-heading", null);
1639 writer.writeAttribute(I18N_TRANSLATE_ATTR,"title_cleanup_expressions",null);
1640 writer.write("Cleanup expressions");
1641 writer.endElement(HTML.H1_ELEM);
1642
1643 writer.startElement(HTML.DIV_ELEM, editor);
1644 writer.startElement(HTML.DIV_ELEM, editor);
1645 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-label", null);
1646 writer.startElement(HTML.SPAN_ELEM,editor);
1647
1648 writer.writeAttribute(I18N_TRANSLATE_ATTR,"label_select_cleanup",null);
1649 writer.write("Select a cleanup action:");
1650 writer.endElement(HTML.SPAN_ELEM);
1651 writer.endElement(HTML.DIV_ELEM);
1652 writer.startElement(HTML.SELECT_ELEM,editor);
1653 writer.writeAttribute(HTML.ID_ATTR, "kupucleanupexpressionselect", null);
1654 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-st", null);
1655 writer.endElement(HTML.SELECT_ELEM);
1656 writer.startElement(HTML.DIV_ELEM,editor);
1657 writer.writeAttribute(HTML.STYLE_ATTR,"text-align: center",null);
1658 writer.startElement(HTML.BUTTON_ELEM,editor);
1659 writer.writeAttribute(HTML.TYPE_ATTR,"button",null);
1660 writer.writeAttribute(HTML.ID_ATTR,"kupucleanupexpressionbutton",null);
1661 writer.writeAttribute(HTML.CLASS_ATTR,"kupu-toolbox-action",null);
1662 writer.writeAttribute(I18N_TRANSLATE_ATTR,"perform_action",null);
1663 writer.write("Perform action");
1664 writer.endElement(HTML.BUTTON_ELEM);
1665 writer.endElement(HTML.DIV_ELEM);
1666 writer.endElement(HTML.DIV_ELEM);
1667 writer.endElement(HTML.DIV_ELEM);
1668
1669
1670 writer.startElement(HTML.DIV_ELEM, editor);
1671 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox", null);
1672 writer.writeAttribute(HTML.ID_ATTR, "kupu-toolbox-debug", null);
1673 if( ! editor.isShowDebugToolBox() ){
1674 writer.writeAttribute(HTML.STYLE_ATTR, "display: none", null);
1675 }
1676 writer.startElement(HTML.H1_ELEM, editor);
1677 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-heading", null);
1678 writer.writeAttribute(I18N_TRANSLATE_ATTR,"title_debug_log",null);
1679 writer.write("Debug Log");
1680 writer.endElement(HTML.H1_ELEM);
1681 writer.startElement(HTML.DIV_ELEM, editor);
1682 writer.writeAttribute(HTML.ID_ATTR, "kupu-toolbox-debuglog", null);
1683 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-toolbox-label", null);
1684 writer.endElement(HTML.DIV_ELEM);
1685 writer.endElement(HTML.DIV_ELEM);
1686
1687 writer.endElement(HTML.DIV_ELEM);
1688
1689
1690 writer.startElement(HTML.TABLE_ELEM, editor);
1691 writer.writeAttribute(HTML.ID_ATTR, "kupu-colorchooser", null);
1692 writer.writeAttribute(HTML.CLASS_ATTR,"kupu-colorchooser",null);
1693 writer.writeAttribute(HTML.CELLPADDING_ATTR, "0", null);
1694 writer.writeAttribute(HTML.CELLSPACING_ATTR, "0", null);
1695 writer.writeAttribute(HTML.STYLE_ATTR, "position: fixed; border-style: solid; border-color: black; border-width: 1px;", null);
1696 writer.endElement(HTML.TABLE_ELEM);
1697
1698
1699 writer.startElement(HTML.DIV_ELEM, editor);
1700 if( !editor.isShowAnyToolBox() ){
1701 writer.writeAttribute(HTML.STYLE_ATTR, "margin-right: 0.3em", null);
1702 }
1703 if( editor.getStyle()!=null ){
1704
1705 addResource.addInlineStyleAtPosition(
1706 context, AddResource.HEADER_BEGIN,
1707 "#kupu-editor{height: inherit;}\n"+
1708 "div.kupu-fulleditor{"+editor.getStyle()+"}");
1709 }
1710 writer.writeAttribute(HTML.CLASS_ATTR,
1711 "kupu-editorframe"+(editor.getStyleClass()==null ? "" : " "+editor.getStyleClass()), null);
1712
1713 writer.startElement(HTML.IFRAME_ELEM, editor);
1714 writer.writeAttribute(HTML.ID_ATTR, getIFrameID(editor, context), null);
1715 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-editor-iframe", null);
1716 writer.writeAttribute(HTML.FRAMEBORDER_ATTR, "0", null);
1717 writer.writeAttribute(HTML.SCROLLING_ATTR, "auto", null);
1718 writer.writeAttribute(HTML.ONMOUSEOVER_ATTR, "myFacesKupuReactivateDesignMode(this)", null);
1719 writer.writeAttribute(HTML.ONFOCUS_ATTR, "myFacesKupuReactivateDesignMode(this)", null);
1720
1721 writer.endElement(HTML.IFRAME_ELEM);
1722
1723 writer.startElement(HTML.TEXTAREA_ELEM, editor);
1724 writer.writeAttribute(HTML.CLASS_ATTR, "kupu-editor-textarea", null);
1725 writer.writeAttribute(HTML.ID_ATTR, "kupu-editor-textarea", null);
1726 writer.write(' ');
1727 writer.endElement(HTML.TEXTAREA_ELEM);
1728 writer.endElement(HTML.DIV_ELEM);
1729
1730 writer.endElement(HTML.DIV_ELEM);
1731
1732 String text = editor.getValueAsHtmlDocument( context );
1733 String encodedText = text == null ? "" : JavascriptUtils.encodeString( text );
1734
1735 String resourceBaseURL = addResource.getResourceUri(context, InputHtmlRenderer.class, null);
1736
1737 writer.startElement(HTML.SCRIPT_ELEM, editor);
1738 writer.writeAttribute(HTML.SCRIPT_TYPE_ATTR, HTML.SCRIPT_TYPE_TEXT_JAVASCRIPT, null);
1739 writer.write("myFacesKupuSet(" +
1740 "\""+encodedText+"\"," +
1741 "\""+clientId+"\"," +
1742 "\""+formId+"\"," +
1743 "\""+resourceBaseURL+"\"" +
1744 ");");
1745 writer.endElement(HTML.SCRIPT_ELEM);
1746 }
1747
1748 static private String getIFrameID(InputHtml editor, FacesContext context){
1749 return editor.getClientId(context)+"_iframe";
1750 }
1751
1752 static private void writeTag(ResponseWriter writer, String tagName, String tagBody, UIComponent component) throws IOException{
1753 writer.startElement(tagName, component);
1754 writer.writeText(tagBody, null);
1755 writer.endElement(tagName);
1756 }
1757
1758 static private void writeButton(ResponseWriter writer, String classAttr, String title, String accessKey, UIComponent component, String i18nattributes) throws IOException{
1759 writeButton(writer, classAttr, title, accessKey, classAttr+"-button", component, i18nattributes);
1760 }
1761
1762 static private void writeButton(ResponseWriter writer, String classAttr, String title, String accessKey, String id, UIComponent component, String i18nattributes) throws IOException{
1763 writeButton(writer, classAttr, title, accessKey, id, true, component,i18nattributes);
1764 }
1765
1766 static private void writeButton(ResponseWriter writer, String classAttr, String title, String accessKey, String id, boolean display, UIComponent component, String i18nattributes) throws IOException{
1767 writer.startElement(HTML.BUTTON_ELEM, component);
1768
1769 writer.writeAttribute(HTML.TYPE_ATTR, "button", null);
1770 writer.writeAttribute(HTML.CLASS_ATTR, classAttr, null);
1771 writer.writeAttribute(HTML.ID_ATTR, id, null);
1772 writer.writeAttribute(HTML.TITLE_ATTR, title, null);
1773 writer.writeAttribute(I18N_ATTRIBUTES_ATTR, i18nattributes==null?"title":i18nattributes, null);
1774 if( ! display )
1775 writer.writeAttribute(HTML.STYLE_ATTR, "display: none", null);
1776 if( accessKey != null ){
1777 writer.writeAttribute(HTML.ACCESSKEY_ATTR, accessKey, null);
1778 }
1779 writer.write(" ");
1780 writer.endElement(HTML.BUTTON_ELEM);
1781 }
1782
1783 static private void writeButton(ResponseWriter writer, String id, String text, UIComponent component, String i18nattributes) throws IOException{
1784 writer.startElement(HTML.BUTTON_ELEM, component);
1785 writer.writeAttribute(HTML.TYPE_ATTR, "button", null);
1786 writer.writeAttribute(HTML.ID_ATTR, id, null);
1787 writer.writeAttribute(I18N_ATTRIBUTES_ATTR, i18nattributes, null);
1788 writer.write(text);
1789 writer.endElement(HTML.BUTTON_ELEM);
1790 }
1791
1792 static private void writeOption(ResponseWriter writer, String value, String translate, String body, UIComponent component) throws IOException{
1793 writer.startElement(HTML.OPTION_ELEM,component);
1794
1795 writer.writeAttribute(HTML.VALUE_ATTR, value, null);
1796 writer.writeAttribute(I18N_TRANSLATE_ATTR, translate, null);
1797 writer.write(body);
1798 writer.endElement(HTML.OPTION_ELEM);
1799 }
1800
1801 public void decode(FacesContext facesContext, UIComponent uiComponent) {
1802 RendererUtils.checkParamValidity(facesContext, uiComponent, InputHtml.class);
1803 InputHtml editor = (InputHtml) uiComponent;
1804
1805 Map paramMap = facesContext.getExternalContext().getRequestParameterMap();
1806 String clientId = uiComponent.getClientId(facesContext);
1807
1808 if (paramMap.containsKey(clientId)) {
1809
1810 String submitedText = (String)paramMap.get(clientId);
1811 String htmlText = useFallback(editor) ? HTMLEncoder.encode(submitedText, true, true) : submitedText;
1812
1813 editor.setSubmittedValue( htmlText );
1814 } else {
1815 log.warn(HtmlRendererUtils.NON_SUBMITTED_VALUE_WARNING + " Component : "+
1816 RendererUtils.getPathToComponent( editor ));
1817 }
1818 }
1819
1820 public Object getConvertedValue(FacesContext facesContext, UIComponent uiComponent, Object submittedValue) throws ConverterException {
1821 RendererUtils.checkParamValidity(facesContext, uiComponent, InputHtml.class);
1822 InputHtml editor = (InputHtml) uiComponent;
1823 String submittedDocument = editor.getValueFromDocument((String)submittedValue);
1824 return RendererUtils.getConvertedUIOutputValue(facesContext, editor, submittedDocument);
1825 }
1826 }