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:
Papick Garcia Taboada committed 2015-03-17 14:54:14 +01:00
commit 5d5c77de02
25 files changed
+188 -40

No files matched your search

@@ -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
@@ -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
@@ -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));
}
@@ -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;
/**
@@ -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() {
@@ -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));
}
@@ -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);
@@ -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);
}
@@ -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);
@@ -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) {
@@ -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();
@@ -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.
@@ -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.
@@ -494,6 +494,8 @@ showRankChart=Показать таблицу рейтинга
overallLeaderboardSelection=Итоговая таблица лидеров
errorTryingToObtainOverallLeaderboards=Ошибка получения итоговых таблиц лидеров: {0}
finished=Завершившиеся
upcoming=upcoming
inProgress=in progress
passedTo=Переданные в {0}
gapChangeSinceLegStartInSeconds=Изменение отставания
gapChangeSinceLegStartInSecondsTooltip=Изменение отставания от лидера с начала последнего этапа.\nОтрицательное число означает, что отставание уменьшилось;\nположительное число означает, что отставание увеличилось.
@@ -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;
@@ -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 {
@@ -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<>();
@@ -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;
@@ -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;
@@ -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;
@@ -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;
}
}
@@ -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&lt;Handler&gt;.
*/
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()));
}
}