Передача параметра в модуль GWT - PullRequest
2 голосов
/ 26 августа 2010

Мой пользовательский интерфейс модуля GWT представляет собой одну кнопку (, например, AddThis / ShareThis Sharing Button ), а все остальное выполняется на всплывающих панелях JS. Id указывается как глобальная переменная JS ( т.е. myConfig.id = 22 * ​​1006 *) и получение этого идентификатора в модуле GWT с использованием метода JSNI ( $ wnd.myConfig.id ).

ПРИМЕЧАНИЕ: Существует также еще один параметр прохода, который задается

<div id='gwtRootPanel' alt='6323'> </div>
<script type="text/javascript" language="javascript" src="com.test.gwt.Common/com.test.gwt.Common.nocache.js"></script>

& в коде GWT

RootPanel rootPanel = RootPanel.get("gwtRootPanel");
System.out.println("Passed Value " + DOM.getElementAttribute(rootPanel.getElement(), "alt"));

Оба способа работают нормально только для 1 кнопки на странице. Теперь я не вижу возможности использовать этот параметр для добавления нескольких кнопок (, например, одна и та же кнопка «Поделиться» для каждого блога в списке блогов ) на одной странице HTML. ..

Если используется 1-й способ,
Как получить разные значения для одного и того же скомпилированного файла GWT?

При использовании 2-го способа
Невозможно использовать тот же

...

Любой намек или решение?

Приветствия
Nachiket

1 Ответ

1 голос
/ 26 августа 2010

Вероятно, не стоит использовать несколько точек входа на одной странице.Вместо этого используйте одну точку входа и разместите маркеры на своей странице там, где вы хотите, чтобы она взаимодействовала.

Поэтому, если вы хотите вставить виджет кнопки GWT в определенные элементы div, вы можете реализовать свой HTML-код следующим образом:

<div id="marker1"></div>
<!-- more stuff -->
<div id="marker2"></div>
<!-- etc. -->

Тогда точка входа в ваше единственное приложение GWT вставит свои собственные кнопки из цикла, например:

public void onModuleLoad() {
  int i = 1;
  do {
    String id = "marker" + i;
    RootPanel rp = RootPanel.get(id);
    if (rp == null) {
      break;
    }
    rp.add(new MyWidget(getContextData(id)));
    i++;
  } while (true);
}

native String getContextData(String id) /*-{
  return $wnd.myConfig[id];
}-*/;

Так что в этом примере будет итерация по html-поиску соответствующих идентификаторов, а затем вставкавиджеты как дочерние элементы есть.Кроме того, он использует идентификатор в качестве контекста для получения дополнительных данных, которые находятся на странице.

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