mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-15 08:41:01 +00:00
Merge branch 'design2015' of ssh://sapsailing.com/home/trac/git into design2015
# By Steffen Schaefer # Via Steffen Schaefer * 'design2015' of ssh://sapsailing.com/home/trac/git: Updated state markers Header selection is now based on the active Place
This commit is contained in:
commit
5d5c77de02
25 files changed
+188
-40
No files matched your search
+1
-1
@@ -46,7 +46,7 @@ public class SmartphoneApplicationClientFactory extends AbstractApplicationClien
|
||||
}
|
||||
|
||||
private SmartphoneApplicationClientFactory(EventBus eventBus, PlaceController placeController) {
|
||||
super(new TabletAndDesktopApplicationView(new HomePlacesNavigator(placeController)), eventBus, placeController);
|
||||
super(new TabletAndDesktopApplicationView(new HomePlacesNavigator(placeController), eventBus), eventBus, placeController);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+1
-1
@@ -46,7 +46,7 @@ public class TabletAndDesktopApplicationClientFactory extends AbstractApplicatio
|
||||
}
|
||||
|
||||
private TabletAndDesktopApplicationClientFactory(EventBus eventBus, PlaceController placeController) {
|
||||
super(new TabletAndDesktopApplicationView(new HomePlacesNavigator(placeController)), eventBus, placeController);
|
||||
super(new TabletAndDesktopApplicationView(new HomePlacesNavigator(placeController), eventBus), eventBus, placeController);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+3
-2
@@ -7,6 +7,7 @@ import com.google.gwt.user.client.ui.AcceptsOneWidget;
|
||||
import com.google.gwt.user.client.ui.Composite;
|
||||
import com.google.gwt.user.client.ui.SimplePanel;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.google.web.bindery.event.shared.EventBus;
|
||||
import com.sap.sailing.gwt.home.client.shared.footer.Footer;
|
||||
import com.sap.sailing.gwt.home.client.shared.header.Header;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
@@ -34,8 +35,8 @@ public class TabletAndDesktopApplicationView extends Composite implements Applic
|
||||
@UiField
|
||||
SimplePanel mainContentPanel;
|
||||
|
||||
public TabletAndDesktopApplicationView(HomePlacesNavigator navigator) {
|
||||
headerPanel = new Header(navigator);
|
||||
public TabletAndDesktopApplicationView(HomePlacesNavigator navigator, EventBus eventBus) {
|
||||
headerPanel = new Header(navigator, eventBus);
|
||||
footerPanel = new Footer(navigator);
|
||||
initWidget(uiBinder.createAndBindUi(this));
|
||||
}
|
||||
|
||||
+1
-1
@@ -23,7 +23,7 @@ import com.sap.sailing.gwt.ui.client.LeaderboardUpdateListener;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardPanel;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettings;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardUrlSettings;
|
||||
import com.sap.sailing.gwt.ui.shared.eventview.EventViewDTO.EventState;
|
||||
import com.sap.sailing.gwt.ui.shared.general.EventState;
|
||||
import com.sap.sse.gwt.shared.GwtHttpRequestUtils;
|
||||
|
||||
/**
|
||||
|
||||
+1
-1
@@ -72,7 +72,7 @@ public class EventsOverviewRecentYear extends Composite {
|
||||
// this.trackedRacesCount.setInnerText("tbd.");
|
||||
for (EventListEventDTO eventDTO : events) {
|
||||
PlaceNavigation<EventDefaultPlace> eventNavigation = navigator.getEventNavigation(eventDTO.getId().toString(), eventDTO.getBaseURL(), eventDTO.isOnRemoteServer());
|
||||
RecentEventTeaser recentEvent = new RecentEventTeaser(eventNavigation, eventDTO);
|
||||
RecentEventTeaser recentEvent = new RecentEventTeaser(eventNavigation, eventDTO, eventDTO.getState().getListStateMarker());
|
||||
recentEventsTeaserPanel.add(recentEvent);
|
||||
}
|
||||
headerDiv.addDomHandler(new ClickHandler() {
|
||||
|
||||
+3
-2
@@ -8,6 +8,7 @@ import com.google.gwt.user.client.ui.Widget;
|
||||
import com.sap.sailing.gwt.home.client.app.PlaceNavigation;
|
||||
import com.sap.sailing.gwt.home.client.shared.event.EventTeaser;
|
||||
import com.sap.sailing.gwt.ui.shared.general.EventMetadataDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.general.LabelType;
|
||||
|
||||
public class RecentEventTeaser extends Composite {
|
||||
|
||||
@@ -18,8 +19,8 @@ public class RecentEventTeaser extends Composite {
|
||||
|
||||
@UiField(provided = true) EventTeaser eventTeaser;
|
||||
|
||||
public RecentEventTeaser(final PlaceNavigation<?> placeNavigation, final EventMetadataDTO event) {
|
||||
eventTeaser = new EventTeaser(placeNavigation, event);
|
||||
public RecentEventTeaser(final PlaceNavigation<?> placeNavigation, final EventMetadataDTO event, LabelType labelType) {
|
||||
eventTeaser = new EventTeaser(placeNavigation, event, labelType);
|
||||
initWidget(uiBinder.createAndBindUi(this));
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -20,9 +20,9 @@ import com.sap.sailing.gwt.home.client.shared.LabelTypeUtil;
|
||||
import com.sap.sailing.gwt.home.client.shared.sharing.SharingButtons;
|
||||
import com.sap.sailing.gwt.home.client.shared.sharing.SharingMetadataProvider;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.shared.eventview.EventViewDTO.EventState;
|
||||
import com.sap.sailing.gwt.ui.shared.fakeseries.EventSeriesViewDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.general.EventMetadataDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.general.EventState;
|
||||
|
||||
public class SeriesHeader extends Composite {
|
||||
private static SeriesHeaderUiBinder uiBinder = GWT.create(SeriesHeaderUiBinder.class);
|
||||
|
||||
+1
-1
@@ -47,7 +47,7 @@ public class SeriesEventsTabView extends Composite implements SeriesTabView<Seri
|
||||
|
||||
for (EventMetadataDTO eventOfSeries : currentPresenter.getCtx().getSeriesDTO().getEvents()) {
|
||||
final PlaceNavigation<EventDefaultPlace> eventNavigation = currentPresenter.getEventNavigation(eventOfSeries.getId());
|
||||
RecentEventTeaser eventTeaser = new RecentEventTeaser(eventNavigation, eventOfSeries);
|
||||
RecentEventTeaser eventTeaser = new RecentEventTeaser(eventNavigation, eventOfSeries, eventOfSeries.getState().getStateMarker());
|
||||
eventsContainer.add(eventTeaser);
|
||||
}
|
||||
|
||||
|
||||
+3
-2
@@ -44,9 +44,11 @@ public class EventTeaser extends Composite {
|
||||
}
|
||||
|
||||
private static RecentEventUiBinder uiBinder = GWT.create(RecentEventUiBinder.class);
|
||||
private final LabelType labelType;
|
||||
|
||||
public EventTeaser(final PlaceNavigation<?> placeNavigation, final EventMetadataDTO event) {
|
||||
public EventTeaser(final PlaceNavigation<?> placeNavigation, final EventMetadataDTO event, LabelType labelType) {
|
||||
this.event = event;
|
||||
this.labelType = labelType;
|
||||
|
||||
EventTeaserResources.INSTANCE.css().ensureInjected();
|
||||
initWidget(uiBinder.createAndBindUi(this));
|
||||
@@ -68,7 +70,6 @@ public class EventTeaser extends Composite {
|
||||
|
||||
private void updateUI() {
|
||||
SafeHtml safeHtmlEventName = LongNamesUtil.breakLongName(event.getDisplayName());
|
||||
LabelType labelType = event.getState().getStateMarker();
|
||||
if(labelType.isRendered()) {
|
||||
eventNameWithState.setInnerSafeHtml(safeHtmlEventName);
|
||||
LabelTypeUtil.renderLabelType(eventState, labelType);
|
||||
|
||||
+32
@@ -8,6 +8,7 @@ import com.google.gwt.event.dom.client.ClickEvent;
|
||||
import com.google.gwt.event.dom.client.KeyCodes;
|
||||
import com.google.gwt.event.dom.client.KeyPressEvent;
|
||||
import com.google.gwt.event.dom.client.KeyPressHandler;
|
||||
import com.google.gwt.place.shared.Place;
|
||||
import com.google.gwt.uibinder.client.UiBinder;
|
||||
import com.google.gwt.uibinder.client.UiField;
|
||||
import com.google.gwt.uibinder.client.UiHandler;
|
||||
@@ -18,14 +19,19 @@ import com.google.gwt.user.client.ui.Composite;
|
||||
import com.google.gwt.user.client.ui.TextBox;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.google.gwt.user.client.ui.impl.HyperlinkImpl;
|
||||
import com.google.web.bindery.event.shared.EventBus;
|
||||
import com.sap.sailing.gwt.common.client.i18n.TextMessages;
|
||||
import com.sap.sailing.gwt.home.client.app.HomePlacesNavigator;
|
||||
import com.sap.sailing.gwt.home.client.app.PlaceNavigation;
|
||||
import com.sap.sailing.gwt.home.client.place.event.EventPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.event2.AbstractEventPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.events.EventsPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.regatta.RegattaPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.searchresult.SearchResultPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.solutions.SolutionsPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.solutions.SolutionsPlace.SolutionsNavigationTabs;
|
||||
import com.sap.sailing.gwt.home.client.place.start.StartPlace;
|
||||
import com.sap.sse.gwt.client.mvp.PlaceChangedEvent;
|
||||
|
||||
public class Header extends Composite {
|
||||
@UiField Anchor startPageLink;
|
||||
@@ -50,6 +56,18 @@ public class Header extends Composite {
|
||||
|
||||
private static HeaderUiBinder uiBinder = GWT.create(HeaderUiBinder.class);
|
||||
|
||||
public Header(final HomePlacesNavigator navigator, EventBus eventBus) {
|
||||
this(navigator);
|
||||
|
||||
eventBus.addHandler(PlaceChangedEvent.TYPE, new PlaceChangedEvent.Handler() {
|
||||
|
||||
@Override
|
||||
public void onPlaceChanged(PlaceChangedEvent event) {
|
||||
updateActiveLink(event.getNewPlace());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public Header(final HomePlacesNavigator navigator) {
|
||||
this.navigator = navigator;
|
||||
|
||||
@@ -104,6 +122,20 @@ public class Header extends Composite {
|
||||
navigator.goToPlace(searchResultNavigation);
|
||||
}
|
||||
|
||||
private void updateActiveLink(Place place) {
|
||||
if(place instanceof EventsPlace
|
||||
|| place instanceof AbstractEventPlace
|
||||
|| place instanceof EventPlace
|
||||
|| place instanceof RegattaPlace) {
|
||||
setActiveLink(eventsPageLink);
|
||||
} else if(place instanceof StartPlace) {
|
||||
setActiveLink(startPageLink);
|
||||
} else if(place instanceof SolutionsPlace) {
|
||||
setActiveLink(solutionsPageLink);
|
||||
}
|
||||
// TODO add more rules
|
||||
}
|
||||
|
||||
private void setActiveLink(Anchor link) {
|
||||
final String activeStyle = HeaderResources.INSTANCE.css().sitenavigation_linkactive();
|
||||
for (Anchor l : links) {
|
||||
|
||||
+2
@@ -471,6 +471,8 @@ public interface StringMessages extends com.sap.sse.gwt.client.StringMessages, c
|
||||
String overallLeaderboardSelection();
|
||||
String errorTryingToObtainOverallLeaderboards(String message);
|
||||
String finished();
|
||||
String upcoming();
|
||||
String inProgress();
|
||||
String passedTo(String name);
|
||||
String gapChangeSinceLegStartInSeconds();
|
||||
String sideToWhichMarkAtLegStartWasRounded();
|
||||
|
||||
+2
@@ -505,6 +505,8 @@ showRankChart=Show rank chart
|
||||
overallLeaderboardSelection=Overall Leaderboard
|
||||
errorTryingToObtainOverallLeaderboards=Error trying to obtain overall leaderboards: {0}
|
||||
finished=finished
|
||||
upcoming=upcoming
|
||||
inProgress=in progress
|
||||
passedTo=passed to {0}
|
||||
gapChangeSinceLegStartInSeconds=Gap Change
|
||||
gapChangeSinceLegStartInSecondsTooltip=The change of the gap to the leader since the last leg start.\nA negative number means that the gap was decreased;\na positive number means that it was increased.
|
||||
|
||||
+2
@@ -506,6 +506,8 @@ showRankChart=Rang-Diagramm anzeigen
|
||||
overallLeaderboardSelection=Gesamtergebnisse
|
||||
errorTryingToObtainOverallLeaderboards=Fehler beim Laden der Gesamtergebnisse: {0}
|
||||
finished=beendet
|
||||
upcoming=demnächst
|
||||
inProgress=aktiv
|
||||
passedTo=an {0} gerundet
|
||||
gapChangeSinceLegStartInSeconds=Gap Änderung
|
||||
gapChangeSinceLegStartInSecondsTooltip=Die Änderung des Abstands zum Führenden seit dem letzten Schenkelstart.\nEine negative Zahl bedeutet,\ndass sich der Abstand verringert hat; eine positive Zahl bedeutet, dass er sich vergrößert hat.
|
||||
|
||||
+2
@@ -494,6 +494,8 @@ showRankChart=Показать таблицу рейтинга
|
||||
overallLeaderboardSelection=Итоговая таблица лидеров
|
||||
errorTryingToObtainOverallLeaderboards=Ошибка получения итоговых таблиц лидеров: {0}
|
||||
finished=Завершившиеся
|
||||
upcoming=upcoming
|
||||
inProgress=in progress
|
||||
passedTo=Переданные в {0}
|
||||
gapChangeSinceLegStartInSeconds=Изменение отставания
|
||||
gapChangeSinceLegStartInSecondsTooltip=Изменение отставания от лидера с начала последнего этапа.\nОтрицательное число означает, что отставание уменьшилось;\nположительное число означает, что отставание увеличилось.
|
||||
|
||||
+1
-1
@@ -336,7 +336,6 @@ import com.sap.sailing.gwt.ui.shared.WindTrackInfoDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.eventlist.EventListEventDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.eventlist.EventListViewDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.eventview.EventViewDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.eventview.EventViewDTO.EventState;
|
||||
import com.sap.sailing.gwt.ui.shared.eventview.EventViewDTO.EventType;
|
||||
import com.sap.sailing.gwt.ui.shared.eventview.HasRegattaMetadata.RegattaState;
|
||||
import com.sap.sailing.gwt.ui.shared.eventview.RegattaMetadataDTO;
|
||||
@@ -344,6 +343,7 @@ import com.sap.sailing.gwt.ui.shared.fakeseries.EventSeriesViewDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.fakeseries.EventSeriesViewDTO.EventSeriesState;
|
||||
import com.sap.sailing.gwt.ui.shared.general.EventMetadataDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.general.EventReferenceDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.general.EventState;
|
||||
import com.sap.sailing.gwt.ui.shared.media.MediaDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.media.MediaEntryDTO;
|
||||
import com.sap.sailing.manage2sail.EventResultDescriptor;
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@ package com.sap.sailing.gwt.ui.shared.eventlist;
|
||||
import java.util.ArrayList;
|
||||
|
||||
import com.google.gwt.user.client.rpc.IsSerializable;
|
||||
import com.sap.sailing.gwt.ui.shared.eventview.EventViewDTO.EventState;
|
||||
import com.sap.sailing.gwt.ui.shared.general.EventState;
|
||||
|
||||
public class EventListViewDTO implements IsSerializable {
|
||||
|
||||
|
||||
+1
-15
@@ -8,7 +8,7 @@ import com.sap.sailing.gwt.ui.shared.EventDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.LeaderboardGroupDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.VenueDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.general.EventReferenceDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.general.LabelType;
|
||||
import com.sap.sailing.gwt.ui.shared.general.EventState;
|
||||
|
||||
public class EventViewDTO extends EventDTO {
|
||||
private static final long serialVersionUID = -7100030301376959817L;
|
||||
@@ -17,20 +17,6 @@ public class EventViewDTO extends EventDTO {
|
||||
SINGLE_REGATTA, MULTI_REGATTA, SERIES_EVENT
|
||||
}
|
||||
|
||||
public enum EventState {
|
||||
PLANNED(LabelType.NONE), UPCOMING(LabelType.UPCOMMING), RUNNING(LabelType.LIVE), FINISHED(LabelType.FINISHED);
|
||||
|
||||
private final LabelType stateMarker;
|
||||
|
||||
private EventState(LabelType stateMarker) {
|
||||
this.stateMarker = stateMarker;
|
||||
}
|
||||
|
||||
public LabelType getStateMarker() {
|
||||
return stateMarker;
|
||||
}
|
||||
}
|
||||
|
||||
private ArrayList<RegattaMetadataDTO> regattas = new ArrayList<>();
|
||||
private ArrayList<EventReferenceDTO> eventsOfSeries = new ArrayList<>();
|
||||
|
||||
|
||||
+1
-1
@@ -7,7 +7,7 @@ import com.sap.sailing.gwt.ui.shared.general.LabelType;
|
||||
public interface HasRegattaMetadata {
|
||||
|
||||
public enum RegattaState {
|
||||
UPCOMING(LabelType.UPCOMMING), RUNNING(LabelType.LIVE), FINISHED(LabelType.NONE), UNKNOWN(LabelType.NONE);
|
||||
UPCOMING(LabelType.UPCOMING), RUNNING(LabelType.LIVE), FINISHED(LabelType.FINISHED), UNKNOWN(LabelType.NONE);
|
||||
|
||||
private final LabelType stateMarker;
|
||||
|
||||
|
||||
+1
-1
@@ -21,7 +21,7 @@ public class EventSeriesViewDTO implements IsSerializable {
|
||||
private String leaderboardId;
|
||||
|
||||
public enum EventSeriesState {
|
||||
UPCOMING(LabelType.UPCOMMING), RUNNING(LabelType.LIVE), FINISHED(LabelType.FINISHED), IN_PROGRESS(LabelType.NONE);
|
||||
UPCOMING(LabelType.UPCOMING), RUNNING(LabelType.LIVE), FINISHED(LabelType.FINISHED), IN_PROGRESS(LabelType.PROGRESS);
|
||||
|
||||
private final LabelType stateMarker;
|
||||
|
||||
|
||||
-3
@@ -2,11 +2,8 @@ package com.sap.sailing.gwt.ui.shared.general;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import com.sap.sailing.gwt.ui.shared.eventview.EventViewDTO.EventState;
|
||||
|
||||
public class EventMetadataDTO extends EventReferenceDTO {
|
||||
|
||||
// private EventType type;
|
||||
private EventState state;
|
||||
private String venue;
|
||||
private String venueCountry;
|
||||
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
package com.sap.sailing.gwt.ui.shared.general;
|
||||
|
||||
|
||||
public enum EventState {
|
||||
PLANNED(LabelType.NONE), UPCOMING(LabelType.UPCOMING), RUNNING(LabelType.LIVE, LabelType.LIVE), FINISHED(LabelType.FINISHED);
|
||||
|
||||
private final LabelType stateMarker;
|
||||
private final LabelType listStateMarker;
|
||||
|
||||
private EventState(LabelType stateMarker) {
|
||||
this(stateMarker, LabelType.NONE);
|
||||
}
|
||||
|
||||
private EventState(LabelType stateMarker, LabelType listStateMarker) {
|
||||
this.stateMarker = stateMarker;
|
||||
this.listStateMarker = listStateMarker;
|
||||
}
|
||||
|
||||
public LabelType getStateMarker() {
|
||||
return stateMarker;
|
||||
}
|
||||
|
||||
public LabelType getListStateMarker() {
|
||||
return listStateMarker;
|
||||
}
|
||||
}
|
||||
+3
-5
@@ -25,15 +25,13 @@ public enum LabelType {
|
||||
PROGRESS("progress") {
|
||||
@Override
|
||||
public String getLabel() {
|
||||
// return StringMessages.INSTANCE.;
|
||||
return null;
|
||||
return StringMessages.INSTANCE.inProgress();
|
||||
}
|
||||
},
|
||||
UPCOMMING("upcomming") {
|
||||
UPCOMING("upcoming") {
|
||||
@Override
|
||||
public String getLabel() {
|
||||
// return StringMessages.INSTANCE.;
|
||||
return null;
|
||||
return StringMessages.INSTANCE.upcoming();
|
||||
}
|
||||
},
|
||||
NEW_("new") {
|
||||
|
||||
@@ -11,6 +11,7 @@ import com.google.web.bindery.event.shared.EventBus;
|
||||
import com.sap.sse.gwt.client.AbstractEntryPoint;
|
||||
import com.sap.sse.gwt.client.StringMessages;
|
||||
import com.sap.sse.gwt.client.mvp.impl.ActivityMapperRegistry;
|
||||
import com.sap.sse.gwt.client.mvp.impl.CustomActivityManager;
|
||||
|
||||
/**
|
||||
* Subclasses implement their {@link EntryPoint#onModuleLoad()} by delegating to
|
||||
@@ -46,7 +47,7 @@ public abstract class AbstractMvpEntryPoint<S extends StringMessages> extends Ab
|
||||
activityMapperRegistry.addActivityMapper(activityMapper);
|
||||
}
|
||||
EventBus eventBus = clientFactory.getEventBus();
|
||||
ActivityManager activityManager = new ActivityManager(activityMapperRegistry, eventBus);
|
||||
ActivityManager activityManager = new CustomActivityManager(activityMapperRegistry, eventBus);
|
||||
activityManager.setDisplay(clientFactory.getContent());
|
||||
|
||||
// Start PlaceHistoryHandler with our PlaceHistoryMapper
|
||||
|
||||
@@ -0,0 +1,73 @@
|
||||
/*
|
||||
* Copyright 2010 Google Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||
* use this file except in compliance with the License. You may obtain a copy of
|
||||
* the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing permissions and limitations under
|
||||
* the License.
|
||||
*/
|
||||
package com.sap.sse.gwt.client.mvp;
|
||||
|
||||
import com.google.gwt.event.shared.EventHandler;
|
||||
import com.google.gwt.event.shared.GwtEvent;
|
||||
import com.google.gwt.place.shared.Place;
|
||||
|
||||
/**
|
||||
* Event thrown after the place changed.
|
||||
*/
|
||||
public class PlaceChangedEvent extends GwtEvent<PlaceChangedEvent.Handler> {
|
||||
|
||||
/**
|
||||
* Implemented by handlers of PlaceChangedEvent.
|
||||
*/
|
||||
public interface Handler extends EventHandler {
|
||||
/**
|
||||
* Called when a {@link PlaceChangedEvent} is fired.
|
||||
*
|
||||
* @param event the {@link PlaceChangedEvent}
|
||||
*/
|
||||
void onPlaceChanged(PlaceChangedEvent event);
|
||||
}
|
||||
|
||||
/**
|
||||
* A singleton instance of Type<Handler>.
|
||||
*/
|
||||
public static final Type<Handler> TYPE = new Type<Handler>();
|
||||
|
||||
private final Place newPlace;
|
||||
|
||||
/**
|
||||
* Constructs a PlaceChangedEvent for the given {@link Place}.
|
||||
*
|
||||
* @param newPlace a {@link Place} instance
|
||||
*/
|
||||
public PlaceChangedEvent(Place newPlace) {
|
||||
this.newPlace = newPlace;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type<Handler> getAssociatedType() {
|
||||
return TYPE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the new {@link Place}.
|
||||
*
|
||||
* @return a {@link Place} instance
|
||||
*/
|
||||
public Place getNewPlace() {
|
||||
return newPlace;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dispatch(Handler handler) {
|
||||
handler.onPlaceChanged(this);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package com.sap.sse.gwt.client.mvp.impl;
|
||||
|
||||
import com.google.gwt.activity.shared.ActivityManager;
|
||||
import com.google.gwt.activity.shared.ActivityMapper;
|
||||
import com.google.gwt.place.shared.PlaceChangeEvent;
|
||||
import com.google.web.bindery.event.shared.EventBus;
|
||||
import com.sap.sse.gwt.client.mvp.PlaceChangedEvent;
|
||||
|
||||
public class CustomActivityManager extends ActivityManager {
|
||||
|
||||
private EventBus eventBus;
|
||||
|
||||
public CustomActivityManager(ActivityMapper mapper, EventBus eventBus) {
|
||||
super(mapper, eventBus);
|
||||
this.eventBus = eventBus;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPlaceChange(PlaceChangeEvent event) {
|
||||
super.onPlaceChange(event);
|
||||
eventBus.fireEvent(new PlaceChangedEvent(event.getNewPlace()));
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user