mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-16 17:21:00 +00:00
initial version of events page... not finished
This commit is contained in:
1 parent
c9b8c1bb17
commit
ec151ba514
28 files changed
+522
-243
No files matched your search
+60
@@ -0,0 +1,60 @@
|
||||
package com.sap.sailing.gwt.home.client;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import com.google.gwt.i18n.shared.DateTimeFormat;
|
||||
|
||||
/**
|
||||
* Some date calculation functions as GWT does not support java.util.Calendar
|
||||
* @author Frank
|
||||
*
|
||||
*/
|
||||
public class DateUtil {
|
||||
private static final DateTimeFormat dayFormat = DateTimeFormat.getFormat("d");
|
||||
private static final DateTimeFormat monthFormat = DateTimeFormat.getFormat("M");
|
||||
private static final DateTimeFormat yearFormat = DateTimeFormat.getFormat("yyyy");
|
||||
private static final long DAY_IN_MILLIS = 1000 * 60 * 60 * 24;
|
||||
|
||||
public static int getDayOfMonth(Date date) {
|
||||
String s = dayFormat.format(date);
|
||||
return Integer.parseInt(s);
|
||||
}
|
||||
|
||||
public static int getMonth(Date date) {
|
||||
String s = monthFormat.format(date);
|
||||
return Integer.parseInt(s);
|
||||
}
|
||||
|
||||
public static int getYear(Date date) {
|
||||
String s = yearFormat.format(date);
|
||||
return Integer.parseInt(s);
|
||||
}
|
||||
|
||||
public static boolean isSameDayOfMonth(Date date1, Date date2) {
|
||||
return getMonth(date1) == getMonth(date2);
|
||||
}
|
||||
|
||||
public static boolean isSameMonth(Date date1, Date date2) {
|
||||
return getMonth(date1) == getMonth(date2);
|
||||
}
|
||||
|
||||
public static boolean isSameYear(Date date1, Date date2) {
|
||||
return getYear(date1) == getYear(date2);
|
||||
}
|
||||
|
||||
public static boolean isToday(Date date) {
|
||||
Date now = new Date();
|
||||
long diffInMillis = date.getTime() - now.getTime();
|
||||
return Math.abs(diffInMillis) < DAY_IN_MILLIS && isSameDayOfMonth(date, now);
|
||||
}
|
||||
|
||||
public static boolean isDayInFuture(Date date) {
|
||||
Date now = new Date();
|
||||
return date.after(now) && !isToday(date);
|
||||
}
|
||||
|
||||
public static boolean isDayInPast(Date date) {
|
||||
Date now = new Date();
|
||||
return date.before(now) && !isToday(date);
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -38,7 +38,7 @@ public class TabletAndDesktopApplicationClientFactory extends AbstractApplicatio
|
||||
|
||||
@Override
|
||||
public EventsView createEventsView(EventsActivity activity) {
|
||||
return new TabletAndDesktopEventsView(activity);
|
||||
return new TabletAndDesktopEventsView(getPlaceNavigator());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+52
@@ -0,0 +1,52 @@
|
||||
package com.sap.sailing.gwt.home.client.place.events;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.google.gwt.user.client.ui.Composite;
|
||||
import com.sap.sailing.gwt.home.client.DateUtil;
|
||||
import com.sap.sailing.gwt.ui.shared.EventBaseDTO;
|
||||
|
||||
public abstract class AbstractEventsView extends Composite implements EventsView {
|
||||
private final Map<Integer, List<EventBaseDTO>> recentEventsOrderedByYear;
|
||||
private final List<EventBaseDTO> upcomingEvents;
|
||||
|
||||
public AbstractEventsView() {
|
||||
recentEventsOrderedByYear = new HashMap<Integer, List<EventBaseDTO>>();
|
||||
upcomingEvents = new ArrayList<EventBaseDTO>();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setEvents(List<EventBaseDTO> events) {
|
||||
for(EventBaseDTO event: events) {
|
||||
if(event.startDate != null) {
|
||||
if(DateUtil.isDayInPast(event.startDate)) {
|
||||
// recent event
|
||||
int year = DateUtil.getYear(event.startDate);
|
||||
List<EventBaseDTO> eventsOfYear = recentEventsOrderedByYear.get(year);
|
||||
if(eventsOfYear == null) {
|
||||
eventsOfYear = new ArrayList<EventBaseDTO>();
|
||||
recentEventsOrderedByYear.put(year, eventsOfYear);
|
||||
}
|
||||
eventsOfYear.add(event);
|
||||
} else {
|
||||
// upcoming event
|
||||
upcomingEvents.add(event);
|
||||
}
|
||||
}
|
||||
}
|
||||
updateEventsUI();
|
||||
}
|
||||
|
||||
protected abstract void updateEventsUI();
|
||||
|
||||
public Map<Integer, List<EventBaseDTO>> getRecentEventsOrderedByYear() {
|
||||
return recentEventsOrderedByYear;
|
||||
}
|
||||
|
||||
public List<EventBaseDTO> getUpcomingEvents() {
|
||||
return upcomingEvents;
|
||||
}
|
||||
}
|
||||
+3
-8
@@ -4,11 +4,10 @@ import java.util.List;
|
||||
|
||||
import com.google.gwt.activity.shared.AbstractActivity;
|
||||
import com.google.gwt.event.shared.EventBus;
|
||||
import com.google.gwt.place.shared.Place;
|
||||
import com.google.gwt.user.client.Window;
|
||||
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||
import com.google.gwt.user.client.ui.AcceptsOneWidget;
|
||||
import com.sap.sailing.gwt.ui.shared.EventDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.EventBaseDTO;
|
||||
|
||||
public class EventsActivity extends AbstractActivity {
|
||||
|
||||
@@ -22,9 +21,9 @@ public class EventsActivity extends AbstractActivity {
|
||||
public void start(final AcceptsOneWidget panel, EventBus eventBus) {
|
||||
final EventsView eventsView = clientFactory.createEventsView(EventsActivity.this);
|
||||
panel.setWidget(eventsView.asWidget());
|
||||
clientFactory.getSailingService().getEvents(new AsyncCallback<List<EventDTO>>() {
|
||||
clientFactory.getSailingService().getPublicEventsOfAllSailingServers(new AsyncCallback<List<EventBaseDTO>>() {
|
||||
@Override
|
||||
public void onSuccess(List<EventDTO> events) {
|
||||
public void onSuccess(List<EventBaseDTO> events) {
|
||||
eventsView.setEvents(events);
|
||||
}
|
||||
|
||||
@@ -34,8 +33,4 @@ public class EventsActivity extends AbstractActivity {
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
void goTo(Place place) {
|
||||
clientFactory.getPlaceController().goTo(place);
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -124,7 +124,7 @@ public class EventsTable extends Composite {
|
||||
nameColumn.setFieldUpdater(new FieldUpdater<EventDTO, SafeHtml>() {
|
||||
@Override
|
||||
public void update(int index, EventDTO object, SafeHtml value) {
|
||||
activity.goTo(new EventPlace(object.id.toString()));
|
||||
// activity.goTo(new EventPlace(object.id.toString()));
|
||||
}
|
||||
});
|
||||
nameColumn.setSortable(true);
|
||||
|
||||
+4
-2
@@ -1,10 +1,12 @@
|
||||
package com.sap.sailing.gwt.home.client.place.events;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.sap.sailing.gwt.ui.shared.EventDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.EventBaseDTO;
|
||||
|
||||
public interface EventsView {
|
||||
Widget asWidget();
|
||||
|
||||
void setEvents(Iterable<EventDTO> events);
|
||||
void setEvents(List<EventBaseDTO> events);
|
||||
}
|
||||
+32
-40
@@ -2,60 +2,52 @@ package com.sap.sailing.gwt.home.client.place.events;
|
||||
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.event.dom.client.ClickEvent;
|
||||
import com.google.gwt.event.dom.client.ClickHandler;
|
||||
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.Anchor;
|
||||
import com.google.gwt.user.client.ui.Button;
|
||||
import com.google.gwt.user.client.ui.Composite;
|
||||
import com.google.gwt.user.client.ui.FlowPanel;
|
||||
import com.google.gwt.user.client.ui.TextBox;
|
||||
import com.google.gwt.user.client.ui.Hyperlink;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.sap.sailing.gwt.home.client.place.event.EventPlace;
|
||||
import com.sap.sailing.gwt.ui.shared.EventDTO;
|
||||
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;
|
||||
|
||||
public class TabletAndDesktopEventsView extends Composite implements EventsView {
|
||||
public class TabletAndDesktopEventsView extends AbstractEventsView {
|
||||
private static EventsPageViewUiBinder uiBinder = GWT.create(EventsPageViewUiBinder.class);
|
||||
|
||||
interface EventsPageViewUiBinder extends UiBinder<Widget, TabletAndDesktopEventsView> {
|
||||
}
|
||||
|
||||
private final EventsActivity activity;
|
||||
|
||||
@UiField
|
||||
TextBox queryInput;
|
||||
@UiField
|
||||
Button searchButton;
|
||||
@UiField
|
||||
FlowPanel eventListPanel;
|
||||
@UiField(provided=true)
|
||||
EventsTable eventsTable;
|
||||
|
||||
public TabletAndDesktopEventsView(EventsActivity activity) {
|
||||
@UiField(provided=true) EventsOverviewRecent recentEventsWidget;
|
||||
@UiField(provided=true) EventsOverviewUpcoming upcomingEventsWidget;
|
||||
@UiField Hyperlink recentEventsLink;
|
||||
@UiField Hyperlink upcomingEventsLink;
|
||||
|
||||
public TabletAndDesktopEventsView(PlaceNavigator navigator) {
|
||||
super();
|
||||
this.activity = activity;
|
||||
eventsTable = new EventsTable(activity);
|
||||
recentEventsWidget = new EventsOverviewRecent(navigator);
|
||||
upcomingEventsWidget = new EventsOverviewUpcoming(navigator);
|
||||
|
||||
initWidget(uiBinder.createAndBindUi(this));
|
||||
queryInput.getElement().setId("queryInput");
|
||||
}
|
||||
|
||||
public void setEvents(Iterable<EventDTO> events) {
|
||||
eventListPanel.clear();
|
||||
for (final EventDTO event : events) {
|
||||
Anchor request = new Anchor(event.getName());
|
||||
request.addClickHandler(new ClickHandler() {
|
||||
@Override
|
||||
public void onClick(ClickEvent e) {
|
||||
TabletAndDesktopEventsView.this.activity.goTo(new EventPlace(event.id.toString()));
|
||||
}
|
||||
});
|
||||
eventListPanel.add(request);
|
||||
}
|
||||
eventsTable.setEvents(events);
|
||||
@UiHandler("recentEventsLink")
|
||||
void recentsEventsClicked(ClickEvent event) {
|
||||
recentEventsWidget.setVisible(true);
|
||||
|
||||
// set style buttoninactive
|
||||
|
||||
upcomingEventsWidget.setVisible(false);
|
||||
}
|
||||
|
||||
@UiHandler("searchButton")
|
||||
void buttonClick(ClickEvent event) {
|
||||
|
||||
@UiHandler("upcomingEventsLink")
|
||||
void upcomingEventsClicked(ClickEvent event) {
|
||||
recentEventsWidget.setVisible(false);
|
||||
upcomingEventsWidget.setVisible(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void updateEventsUI() {
|
||||
recentEventsWidget.updateEvents(getRecentEventsOrderedByYear());
|
||||
upcomingEventsWidget.updateEvents(getUpcomingEvents());
|
||||
}
|
||||
}
|
||||
+29
-24
@@ -1,30 +1,35 @@
|
||||
<!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:c="urn:import:com.google.gwt.user.cellview.client"
|
||||
xmlns:e="urn:import:com.sap.sailing.gwt.home.client.place.events">
|
||||
<ui:style>
|
||||
.panel {
|
||||
width: 100%;
|
||||
background-color: rgb(255,255,255);
|
||||
border: solid 1px black;
|
||||
xmlns:s="urn:import:com.sap.sailing.gwt.home.client.shared"
|
||||
xmlns:p="urn:import:com.sap.sailing.gwt.home.client.place.events"
|
||||
xmlns:g="urn:import:com.google.gwt.user.client.ui">
|
||||
<ui:with field="res" type="com.sap.sailing.gwt.home.client.HomeResources" />
|
||||
<ui:style>
|
||||
.eventsoverviewnavigation {
|
||||
font-size: 16px;
|
||||
font-size: 1rem;
|
||||
margin: 1.875em 0;
|
||||
}
|
||||
</ui:style>
|
||||
.eventsoverviewnavigation_button {
|
||||
text-transform: uppercase;
|
||||
margin-right: 0.625em;
|
||||
}
|
||||
</ui:style>
|
||||
|
||||
<g:VerticalPanel styleName="{style.panel}">
|
||||
<g:HTMLPanel>
|
||||
Events page
|
||||
<div id="searchEventsInput">
|
||||
<h2>Search event:</h2>
|
||||
<label for="queryInput">Query:</label>
|
||||
<g:TextBox ui:field="queryInput"/>
|
||||
<g:Button ui:field="searchButton" text="Go!"/>
|
||||
<g:HTMLPanel>
|
||||
<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}" />
|
||||
</div>
|
||||
<div id="searchResults">
|
||||
<h2>Events:</h2>
|
||||
<g:FlowPanel ui:field="eventListPanel"/>
|
||||
</div>
|
||||
<e:EventsTable ui:field="eventsTable" />
|
||||
</g:HTMLPanel>
|
||||
</g:VerticalPanel>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p:recent.EventsOverviewRecent ui:field='recentEventsWidget'/>
|
||||
<p:upcoming.EventsOverviewUpcoming ui:field='upcomingEventsWidget'/>
|
||||
|
||||
<s:socialfooter.SocialFooter ui:field='socialFooter'/>
|
||||
</g:HTMLPanel>
|
||||
|
||||
</ui:UiBinder>
|
||||
Whitespace-only changes.
+66
@@ -0,0 +1,66 @@
|
||||
package com.sap.sailing.gwt.home.client.place.events.recent;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
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.DateUtil;
|
||||
import com.sap.sailing.gwt.home.client.app.PlaceNavigator;
|
||||
import com.sap.sailing.gwt.home.client.shared.recentevent.RecentEvents;
|
||||
import com.sap.sailing.gwt.ui.shared.EventBaseDTO;
|
||||
|
||||
public class EventsOverviewRecent extends Composite {
|
||||
|
||||
interface EventsOverviewUiBinder extends UiBinder<Widget, EventsOverviewRecent> {
|
||||
}
|
||||
|
||||
private static EventsOverviewUiBinder uiBinder = GWT.create(EventsOverviewUiBinder.class);
|
||||
|
||||
private final PlaceNavigator navigator;
|
||||
|
||||
@UiField HTMLPanel htmlPanel;
|
||||
|
||||
private final Map<Integer, RecentEvents> recentEventsComposites;
|
||||
|
||||
public EventsOverviewRecent(PlaceNavigator navigator) {
|
||||
this.navigator = navigator;
|
||||
recentEventsComposites = new HashMap<Integer, RecentEvents>();
|
||||
|
||||
EventsOverviewRecentResources.INSTANCE.css().ensureInjected();
|
||||
initWidget(uiBinder.createAndBindUi(this));
|
||||
}
|
||||
|
||||
public void updateEvents(Map<Integer, List<EventBaseDTO>> recentEventsOrderedByYear) {
|
||||
// remove old widgets
|
||||
htmlPanel.clear();
|
||||
recentEventsComposites.clear();
|
||||
|
||||
// recent events of this year
|
||||
Date now = new Date();
|
||||
int currentYear = DateUtil.getYear(now);
|
||||
|
||||
if(recentEventsOrderedByYear.get(currentYear) != null) {
|
||||
RecentEvents recentEvents = new RecentEvents(navigator);
|
||||
recentEvents.setEvents(recentEventsOrderedByYear.get(currentYear), null);
|
||||
htmlPanel.add(recentEvents);
|
||||
recentEventsComposites.put(currentYear, recentEvents);
|
||||
}
|
||||
currentYear--;
|
||||
while (currentYear > 2010) {
|
||||
if(recentEventsOrderedByYear.get(currentYear) != null) {
|
||||
RecentEvents recentEvents = new RecentEvents(navigator);
|
||||
recentEvents.setEvents(recentEventsOrderedByYear.get(currentYear), String.valueOf(currentYear));
|
||||
htmlPanel.add(recentEvents);
|
||||
recentEventsComposites.put(currentYear, recentEvents);
|
||||
}
|
||||
currentYear--;
|
||||
}
|
||||
}
|
||||
}
|
||||
+3
-2
@@ -4,7 +4,8 @@
|
||||
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.shared.eventsoverview.EventsOverviewResources" />
|
||||
<g:HTMLPanel>
|
||||
<ui:with field="local_res" type="com.sap.sailing.gwt.home.client.place.events.recent.EventsOverviewRecentResources" />
|
||||
<g:HTMLPanel ui:field="htmlPanel">
|
||||
<!-- The whole content will be created dynamically -->
|
||||
</g:HTMLPanel>
|
||||
</ui:UiBinder>
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
package com.sap.sailing.gwt.home.client.place.events.recent;
|
||||
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.resources.client.ClientBundle;
|
||||
import com.google.gwt.resources.client.CssResource;
|
||||
|
||||
public interface EventsOverviewRecentResources extends ClientBundle {
|
||||
public static final EventsOverviewRecentResources INSTANCE = GWT.create(EventsOverviewRecentResources.class);
|
||||
|
||||
@Source("com/sap/sailing/gwt/home/client/place/events/recent/EventsOverviewRecent.css")
|
||||
LocalCss css();
|
||||
|
||||
public interface LocalCss extends CssResource {
|
||||
}
|
||||
}
|
||||
+3
-56
@@ -1,65 +1,12 @@
|
||||
/**
|
||||
* The overview over events
|
||||
* The overview over upcoming events
|
||||
*/
|
||||
.eventteaser {
|
||||
.eventsoverviewupcoming {
|
||||
font-size: 16px;
|
||||
font-size: 1rem;
|
||||
display: inline-block;
|
||||
margin-bottom: 2.8125em;
|
||||
}
|
||||
.eventteaser:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
.eventteaser:hover .eventteaser_name {
|
||||
text-decoration: underline;
|
||||
}
|
||||
.eventteaser:hover .eventteaser_image {
|
||||
opacity: 0.9;
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=90)";
|
||||
filter: alpha(opacity=90);
|
||||
}
|
||||
.eventteaser_image {
|
||||
position: relative;
|
||||
}
|
||||
.eventteaser_series {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
}
|
||||
.eventteaser_name {
|
||||
font-size: 1.375em;
|
||||
font-weight: bold;
|
||||
color: #008fcc;
|
||||
margin-top: 0.3125em;
|
||||
}
|
||||
.eventteaser_location {
|
||||
color: #222;
|
||||
}
|
||||
.eventsoverview {
|
||||
font-size: 16px;
|
||||
font-size: 1rem;
|
||||
}
|
||||
.eventsoverview_navigation {
|
||||
margin: 1.875em 0;
|
||||
}
|
||||
.eventsoverview_navigation_button {
|
||||
text-transform: uppercase;
|
||||
margin-right: 0.625em;
|
||||
}
|
||||
.eventsoverview_contenthidden {
|
||||
display: none;
|
||||
}
|
||||
.eventsoverview_contentrecent {
|
||||
padding-bottom: 1.875em;
|
||||
}
|
||||
.eventsoverview_contentrecent_year {
|
||||
border-top: 1px solid #ddd;
|
||||
margin-top: 0.625em;
|
||||
}
|
||||
.eventsoverview_contentupcoming {
|
||||
padding-bottom: 4.6875em;
|
||||
}
|
||||
.eventsoverview_contentupcoming_teaser {
|
||||
.eventsoverviewupcoming_teaser {
|
||||
font-size: 1.125em;
|
||||
font-weight: bold;
|
||||
color: #008fcc;
|
||||
+32
@@ -0,0 +1,32 @@
|
||||
package com.sap.sailing.gwt.home.client.place.events.upcoming;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.uibinder.client.UiBinder;
|
||||
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.ui.shared.EventBaseDTO;
|
||||
|
||||
public class EventsOverviewUpcoming extends Composite {
|
||||
|
||||
interface EventsOverviewUiBinder extends UiBinder<Widget, EventsOverviewUpcoming> {
|
||||
}
|
||||
|
||||
private static EventsOverviewUiBinder uiBinder = GWT.create(EventsOverviewUiBinder.class);
|
||||
|
||||
private final PlaceNavigator navigator;
|
||||
|
||||
public EventsOverviewUpcoming(PlaceNavigator navigator) {
|
||||
this.navigator = navigator;
|
||||
|
||||
EventsOverviewUpcomingResources.INSTANCE.css().ensureInjected();
|
||||
initWidget(uiBinder.createAndBindUi(this));
|
||||
}
|
||||
|
||||
public void updateEvents(List<EventBaseDTO> events) {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
+44
@@ -0,0 +1,44 @@
|
||||
<!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>
|
||||
|
||||
<!-- Page displays all upcoming events-->
|
||||
<!--
|
||||
<div class="{local_res.css.eventsoverviewupcoming}">{#each upcomingYear in upcomingYears}
|
||||
<div class="{local_res.css.eventsoverviewupcoming}">
|
||||
<div class="{res.mainCss.grid}">
|
||||
<div class="{res.mediaCss.small12} {res.mediaCss.columns}">
|
||||
<h2>{upcomingYear.title}</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div class="{local_res.css.eventslist_header}">
|
||||
<div class="{res.mainCss.grid}">
|
||||
<div class="{res.mediaCss.small3} {res.mediaCss.columns} {local_res.css.eventslist_header_item}">Date</div>
|
||||
<div class="{res.mediaCss.small3} {res.mediaCss.columns} {local_res.css.eventslist_header_item}">Event</div>
|
||||
<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 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>
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
package com.sap.sailing.gwt.home.client.place.events.upcoming;
|
||||
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.resources.client.ClientBundle;
|
||||
import com.google.gwt.resources.client.CssResource;
|
||||
|
||||
public interface EventsOverviewUpcomingResources extends ClientBundle {
|
||||
public static final EventsOverviewUpcomingResources INSTANCE = GWT.create(EventsOverviewUpcomingResources.class);
|
||||
|
||||
@Source("com/sap/sailing/gwt/home/client/place/events/upcoming/EventsOverviewUpcoming.css")
|
||||
LocalCss css();
|
||||
|
||||
public interface LocalCss extends CssResource {
|
||||
String eventsoverviewupcoming();
|
||||
String eventsoverviewupcoming_teaser();
|
||||
String eventslist();
|
||||
String eventslist_header();
|
||||
String eventslist_header_item();
|
||||
String eventslist_header_itemseries();
|
||||
String eventslist_event();
|
||||
String eventslist_event_itemname();
|
||||
String eventslist_event_link();
|
||||
String eventslist_event_item();
|
||||
String eventslist_event_itemseries();
|
||||
}
|
||||
}
|
||||
-20
@@ -1,20 +0,0 @@
|
||||
package com.sap.sailing.gwt.home.client.shared.eventsoverview;
|
||||
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.uibinder.client.UiBinder;
|
||||
import com.google.gwt.user.client.ui.Composite;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
|
||||
public class EventsOverview extends Composite {
|
||||
|
||||
interface EventsOverviewUiBinder extends UiBinder<Widget, EventsOverview> {
|
||||
}
|
||||
|
||||
private static EventsOverviewUiBinder uiBinder = GWT.create(EventsOverviewUiBinder.class);
|
||||
|
||||
public EventsOverview() {
|
||||
EventsOverviewResources.INSTANCE.css().ensureInjected();
|
||||
initWidget(uiBinder.createAndBindUi(this));
|
||||
}
|
||||
|
||||
}
|
||||
-38
@@ -1,38 +0,0 @@
|
||||
package com.sap.sailing.gwt.home.client.shared.eventsoverview;
|
||||
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.resources.client.ClientBundle;
|
||||
import com.google.gwt.resources.client.CssResource;
|
||||
|
||||
public interface EventsOverviewResources extends ClientBundle {
|
||||
public static final EventsOverviewResources INSTANCE = GWT.create(EventsOverviewResources.class);
|
||||
|
||||
@Source("com/sap/sailing/gwt/home/client/shared/eventsoverview/EventsOverview.css")
|
||||
LocalCss css();
|
||||
|
||||
public interface LocalCss extends CssResource {
|
||||
String eventteaser();
|
||||
String eventteaser_name();
|
||||
String eventteaser_image();
|
||||
String Microsoft();
|
||||
String eventteaser_series();
|
||||
String eventteaser_location();
|
||||
String eventsoverview();
|
||||
String eventsoverview_navigation();
|
||||
String eventsoverview_navigation_button();
|
||||
String eventsoverview_contenthidden();
|
||||
String eventsoverview_contentrecent();
|
||||
String eventsoverview_contentrecent_year();
|
||||
String eventsoverview_contentupcoming();
|
||||
String eventsoverview_contentupcoming_teaser();
|
||||
String eventslist();
|
||||
String eventslist_header();
|
||||
String eventslist_header_item();
|
||||
String eventslist_header_itemseries();
|
||||
String eventslist_event();
|
||||
String eventslist_event_itemname();
|
||||
String eventslist_event_link();
|
||||
String eventslist_event_item();
|
||||
String eventslist_event_itemseries();
|
||||
}
|
||||
}
|
||||
-38
@@ -3,41 +3,3 @@
|
||||
font-size: 1rem;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
/**
|
||||
* Events on the main page
|
||||
*/
|
||||
.eventteaser {
|
||||
font-size: 16px;
|
||||
font-size: 1rem;
|
||||
display: inline-block;
|
||||
margin-bottom: 2.8125em;
|
||||
}
|
||||
.eventteaser:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
.eventteaser:hover .eventteaser_name {
|
||||
text-decoration: underline;
|
||||
}
|
||||
.eventteaser:hover .eventteaser_image {
|
||||
opacity: 0.9;
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=90)";
|
||||
filter: literal("alpha(opacity=90)");
|
||||
}
|
||||
.eventteaser_image {
|
||||
position: relative;
|
||||
}
|
||||
.eventteaser_series {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
}
|
||||
.eventteaser_name {
|
||||
font-size: 1.375em;
|
||||
font-weight: bold;
|
||||
color: #008fcc;
|
||||
margin-top: 0.3125em;
|
||||
}
|
||||
.eventteaser_location {
|
||||
color: #222;
|
||||
}
|
||||
+1
@@ -9,6 +9,7 @@ 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.recentevent.RecentEvent;
|
||||
import com.sap.sailing.gwt.ui.shared.EventDTO;
|
||||
|
||||
public class MainEvents extends Composite {
|
||||
|
||||
+3
-3
@@ -16,9 +16,9 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="{res.mainCss.grid}">
|
||||
<s:mainevents.RecentEvent ui:field='event1'/>
|
||||
<s:mainevents.RecentEvent ui:field='event2'/>
|
||||
<s:mainevents.RecentEvent ui:field='event3'/>
|
||||
<s:recentevent.RecentEvent ui:field='event1'/>
|
||||
<s:recentevent.RecentEvent ui:field='event2'/>
|
||||
<s:recentevent.RecentEvent ui:field='event3'/>
|
||||
</div>
|
||||
<div class="{res.mainCss.grid} {res.mainCss.mainsection_navigation}">
|
||||
<div class="{res.mediaCss.small12} {res.mediaCss.columns}"><a href="#" class="{res.mainCss.button}">Show All Events</a></div>
|
||||
|
||||
-5
@@ -12,10 +12,5 @@ public interface MainEventsResources extends ClientBundle {
|
||||
|
||||
public interface LocalCss extends CssResource {
|
||||
String mainevents();
|
||||
String eventteaser();
|
||||
String eventteaser_name();
|
||||
String eventteaser_image();
|
||||
String eventteaser_series();
|
||||
String eventteaser_location();
|
||||
}
|
||||
}
|
||||
+42
@@ -0,0 +1,42 @@
|
||||
/**
|
||||
* Events on the main page
|
||||
*/
|
||||
.eventteaser {
|
||||
font-size: 16px;
|
||||
font-size: 1rem;
|
||||
display: inline-block;
|
||||
margin-bottom: 2.8125em;
|
||||
}
|
||||
.eventteaser:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
.eventteaser:hover .eventteaser_name {
|
||||
text-decoration: underline;
|
||||
}
|
||||
.eventteaser:hover .eventteaser_image {
|
||||
opacity: 0.9;
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=90)";
|
||||
filter: literal("alpha(opacity=90)");
|
||||
}
|
||||
.eventteaser_image {
|
||||
position: relative;
|
||||
}
|
||||
.eventteaser_series {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
}
|
||||
.eventteaser_name {
|
||||
font-size: 1.375em;
|
||||
font-weight: bold;
|
||||
color: #008fcc;
|
||||
margin-top: 0.3125em;
|
||||
}
|
||||
.eventteaser_location {
|
||||
color: #222;
|
||||
}
|
||||
|
||||
.eventsoverviewrecent {
|
||||
font-size: 16px;
|
||||
font-size: 1rem;
|
||||
}
|
||||
+6
-4
@@ -1,4 +1,4 @@
|
||||
package com.sap.sailing.gwt.home.client.shared.mainevents;
|
||||
package com.sap.sailing.gwt.home.client.shared.recentevent;
|
||||
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.dom.client.ImageElement;
|
||||
@@ -15,7 +15,7 @@ import com.sap.sailing.gwt.home.client.app.PlaceNavigator;
|
||||
import com.sap.sailing.gwt.home.client.place.event.EventPlace;
|
||||
import com.sap.sailing.gwt.home.client.place.event.EventPlace.Tokenizer;
|
||||
import com.sap.sailing.gwt.home.client.shared.EventDatesFormatterUtil;
|
||||
import com.sap.sailing.gwt.ui.shared.EventDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.EventBaseDTO;
|
||||
|
||||
public class RecentEvent extends Composite {
|
||||
|
||||
@@ -25,7 +25,7 @@ public class RecentEvent extends Composite {
|
||||
@UiField Anchor eventOverviewLink;
|
||||
@UiField ImageElement eventImage;
|
||||
|
||||
private EventDTO event;
|
||||
private EventBaseDTO event;
|
||||
|
||||
private final String defaultImageUrl = "http://static.sapsailing.com/newhome/default_event_photo.jpg";
|
||||
|
||||
@@ -38,10 +38,12 @@ public class RecentEvent extends Composite {
|
||||
|
||||
public RecentEvent(PlaceNavigator navigator) {
|
||||
this.navigator = navigator;
|
||||
RecentEventResources.INSTANCE.css().ensureInjected();
|
||||
|
||||
initWidget(uiBinder.createAndBindUi(this));
|
||||
}
|
||||
|
||||
public void setEvent(EventDTO event) {
|
||||
public void setEvent(EventBaseDTO event) {
|
||||
this.event = event;
|
||||
updateUI();
|
||||
}
|
||||
+1
-1
@@ -4,7 +4,7 @@
|
||||
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.shared.mainevents.MainEventsResources" />
|
||||
<ui:with field="local_res" type="com.sap.sailing.gwt.home.client.shared.recentevent.RecentEventResources" />
|
||||
<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:;">
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
package com.sap.sailing.gwt.home.client.shared.recentevent;
|
||||
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.resources.client.ClientBundle;
|
||||
import com.google.gwt.resources.client.CssResource;
|
||||
|
||||
public interface RecentEventResources extends ClientBundle {
|
||||
public static final RecentEventResources INSTANCE = GWT.create(RecentEventResources.class);
|
||||
|
||||
@Source("com/sap/sailing/gwt/home/client/shared/recentevent/RecentEvent.css")
|
||||
LocalCss css();
|
||||
|
||||
public interface LocalCss extends CssResource {
|
||||
String eventteaser();
|
||||
String eventteaser_name();
|
||||
String eventteaser_image();
|
||||
String eventteaser_series();
|
||||
String eventteaser_location();
|
||||
String eventsoverviewrecent();
|
||||
}
|
||||
}
|
||||
+59
@@ -0,0 +1,59 @@
|
||||
package com.sap.sailing.gwt.home.client.shared.recentevent;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.dom.client.DivElement;
|
||||
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.Widget;
|
||||
import com.sap.sailing.gwt.home.client.app.PlaceNavigator;
|
||||
import com.sap.sailing.gwt.ui.shared.EventBaseDTO;
|
||||
|
||||
public class RecentEvents extends Composite {
|
||||
|
||||
@UiField DivElement recentEventsGrid;
|
||||
@UiField DivElement headlineDiv;
|
||||
@UiField HeadingElement titleHeading;
|
||||
|
||||
private final List<RecentEvent> recentEventComposites;
|
||||
|
||||
interface RecentEventsUiBinder extends UiBinder<Widget, RecentEvents> {
|
||||
}
|
||||
|
||||
private static RecentEventsUiBinder uiBinder = GWT.create(RecentEventsUiBinder.class);
|
||||
|
||||
private final PlaceNavigator navigator;
|
||||
|
||||
public RecentEvents(PlaceNavigator navigator) {
|
||||
this.navigator = navigator;
|
||||
recentEventComposites = new ArrayList<RecentEvent>();
|
||||
|
||||
RecentEventResources.INSTANCE.css().ensureInjected();
|
||||
initWidget(uiBinder.createAndBindUi(this));
|
||||
}
|
||||
|
||||
public void setEvents(List<EventBaseDTO> events, String headlineText) {
|
||||
recentEventsGrid.removeAllChildren();
|
||||
recentEventComposites.clear();
|
||||
|
||||
if(headlineText != null) {
|
||||
titleHeading.setInnerText(headlineText);
|
||||
recentEventsGrid.appendChild(headlineDiv);
|
||||
} else {
|
||||
titleHeading.setInnerText("");
|
||||
}
|
||||
|
||||
for(EventBaseDTO event: events) {
|
||||
RecentEvent recentEvent = new RecentEvent(navigator);
|
||||
recentEvent.setEvent(event);
|
||||
recentEventComposites.add(recentEvent);
|
||||
recentEventsGrid.appendChild(recentEvent.getElement());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
<!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.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}">
|
||||
<h3 ui:field="titleHeading" />
|
||||
</div>
|
||||
<!-- the recent event widget will be inserted here -->
|
||||
</div>
|
||||
</div>
|
||||
</g:HTMLPanel>
|
||||
</ui:UiBinder>
|
||||
Reference in new issue
Block a user