123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- /*
- @ITMillApache2LicenseForJavaFiles@
- */
-
- package com.itmill.toolkit.terminal.gwt.client.ui.richtextarea;
-
- import com.google.gwt.user.client.ui.ChangeListener;
- import com.google.gwt.user.client.ui.Composite;
- import com.google.gwt.user.client.ui.FlowPanel;
- import com.google.gwt.user.client.ui.FocusListener;
- import com.google.gwt.user.client.ui.HTML;
- import com.google.gwt.user.client.ui.RichTextArea;
- import com.google.gwt.user.client.ui.Widget;
- import com.itmill.toolkit.terminal.gwt.client.ApplicationConnection;
- import com.itmill.toolkit.terminal.gwt.client.Paintable;
- import com.itmill.toolkit.terminal.gwt.client.UIDL;
- import com.itmill.toolkit.terminal.gwt.client.ui.Field;
-
- /**
- * This class represents a basic text input field with one row.
- *
- * @author IT Mill Ltd.
- *
- */
- public class IRichTextArea extends Composite implements Paintable, Field,
- ChangeListener, FocusListener {
-
- /**
- * The input node CSS classname.
- */
- public static final String CLASSNAME = "i-richtextarea";
-
- protected String id;
-
- protected ApplicationConnection client;
-
- private boolean immediate = false;
-
- private RichTextArea rta = new RichTextArea();
-
- private IRichTextToolbar formatter = new IRichTextToolbar(rta);
-
- private HTML html = new HTML();
-
- private final FlowPanel fp = new FlowPanel();
-
- private boolean enabled = true;
-
- public IRichTextArea() {
- fp.add(formatter);
-
- rta.setWidth("100%");
- rta.addFocusListener(this);
-
- fp.add(rta);
-
- initWidget(fp);
- setStyleName(CLASSNAME);
-
- }
-
- public void setEnabled(boolean enabled) {
- if (this.enabled != enabled) {
- rta.setEnabled(enabled);
- if (enabled) {
- fp.remove(html);
- fp.add(rta);
- } else {
- html.setHTML(rta.getHTML());
- fp.remove(rta);
- fp.add(html);
- }
-
- this.enabled = enabled;
- }
- }
-
- public void updateFromUIDL(UIDL uidl, ApplicationConnection client) {
- this.client = client;
- id = uidl.getId();
-
- if (uidl.hasVariable("text")) {
- rta.setHTML(uidl.getStringVariable("text"));
- }
- setEnabled(!uidl.getBooleanAttribute("disabled"));
-
- if (client.updateComponent(this, uidl, true)) {
- return;
- }
-
- immediate = uidl.getBooleanAttribute("immediate");
-
- }
-
- public void onChange(Widget sender) {
- if (client != null && id != null) {
- client.updateVariable(id, "text", rta.getText(), immediate);
- }
- }
-
- public void onFocus(Widget sender) {
-
- }
-
- public void onLostFocus(Widget sender) {
- final String html = rta.getHTML();
- client.updateVariable(id, "text", html, immediate);
-
- }
-
- }
|