1 /** 2 * Copyright 2010 The Kuali Foundation Licensed under the 3 * Educational Community License, Version 2.0 (the "License"); you may 4 * not use this file except in compliance with the License. You may 5 * obtain a copy of the License at 6 * 7 * http://www.osedu.org/licenses/ECL-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, 10 * software distributed under the License is distributed on an "AS IS" 11 * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 12 * or implied. See the License for the specific language governing 13 * permissions and limitations under the License. 14 */ 15 16 package org.kuali.student.common.ui.client.widgets; 17 18 19 20 import org.kuali.student.common.ui.client.widgets.impl.KSRichEditorImpl; 21 22 import com.google.gwt.core.client.GWT; 23 import com.google.gwt.event.dom.client.BlurHandler; 24 import com.google.gwt.event.dom.client.FocusHandler; 25 import com.google.gwt.event.shared.HandlerRegistration; 26 import com.google.gwt.user.client.ui.HasText; 27 import com.google.gwt.user.client.ui.RichTextArea; 28 29 /** 30 * KSRichEditor is the KS default rich text editor. The editor provides a variety of text formatting options commonly 31 * found in traditional text editors. It also features a toolbar which only shows when the editor is in focus and a pop-out 32 * window which allows a user to have more space to work (and can be resized). Any changes made in the pop-out 33 * editor are reflected in the original editor when the user is finished. 34 * 35 * TODO implement i18n 36 */ 37 public class KSRichEditor extends KSRichEditorAbstract implements HasText{ 38 private KSRichEditorAbstract richEditor = GWT.create(KSRichEditorImpl.class); 39 40 /** 41 * Creates a new KSRichEditor. 42 * 43 */ 44 public KSRichEditor(){ 45 initWidget(richEditor); 46 } 47 48 /** 49 * Gets the RichTextArea widget used for text input in this rich editor widget. 50 * 51 * @return the RichTextArea used in this editor 52 */ 53 public RichTextArea getRichTextArea(){ 54 return richEditor.getRichTextArea(); 55 } 56 57 /** 58 * Get the HTML version of the text input (retains all formatting). 59 * 60 * @return the HTML version of the input text (with formatting) 61 */ 62 public String getHTML() { 63 return richEditor.getHTML(); 64 } 65 66 /** 67 * Get the plain text version of the text input (retains NO formatting). 68 * 69 * @return the plain text version of the input text (no formatting) 70 */ 71 public String getText() { 72 return richEditor.getText(); 73 } 74 75 /** 76 * Set the HTML of this rich text editor. 77 * 78 * @param html the HTML to set this editor to 79 */ 80 public void setHTML(String html) { 81 richEditor.setHTML(html); 82 } 83 84 /** 85 * Set the text of this rich text editor (this is text with no formatting). 86 * 87 * @param the plain text to set this editor to 88 */ 89 public void setText(String text) { 90 richEditor.setText(text); 91 } 92 93 94 @Override 95 public void setStyleName(String text) { 96 richEditor.setStyleName(text); 97 } 98 99 100 @Override 101 public HandlerRegistration addBlurHandler(BlurHandler handler) { 102 return richEditor.addBlurHandler(handler); 103 } 104 105 106 @Override 107 public HandlerRegistration addFocusHandler(FocusHandler handler) { 108 return richEditor.addFocusHandler(handler); 109 } 110 111 @Override 112 protected void init() { 113 richEditor.init(); 114 115 } 116 }