You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

VRichTextAreaPaintable.java 2.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. /*
  2. @VaadinApache2LicenseForJavaFiles@
  3. */
  4. package com.vaadin.terminal.gwt.client.ui.richtextarea;
  5. import com.google.gwt.core.client.GWT;
  6. import com.google.gwt.user.client.Event;
  7. import com.google.gwt.user.client.ui.Widget;
  8. import com.vaadin.terminal.gwt.client.ApplicationConnection;
  9. import com.vaadin.terminal.gwt.client.UIDL;
  10. import com.vaadin.terminal.gwt.client.ui.ShortcutActionHandler.BeforeShortcutActionListener;
  11. import com.vaadin.terminal.gwt.client.ui.AbstractComponentConnector;
  12. public class VRichTextAreaPaintable extends AbstractComponentConnector implements
  13. BeforeShortcutActionListener {
  14. @Override
  15. public void updateFromUIDL(final UIDL uidl, ApplicationConnection client) {
  16. getWidget().client = client;
  17. getWidget().id = uidl.getId();
  18. if (uidl.hasVariable("text")) {
  19. getWidget().currentValue = uidl
  20. .getStringVariable("text");
  21. if (getWidget().rta.isAttached()) {
  22. getWidget().rta
  23. .setHTML(getWidget().currentValue);
  24. } else {
  25. getWidget().html
  26. .setHTML(getWidget().currentValue);
  27. }
  28. }
  29. if (isRealUpdate(uidl)) {
  30. getWidget().setEnabled(!getState().isDisabled());
  31. }
  32. super.updateFromUIDL(uidl, client);
  33. if (!isRealUpdate(uidl)) {
  34. return;
  35. }
  36. getWidget().setReadOnly(getState().isReadOnly());
  37. getWidget().immediate = getState().isImmediate();
  38. int newMaxLength = uidl.hasAttribute("maxLength") ? uidl
  39. .getIntAttribute("maxLength") : -1;
  40. if (newMaxLength >= 0) {
  41. if (getWidget().maxLength == -1) {
  42. getWidget().keyPressHandler = getWidget().rta
  43. .addKeyPressHandler(getWidget());
  44. }
  45. getWidget().maxLength = newMaxLength;
  46. } else if (getWidget().maxLength != -1) {
  47. getWidget().getElement().setAttribute("maxlength", "");
  48. getWidget().maxLength = -1;
  49. getWidget().keyPressHandler.removeHandler();
  50. }
  51. if (uidl.hasAttribute("selectAll")) {
  52. getWidget().selectAll();
  53. }
  54. }
  55. public void onBeforeShortcutAction(Event e) {
  56. getWidget().synchronizeContentToServer();
  57. }
  58. @Override
  59. public VRichTextArea getWidget() {
  60. return (VRichTextArea) super.getWidget();
  61. };
  62. @Override
  63. protected Widget createWidget() {
  64. return GWT.create(VRichTextArea.class);
  65. }
  66. }