GWT якорь для размещения? - PullRequest
5 голосов
/ 08 марта 2011

Как в приложении GWT 2.1+ как сгенерировать ссылку на место для внешнего потребления?

Например, скажем, я хочу создать ссылку на Place1. Для внутреннего потребления я мог бы сделать presenter.goTo(new Place1("token")). Как я могу превратить это в Anchor или какую-то ссылку, которую пользователи могут вставить в свой браузер?

Ответы [ 5 ]

5 голосов
/ 12 марта 2011

Вот как бы я это сделал:

final Place1 place = new Place1("token");
Anchor anchor = new Anchor("go to place 1", "#" + placeHistoryMapper.getToken(place));
anchor.addClickHandler(new ClickHandler() {
  public void onClick(ClickEvent event) {
    placeController.goTo(place);
    event.preventDefault();
  }
});
2 голосов
/ 13 марта 2011

Насколько я знаю, поскольку я новичок в GWT, если вы используете Hyperlink вместо Anchor, вам не нужно будет писать обработчик событий. Он перенаправит вас к месту и автоматически обработает историю.

1 голос
/ 13 апреля 2012

Вы можете преобразовать место в строку токена, используя PlaceHistoryMapper.См. https://developers.google.com/web-toolkit/doc/latest/DevGuideMvpActivitiesAndPlaces для получения подробной информации о том, как реализовать дизайн MVP в GWT.

final YourImplementationOfPlaceHistoryMapper placeHistoryMapper = GWT.create(YourImplementationOfPlaceHistoryMapper.class);

final Hyperlink link = new Hyperlink("A Link To A Place", placeHistoryMapper.getToken(new YourNewPlace()));
0 голосов
/ 21 февраля 2013

MyView.ui.xml:

<g:InlineHyperlink ui:field="link">Link</g:InlineHyperlink>

MyView.java:

@UiField InlineHyperlink link;

public MyView() {
    // ...
    link.setTargetHistoryToken(getPlaceHistoryMapper().
            getToken(new Place1("token")));
    // ...
}
0 голосов
/ 08 марта 2011

Если вы уже сопоставили токен с местом, просто создайте якорь со свойством href, равным токену.

Anchor anchor = new Anchor("go to place1 ", "token");
...