Почему HTMLPanel не позволяет добавлять (виджет)? - PullRequest
4 голосов
/ 20 июня 2010

HTMLPanel наследует метод add(Widget) от com.google.gwt.user.client.ui.Panel, но не переопределяет его.Это приводит к UnsupportedOperationException при вызове.

Будут ли какие-либо проблемы, если он переопределяет его, как это делает FlowPanel?

@Override
public void add(Widget w) {
  add(w, getElement());
}

Справочная информация: HTMLPanel может быть создан быстрее, чем FlowPanelinnerHTML против манипуляций с DOM).Но после создания он в настоящее время не позволяет динамически добавлять элементы *.

* за исключением не очень полезного метода add(Widget widget, String id), который делает невозможным использованиеHTMLPanel дважды в документе.

Ответы [ 3 ]

3 голосов
/ 20 июня 2010

Я не уверен, что причина в том, чтобы не включать тривиальное переопределение, но вы можете сами позвонить add(Widget, Element), если хотите.

Мне кажется, одна из идей HTMLPanel заключается в том, что вы можете добавить виджет в любом месте DOM панели, поэтому для этого нужны методы add (), которые заставляют вас указать, где именно добавить виджет. Таким образом, вы можете создать HTMLPanel с таким сложным HTML, как: "<div>...<div id="container"/>...<div>", затем вызвать add(myWidget, "container").

кстати: add(Widget w, String id) это просто метод убеждения. Он не создает новый элемент с идентификатором, но ищет элемент с идентификатором и вызывает add(Widget, Element).

1 голос
/ 21 мая 2012

Этот метод был добавлен в HTMLPanel в r9462 17 декабря 2010 года.

0 голосов
/ 21 июня 2010

Относительно добавления (виджет виджета, идентификатор строки) - этот метод работает только для элементов, определенных в HTMLPanel - как указано в javadoc (и я также проверил это на своем компьютере).

Как я понимаю из javadoc addAndReplaceElement (виджет виджета, идентификатор java.lang.String) будет работать с любым элементом, но все равно будет прикреплять новый виджет к HTMLPanel (в основном HTMLPanel будет обрабатывать события, в то время как будет определяться физическое местоположение виджетов по расположению удаляемого элемента).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...