GWT RichTextArea Обходной путь только для чтения

RichTextArea GWT не имеет метода, чтобы сделать его "ReadOnly". Есть метод setEnabled(), но если вы вызываете setEnabled(false), он не работает.

Я пытаюсь обойти это, это должно работать. Моя идея состоит в том, чтобы заменить RichTextArea для этого поведения HTML-виджетом.

Проблема в том, что если я использую виджет HTML для установки исходного содержимого RichTextArea, на него будут влиять все стили моего веб-приложения.

RichTextArea достигает этого, оборачивая содержимое внутри IFrame.

Поэтому я пытаюсь имитировать это, делая что-то вроде этого:

public class RichTextAreaReadOnly extends Composite
{
    protected HTML instance;

    public RichTextAreaReadOnly() 
    {
        this.instance = new HTML();
        this.initWidget(this.instance);
    }

    public void setHTML(String html)
    {
        this.instance.setHTML("<iframe class=\"gwt-RichTextAreaReadOnly\">"
                        + "<html>"
                        + "<head></head>"
                        + "<body>"
                        + html
                        + "</body>"
                        + "</html>"
                        + "</iframe>");
    }   
}

Проблема в том, что по какой-то странной причине тело кажется пустым.

Если я попробую это:

public void setHTML(String html)
{
    this.instance.setHTML("<html>"
                        + "<head></head>"
                        + "<body>"
                        + html
                        + "</body>"
                        + "</html>");
}

(примечание: без тега iframe)

Это работает, но стиль неправильный, потому что на него влияют стили, которых не должно быть.

Любая идея, почему, когда я использую HTML.setHTML() для создания IFrame, тег body кажется пустым???

0 ответов

Другие вопросы по тегам