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 кажется пустым???