mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-16 17:21:00 +00:00
finished recent and upcoming events
This commit is contained in:
1 parent
ec151ba514
commit
5e052bcd23
12 files changed
+151
-41
No files matched your search
+14
@@ -1,6 +1,8 @@
|
||||
package com.sap.sailing.gwt.home.client.place.events;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -37,6 +39,11 @@ public abstract class AbstractEventsView extends Composite implements EventsView
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for(List<EventBaseDTO> eventsPerYear: recentEventsOrderedByYear.values()) {
|
||||
Collections.sort(eventsPerYear, EVENTS_BY_DESCENDING_DATE_COMPARATOR);
|
||||
}
|
||||
Collections.sort(upcomingEvents, EVENTS_BY_DESCENDING_DATE_COMPARATOR);
|
||||
updateEventsUI();
|
||||
}
|
||||
|
||||
@@ -49,4 +56,11 @@ public abstract class AbstractEventsView extends Composite implements EventsView
|
||||
public List<EventBaseDTO> getUpcomingEvents() {
|
||||
return upcomingEvents;
|
||||
}
|
||||
|
||||
public static Comparator<EventBaseDTO> EVENTS_BY_DESCENDING_DATE_COMPARATOR = new Comparator<EventBaseDTO>() {
|
||||
@Override
|
||||
public int compare(EventBaseDTO e1, EventBaseDTO e2) {
|
||||
return e2.endDate.compareTo(e1.endDate);
|
||||
}
|
||||
};
|
||||
}
|
||||
-4
@@ -24,7 +24,6 @@ import com.google.gwt.view.client.ListDataProvider;
|
||||
import com.google.gwt.view.client.ProvidesKey;
|
||||
import com.google.gwt.view.client.SelectionModel;
|
||||
import com.google.gwt.view.client.SingleSelectionModel;
|
||||
import com.sap.sailing.gwt.home.client.place.event.EventPlace;
|
||||
import com.sap.sailing.gwt.ui.shared.ClickableSafeHtmlCell;
|
||||
import com.sap.sailing.gwt.ui.shared.EventDTO;
|
||||
import com.sap.sse.common.Util;
|
||||
@@ -46,8 +45,6 @@ public class EventsTable extends Composite {
|
||||
@UiField(provided = true)
|
||||
SimplePager pager;
|
||||
|
||||
private final EventsActivity activity;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
@@ -55,7 +52,6 @@ public class EventsTable extends Composite {
|
||||
* the constants
|
||||
*/
|
||||
public EventsTable(EventsActivity activity) {
|
||||
this.activity = activity;
|
||||
initTable();
|
||||
initWidget(uiBinder.createAndBindUi(this));
|
||||
}
|
||||
|
||||
+13
-6
@@ -5,8 +5,9 @@ import com.google.gwt.event.dom.client.ClickEvent;
|
||||
import com.google.gwt.uibinder.client.UiBinder;
|
||||
import com.google.gwt.uibinder.client.UiField;
|
||||
import com.google.gwt.uibinder.client.UiHandler;
|
||||
import com.google.gwt.user.client.ui.Hyperlink;
|
||||
import com.google.gwt.user.client.ui.Anchor;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.sap.sailing.gwt.home.client.HomeResources;
|
||||
import com.sap.sailing.gwt.home.client.app.PlaceNavigator;
|
||||
import com.sap.sailing.gwt.home.client.place.events.recent.EventsOverviewRecent;
|
||||
import com.sap.sailing.gwt.home.client.place.events.upcoming.EventsOverviewUpcoming;
|
||||
@@ -14,18 +15,21 @@ import com.sap.sailing.gwt.home.client.place.events.upcoming.EventsOverviewUpcom
|
||||
public class TabletAndDesktopEventsView extends AbstractEventsView {
|
||||
private static EventsPageViewUiBinder uiBinder = GWT.create(EventsPageViewUiBinder.class);
|
||||
|
||||
private final HomeResources homeRes = GWT.create(HomeResources.class);
|
||||
|
||||
interface EventsPageViewUiBinder extends UiBinder<Widget, TabletAndDesktopEventsView> {
|
||||
}
|
||||
|
||||
@UiField(provided=true) EventsOverviewRecent recentEventsWidget;
|
||||
@UiField(provided=true) EventsOverviewUpcoming upcomingEventsWidget;
|
||||
@UiField Hyperlink recentEventsLink;
|
||||
@UiField Hyperlink upcomingEventsLink;
|
||||
@UiField Anchor recentEventsLink;
|
||||
@UiField Anchor upcomingEventsLink;
|
||||
|
||||
public TabletAndDesktopEventsView(PlaceNavigator navigator) {
|
||||
super();
|
||||
recentEventsWidget = new EventsOverviewRecent(navigator);
|
||||
upcomingEventsWidget = new EventsOverviewUpcoming(navigator);
|
||||
upcomingEventsWidget.setVisible(false);
|
||||
|
||||
initWidget(uiBinder.createAndBindUi(this));
|
||||
}
|
||||
@@ -33,16 +37,19 @@ public class TabletAndDesktopEventsView extends AbstractEventsView {
|
||||
@UiHandler("recentEventsLink")
|
||||
void recentsEventsClicked(ClickEvent event) {
|
||||
recentEventsWidget.setVisible(true);
|
||||
|
||||
// set style buttoninactive
|
||||
|
||||
upcomingEventsWidget.setVisible(false);
|
||||
|
||||
recentEventsLink.getElement().removeClassName(homeRes.mainCss().buttoninactive());
|
||||
upcomingEventsLink.getElement().addClassName(homeRes.mainCss().buttoninactive());
|
||||
}
|
||||
|
||||
@UiHandler("upcomingEventsLink")
|
||||
void upcomingEventsClicked(ClickEvent event) {
|
||||
recentEventsWidget.setVisible(false);
|
||||
upcomingEventsWidget.setVisible(true);
|
||||
|
||||
recentEventsLink.getElement().addClassName(homeRes.mainCss().buttoninactive());
|
||||
upcomingEventsLink.getElement().removeClassName(homeRes.mainCss().buttoninactive());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+2
-2
@@ -20,8 +20,8 @@
|
||||
<div class="{style.eventsoverviewnavigation}">
|
||||
<div class="{res.mainCss.grid}">
|
||||
<div class="{res.mediaCss.small6} {res.mediaCss.columns}">
|
||||
<g:Hyperlink ui:field="recentEventsLink" text="Recent Events" styleName="{res.mainCss.button} {style.eventsoverviewnavigation_button}" />
|
||||
<g:Hyperlink ui:field="upcomingEventsLink" text="Upcoming Schedule" styleName="{res.mainCss.button} {style.eventsoverviewnavigation_button}" />
|
||||
<g:Anchor ui:field="recentEventsLink" text="Recent Events" styleName="{res.mainCss.button} {style.eventsoverviewnavigation_button}" />
|
||||
<g:Anchor ui:field="upcomingEventsLink" text="Upcoming Schedule" styleName="{res.mainCss.button} {res.mainCss.buttoninactive} {style.eventsoverviewnavigation_button}" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
+18
-1
@@ -1,16 +1,21 @@
|
||||
package com.sap.sailing.gwt.home.client.place.events.upcoming;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.uibinder.client.UiBinder;
|
||||
import com.google.gwt.uibinder.client.UiField;
|
||||
import com.google.gwt.user.client.ui.Composite;
|
||||
import com.google.gwt.user.client.ui.HTMLPanel;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.sap.sailing.gwt.home.client.app.PlaceNavigator;
|
||||
import com.sap.sailing.gwt.ui.shared.EventBaseDTO;
|
||||
|
||||
public class EventsOverviewUpcoming extends Composite {
|
||||
|
||||
@UiField HTMLPanel eventsPlaceholder;
|
||||
|
||||
interface EventsOverviewUiBinder extends UiBinder<Widget, EventsOverviewUpcoming> {
|
||||
}
|
||||
|
||||
@@ -18,15 +23,27 @@ public class EventsOverviewUpcoming extends Composite {
|
||||
|
||||
private final PlaceNavigator navigator;
|
||||
|
||||
private final List<UpcomingEvent> upcomingEventComposites;
|
||||
|
||||
public EventsOverviewUpcoming(PlaceNavigator navigator) {
|
||||
this.navigator = navigator;
|
||||
upcomingEventComposites = new ArrayList<UpcomingEvent>();
|
||||
|
||||
EventsOverviewUpcomingResources.INSTANCE.css().ensureInjected();
|
||||
initWidget(uiBinder.createAndBindUi(this));
|
||||
}
|
||||
|
||||
public void updateEvents(List<EventBaseDTO> events) {
|
||||
|
||||
eventsPlaceholder.clear();
|
||||
upcomingEventComposites.clear();
|
||||
|
||||
for(EventBaseDTO event: events) {
|
||||
UpcomingEvent upcomingEvent = new UpcomingEvent(navigator);
|
||||
|
||||
upcomingEvent.setEvent(event);
|
||||
upcomingEventComposites.add(upcomingEvent);
|
||||
eventsPlaceholder.add(upcomingEvent);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
+7
-14
@@ -8,12 +8,11 @@
|
||||
<g:HTMLPanel>
|
||||
|
||||
<!-- Page displays all upcoming events-->
|
||||
<!--
|
||||
<div class="{local_res.css.eventsoverviewupcoming}">{#each upcomingYear in upcomingYears}
|
||||
<div class="{local_res.css.eventsoverviewupcoming}">
|
||||
<div class="{local_res.css.eventsoverviewupcoming}">
|
||||
<div class="{res.mainCss.grid}">
|
||||
<div class="{res.mediaCss.small12} {res.mediaCss.columns}">
|
||||
<h2>{upcomingYear.title}</h2>
|
||||
<h2>Coming soon</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div class="{local_res.css.eventslist_header}">
|
||||
@@ -23,22 +22,16 @@
|
||||
<div class="{res.mediaCss.small4} {res.mediaCss.columns} {local_res.css.eventslist_header_item}">Location</div>
|
||||
<div class="{res.mediaCss.small2} {res.mediaCss.columns} {local_res.css.eventslist_header_item} {local_res.css.eventslist_header_itemseries}">Series</div>
|
||||
</div>
|
||||
</div>{#each event in upcomingYear.events}
|
||||
<div class="{local_res.css.eventslist_event}"><a href="event-overview.html" class="{res.mainCss.grid} {local_res.css.eventslist_event_link}">
|
||||
<div class="{res.mediaCss.small3} {res.mediaCss.columns} {local_res.css.eventslist_event_item}">{event.date}</div>
|
||||
<div class="{res.mediaCss.small3} {res.mediaCss.columns} {local_res.css.eventslist_event_item} {local_res.css.eventslist_event_itemname}">{event.name}</div>
|
||||
<div class="{res.mediaCss.small4} {res.mediaCss.columns} {local_res.css.eventslist_event_item}">{event.venue.name}</div>
|
||||
<div class="{res.mediaCss.small2} {res.mediaCss.columns} {local_res.css.eventslist_event_item} {local_res.css.eventslist_event_itemseries}">
|
||||
<div data-labeltype="{event.series.id}" class="{res.mainCss.label}">{event.series.name}</div>
|
||||
</div></a></div>{/each}
|
||||
</div>{/each}
|
||||
</div>
|
||||
<g:HTMLPanel ui:field='eventsPlaceholder' >
|
||||
<!-- the upcoming event widgets will be inserted here -->
|
||||
</g:HTMLPanel>
|
||||
</div>
|
||||
<div class="{local_res.css.eventsoverviewupcoming_teaser}">
|
||||
<div class="{res.mainCss.grid}">
|
||||
<div class="{res.mediaCss.small12} {res.mediaCss.columns}">More Events To Be Announced Soon!</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
-->
|
||||
|
||||
</g:HTMLPanel>
|
||||
</ui:UiBinder>
|
||||
+48
@@ -0,0 +1,48 @@
|
||||
package com.sap.sailing.gwt.home.client.place.events.upcoming;
|
||||
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.dom.client.SpanElement;
|
||||
import com.google.gwt.uibinder.client.UiBinder;
|
||||
import com.google.gwt.uibinder.client.UiField;
|
||||
import com.google.gwt.user.client.ui.Composite;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.sap.sailing.gwt.home.client.app.PlaceNavigator;
|
||||
import com.sap.sailing.gwt.home.client.shared.EventDatesFormatterUtil;
|
||||
import com.sap.sailing.gwt.ui.shared.EventBaseDTO;
|
||||
|
||||
public class UpcomingEvent extends Composite {
|
||||
|
||||
@UiField SpanElement eventName;
|
||||
@UiField SpanElement seriesName;
|
||||
@UiField SpanElement venueName;
|
||||
@UiField SpanElement eventStartDate;
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
private final PlaceNavigator navigator;
|
||||
|
||||
private EventBaseDTO event;
|
||||
|
||||
|
||||
interface UpcomingEventUiBinder extends UiBinder<Widget, UpcomingEvent> {
|
||||
}
|
||||
|
||||
private static UpcomingEventUiBinder uiBinder = GWT.create(UpcomingEventUiBinder.class);
|
||||
|
||||
public UpcomingEvent(PlaceNavigator navigator) {
|
||||
this.navigator = navigator;
|
||||
|
||||
EventsOverviewUpcomingResources.INSTANCE.css().ensureInjected();
|
||||
initWidget(uiBinder.createAndBindUi(this));
|
||||
}
|
||||
|
||||
public void setEvent(EventBaseDTO event) {
|
||||
this.event = event;
|
||||
updateUI();
|
||||
}
|
||||
|
||||
private void updateUI() {
|
||||
eventName.setInnerText(event.getName());
|
||||
venueName.setInnerText(event.venue.getName());
|
||||
eventStartDate.setInnerText(EventDatesFormatterUtil.formatDateRangeWithoutYear(event.startDate, event.endDate));
|
||||
}
|
||||
}
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
|
||||
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
|
||||
xmlns:g="urn:import:com.google.gwt.user.client.ui"
|
||||
xmlns:s="urn:import:com.sap.sailing.gwt.home.client.shared">
|
||||
<ui:with field="i18n" type="com.sap.sailing.gwt.home.client.i18n.TextMessages"/>
|
||||
<ui:with field="res" type="com.sap.sailing.gwt.home.client.HomeResources" />
|
||||
<ui:with field="local_res" type="com.sap.sailing.gwt.home.client.place.events.upcoming.EventsOverviewUpcomingResources" />
|
||||
<g:HTMLPanel>
|
||||
<div class="{local_res.css.eventslist_event}">
|
||||
<g:Anchor styleName="{res.mainCss.grid} {local_res.css.eventslist_event_link}">
|
||||
<div class="{res.mediaCss.small3} {res.mediaCss.columns} {local_res.css.eventslist_event_item}"><span ui:field='eventStartDate' /></div>
|
||||
<div class="{res.mediaCss.small3} {res.mediaCss.columns} {local_res.css.eventslist_event_item} {local_res.css.eventslist_event_itemname}"><span ui:field='eventName' /></div>
|
||||
<div class="{res.mediaCss.small4} {res.mediaCss.columns} {local_res.css.eventslist_event_item}"><span ui:field='venueName' /></div>
|
||||
<div class="{res.mediaCss.small2} {res.mediaCss.columns} {local_res.css.eventslist_event_item} {local_res.css.eventslist_event_itemseries}">
|
||||
<div class="{res.mainCss.label}"><span ui:field='seriesName' /></div>
|
||||
</div>
|
||||
</g:Anchor>
|
||||
</div>
|
||||
</g:HTMLPanel>
|
||||
</ui:UiBinder>
|
||||
+1
-1
@@ -19,7 +19,7 @@
|
||||
filter: literal("alpha(opacity=90)");
|
||||
}
|
||||
.eventteaser_image {
|
||||
position: relative;
|
||||
height: auto;
|
||||
}
|
||||
.eventteaser_series {
|
||||
position: absolute;
|
||||
|
||||
+10
-3
@@ -5,14 +5,21 @@
|
||||
<ui:with field="i18n" type="com.sap.sailing.gwt.home.client.i18n.TextMessages"/>
|
||||
<ui:with field="res" type="com.sap.sailing.gwt.home.client.HomeResources" />
|
||||
<ui:with field="local_res" type="com.sap.sailing.gwt.home.client.shared.recentevent.RecentEventResources" />
|
||||
<ui:style>
|
||||
.img-fixedsize-temp {
|
||||
width: 370px;
|
||||
height: auto;
|
||||
}
|
||||
</ui:style>
|
||||
<g:HTMLPanel>
|
||||
<div class="{res.mediaCss.small12} {res.mediaCss.medium6} {res.mediaCss.large4} {res.mediaCss.columns}">
|
||||
<g:Anchor ui:field="eventOverviewLink" styleName="{local_res.css.eventteaser}" href="javascript:;">
|
||||
<figure class="{local_res.css.eventteaser_image}"><img ui:field='eventImage' />
|
||||
<g:Anchor ui:field="eventOverviewLink" styleName="{local_res.css.eventteaser}">
|
||||
<figure class="{local_res.css.eventteaser_image}"><img ui:field='eventImage' class='{style.img-fixedsize-temp}' />
|
||||
<div class="{local_res.css.eventteaser_series} {res.mainCss.label}"></div>
|
||||
</figure>
|
||||
<div class="{local_res.css.eventteaser_name}"><span ui:field="eventName" /></div>
|
||||
<div class="{local_res.css.eventteaser_location}"><span ui:field="venueName" />, <span ui:field="eventStartDate" />
|
||||
<div class="{local_res.css.eventteaser_location}">
|
||||
<span ui:field="venueName" />, <span ui:field="eventStartDate" />
|
||||
</div>
|
||||
</g:Anchor>
|
||||
</div>
|
||||
|
||||
+11
-5
@@ -9,6 +9,7 @@ import com.google.gwt.dom.client.HeadingElement;
|
||||
import com.google.gwt.uibinder.client.UiBinder;
|
||||
import com.google.gwt.uibinder.client.UiField;
|
||||
import com.google.gwt.user.client.ui.Composite;
|
||||
import com.google.gwt.user.client.ui.HTMLPanel;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.sap.sailing.gwt.home.client.app.PlaceNavigator;
|
||||
import com.sap.sailing.gwt.ui.shared.EventBaseDTO;
|
||||
@@ -16,9 +17,12 @@ import com.sap.sailing.gwt.ui.shared.EventBaseDTO;
|
||||
public class RecentEvents extends Composite {
|
||||
|
||||
@UiField DivElement recentEventsGrid;
|
||||
@UiField DivElement headlineDiv;
|
||||
@UiField HTMLPanel headline;
|
||||
@UiField HeadingElement titleHeading;
|
||||
|
||||
|
||||
/** Attention: This must be a widget -> otherwise the events of the child widgets would not be propagated */
|
||||
@UiField HTMLPanel eventsPlaceholder;
|
||||
|
||||
private final List<RecentEvent> recentEventComposites;
|
||||
|
||||
interface RecentEventsUiBinder extends UiBinder<Widget, RecentEvents> {
|
||||
@@ -37,21 +41,23 @@ public class RecentEvents extends Composite {
|
||||
}
|
||||
|
||||
public void setEvents(List<EventBaseDTO> events, String headlineText) {
|
||||
recentEventsGrid.removeAllChildren();
|
||||
eventsPlaceholder.clear();
|
||||
recentEventComposites.clear();
|
||||
|
||||
if(headlineText != null) {
|
||||
titleHeading.setInnerText(headlineText);
|
||||
recentEventsGrid.appendChild(headlineDiv);
|
||||
headline.setVisible(true);
|
||||
} else {
|
||||
titleHeading.setInnerText("");
|
||||
headline.setVisible(false);
|
||||
}
|
||||
|
||||
for(EventBaseDTO event: events) {
|
||||
RecentEvent recentEvent = new RecentEvent(navigator);
|
||||
|
||||
recentEvent.setEvent(event);
|
||||
recentEventComposites.add(recentEvent);
|
||||
recentEventsGrid.appendChild(recentEvent.getElement());
|
||||
eventsPlaceholder.add(recentEvent);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+7
-5
@@ -7,12 +7,14 @@
|
||||
<ui:with field="local_res" type="com.sap.sailing.gwt.home.client.shared.recentevent.RecentEventResources" />
|
||||
<g:HTMLPanel>
|
||||
<div class="{local_res.css.eventsoverviewrecent}">
|
||||
<div ui:field="recentEventsGrid" class="{res.mainCss.grid}">
|
||||
<div ui:field="headlineDiv" class="{res.mediaCss.small12} {res.mediaCss.columns}">
|
||||
<div ui:field="recentEventsGrid" class="{res.mainCss.grid}">
|
||||
<g:HTMLPanel ui:field="headline" styleName="{res.mediaCss.small12} {res.mediaCss.columns}">
|
||||
<h3 ui:field="titleHeading" />
|
||||
</div>
|
||||
<!-- the recent event widget will be inserted here -->
|
||||
</div>
|
||||
</g:HTMLPanel>
|
||||
<g:HTMLPanel ui:field="eventsPlaceholder">
|
||||
<!-- the recent event widgets will be inserted here -->
|
||||
</g:HTMLPanel>
|
||||
</div>
|
||||
</div>
|
||||
</g:HTMLPanel>
|
||||
</ui:UiBinder>
|
||||
Reference in new issue
Block a user