1 24 package org.riotfamily.forms.element; 25 26 import java.io.PrintWriter ; 27 import java.net.URL ; 28 29 import org.riotfamily.common.markup.Html; 30 import org.riotfamily.common.markup.TagWriter; 31 import org.riotfamily.forms.DHTMLElement; 32 import org.riotfamily.forms.TemplateUtils; 33 import org.riotfamily.forms.resource.FormResource; 34 import org.riotfamily.forms.resource.ResourceElement; 35 import org.riotfamily.forms.resource.ScriptResource; 36 37 38 41 public class TinyMCE extends AbstractTextElement 42 implements ResourceElement, DHTMLElement { 43 44 private int rows = 10; 45 46 public TinyMCE() { 47 setStyleClass("richtext"); 48 } 49 50 public void setRows(int rows) { 51 this.rows = rows; 52 } 53 54 public void renderInternal(PrintWriter writer) { 55 TagWriter tag = new TagWriter(writer); 56 tag.start(Html.TEXTAREA) 57 .attribute(Html.COMMON_CLASS, getStyleClass()) 58 .attribute(Html.COMMON_ID, getId()) 59 .attribute(Html.INPUT_NAME, getParamName()) 60 .attribute(Html.TEXTAREA_ROWS, rows) 61 .body(getText()).end(); 62 } 63 64 public FormResource getResource() { 65 return new ScriptResource("tiny_mce/strict_mode_fix.js", "tinyMCE.addControl", 66 new ScriptResource("tiny_mce/tiny_mce_src.js", "tinyMCE")); 67 } 68 69 public String getLanguage() { 70 String lang = getFormContext().getLocale().getLanguage().toLowerCase(); 71 URL languageScript = getClass().getResource( 72 "/org/riotfamily/resources/tiny_mce/langs/" + lang + ".js"); 73 74 if (languageScript == null) { 75 lang = "en"; 76 } 77 return lang; 78 } 79 80 public String getInitScript() { 81 return TemplateUtils.getInitScript(this); 82 } 83 84 } 85 | Popular Tags |