From ec151ba51437fe163240b9f8f3987e0aded35d25 Mon Sep 17 00:00:00 2001 From: fmittag Date: Tue, 10 Jun 2014 19:32:02 +0200 Subject: [PATCH] initial version of events page... not finished --- .../sap/sailing/gwt/home/client/DateUtil.java | 60 ++++++++++++++++ ...letAndDesktopApplicationClientFactory.java | 2 +- .../place/events/AbstractEventsView.java | 52 ++++++++++++++ .../client/place/events/EventsActivity.java | 11 +-- .../home/client/place/events/EventsTable.java | 2 +- .../home/client/place/events/EventsView.java | 6 +- .../events/TabletAndDesktopEventsView.java | 72 +++++++++---------- .../events/TabletAndDesktopEventsView.ui.xml | 53 +++++++------- .../events/recent/EventsOverviewRecent.css | 0 .../events/recent/EventsOverviewRecent.java | 66 +++++++++++++++++ .../recent/EventsOverviewRecent.ui.xml} | 5 +- .../recent/EventsOverviewRecentResources.java | 15 ++++ .../upcoming/EventsOverviewUpcoming.css} | 59 +-------------- .../upcoming/EventsOverviewUpcoming.java | 32 +++++++++ .../upcoming/EventsOverviewUpcoming.ui.xml | 44 ++++++++++++ .../EventsOverviewUpcomingResources.java | 26 +++++++ .../shared/eventsoverview/EventsOverview.java | 20 ------ .../EventsOverviewResources.java | 38 ---------- .../client/shared/mainevents/MainEvents.css | 38 ---------- .../client/shared/mainevents/MainEvents.java | 1 + .../shared/mainevents/MainEvents.ui.xml | 6 +- .../mainevents/MainEventsResources.java | 5 -- .../client/shared/recentevent/RecentEvent.css | 42 +++++++++++ .../RecentEvent.java | 10 +-- .../RecentEvent.ui.xml | 2 +- .../recentevent/RecentEventResources.java | 21 ++++++ .../shared/recentevent/RecentEvents.java | 59 +++++++++++++++ .../shared/recentevent/RecentEvents.ui.xml | 18 +++++ 28 files changed, 522 insertions(+), 243 deletions(-) create mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/DateUtil.java create mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/events/AbstractEventsView.java create mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/events/recent/EventsOverviewRecent.css create mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/events/recent/EventsOverviewRecent.java rename java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/{shared/eventsoverview/EventsOverview.ui.xml => place/events/recent/EventsOverviewRecent.ui.xml} (76%) create mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/events/recent/EventsOverviewRecentResources.java rename java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/{shared/eventsoverview/EventsOverview.css => place/events/upcoming/EventsOverviewUpcoming.css} (51%) create mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/events/upcoming/EventsOverviewUpcoming.java create mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/events/upcoming/EventsOverviewUpcoming.ui.xml create mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/events/upcoming/EventsOverviewUpcomingResources.java delete mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/eventsoverview/EventsOverview.java delete mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/eventsoverview/EventsOverviewResources.java create mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/recentevent/RecentEvent.css rename java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/{mainevents => recentevent}/RecentEvent.java (91%) rename java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/{mainevents => recentevent}/RecentEvent.ui.xml (96%) create mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/recentevent/RecentEventResources.java create mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/recentevent/RecentEvents.java create mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/recentevent/RecentEvents.ui.xml diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/DateUtil.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/DateUtil.java new file mode 100644 index 00000000000..6925c47f9ac --- /dev/null +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/DateUtil.java @@ -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); + } +} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/app/TabletAndDesktopApplicationClientFactory.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/app/TabletAndDesktopApplicationClientFactory.java index 268c326ef33..81d7e501afc 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/app/TabletAndDesktopApplicationClientFactory.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/app/TabletAndDesktopApplicationClientFactory.java @@ -38,7 +38,7 @@ public class TabletAndDesktopApplicationClientFactory extends AbstractApplicatio @Override public EventsView createEventsView(EventsActivity activity) { - return new TabletAndDesktopEventsView(activity); + return new TabletAndDesktopEventsView(getPlaceNavigator()); } @Override diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/events/AbstractEventsView.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/events/AbstractEventsView.java new file mode 100644 index 00000000000..03a0017a901 --- /dev/null +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/events/AbstractEventsView.java @@ -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> recentEventsOrderedByYear; + private final List upcomingEvents; + + public AbstractEventsView() { + recentEventsOrderedByYear = new HashMap>(); + upcomingEvents = new ArrayList(); + } + + @Override + public void setEvents(List events) { + for(EventBaseDTO event: events) { + if(event.startDate != null) { + if(DateUtil.isDayInPast(event.startDate)) { + // recent event + int year = DateUtil.getYear(event.startDate); + List eventsOfYear = recentEventsOrderedByYear.get(year); + if(eventsOfYear == null) { + eventsOfYear = new ArrayList(); + recentEventsOrderedByYear.put(year, eventsOfYear); + } + eventsOfYear.add(event); + } else { + // upcoming event + upcomingEvents.add(event); + } + } + } + updateEventsUI(); + } + + protected abstract void updateEventsUI(); + + public Map> getRecentEventsOrderedByYear() { + return recentEventsOrderedByYear; + } + + public List getUpcomingEvents() { + return upcomingEvents; + } +} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/events/EventsActivity.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/events/EventsActivity.java index cf5dd2d8dd4..fb1d33e130e 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/events/EventsActivity.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/events/EventsActivity.java @@ -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>() { + clientFactory.getSailingService().getPublicEventsOfAllSailingServers(new AsyncCallback>() { @Override - public void onSuccess(List events) { + public void onSuccess(List events) { eventsView.setEvents(events); } @@ -34,8 +33,4 @@ public class EventsActivity extends AbstractActivity { } }); } - - void goTo(Place place) { - clientFactory.getPlaceController().goTo(place); - } } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/events/EventsTable.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/events/EventsTable.java index 468e715c9cd..478ae0dc214 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/events/EventsTable.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/events/EventsTable.java @@ -124,7 +124,7 @@ public class EventsTable extends Composite { nameColumn.setFieldUpdater(new FieldUpdater() { @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); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/events/EventsView.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/events/EventsView.java index 4ca97b1c79e..d8dd79952d6 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/events/EventsView.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/events/EventsView.java @@ -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 events); + void setEvents(List events); } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/events/TabletAndDesktopEventsView.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/events/TabletAndDesktopEventsView.java index 3f172c40f72..4ecc0266bf9 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/events/TabletAndDesktopEventsView.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/events/TabletAndDesktopEventsView.java @@ -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 { } - 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 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()); } } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/events/TabletAndDesktopEventsView.ui.xml b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/events/TabletAndDesktopEventsView.ui.xml index 4fd3f4ebab5..48695ad67e2 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/events/TabletAndDesktopEventsView.ui.xml +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/events/TabletAndDesktopEventsView.ui.xml @@ -1,30 +1,35 @@ - - .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"> + + + .eventsoverviewnavigation { + font-size: 16px; + font-size: 1rem; + margin: 1.875em 0; } - + .eventsoverviewnavigation_button { + text-transform: uppercase; + margin-right: 0.625em; + } + - - - Events page -
-

Search event:

- - - + +
+
+
+ +
-
-

Events:

- -
- - - +
+
+ + + + + +
+ diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/events/recent/EventsOverviewRecent.css b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/events/recent/EventsOverviewRecent.css new file mode 100644 index 00000000000..e69de29bb2d diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/events/recent/EventsOverviewRecent.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/events/recent/EventsOverviewRecent.java new file mode 100644 index 00000000000..d8ee4613ea9 --- /dev/null +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/events/recent/EventsOverviewRecent.java @@ -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 { + } + + private static EventsOverviewUiBinder uiBinder = GWT.create(EventsOverviewUiBinder.class); + + private final PlaceNavigator navigator; + + @UiField HTMLPanel htmlPanel; + + private final Map recentEventsComposites; + + public EventsOverviewRecent(PlaceNavigator navigator) { + this.navigator = navigator; + recentEventsComposites = new HashMap(); + + EventsOverviewRecentResources.INSTANCE.css().ensureInjected(); + initWidget(uiBinder.createAndBindUi(this)); + } + + public void updateEvents(Map> 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--; + } + } +} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/eventsoverview/EventsOverview.ui.xml b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/events/recent/EventsOverviewRecent.ui.xml similarity index 76% rename from java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/eventsoverview/EventsOverview.ui.xml rename to java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/events/recent/EventsOverviewRecent.ui.xml index fe0a87de16b..4a47f2e0a93 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/eventsoverview/EventsOverview.ui.xml +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/events/recent/EventsOverviewRecent.ui.xml @@ -4,7 +4,8 @@ xmlns:s="urn:import:com.sap.sailing.gwt.home.client.shared"> - - + + + diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/events/recent/EventsOverviewRecentResources.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/events/recent/EventsOverviewRecentResources.java new file mode 100644 index 00000000000..b01aa9a5e54 --- /dev/null +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/events/recent/EventsOverviewRecentResources.java @@ -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 { + } +} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/eventsoverview/EventsOverview.css b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/events/upcoming/EventsOverviewUpcoming.css similarity index 51% rename from java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/eventsoverview/EventsOverview.css rename to java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/events/upcoming/EventsOverviewUpcoming.css index 9e61ac590db..5386bc11ee0 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/eventsoverview/EventsOverview.css +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/events/upcoming/EventsOverviewUpcoming.css @@ -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; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/events/upcoming/EventsOverviewUpcoming.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/events/upcoming/EventsOverviewUpcoming.java new file mode 100644 index 00000000000..a80c86638b4 --- /dev/null +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/events/upcoming/EventsOverviewUpcoming.java @@ -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 { + } + + 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 events) { + + } + +} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/events/upcoming/EventsOverviewUpcoming.ui.xml b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/events/upcoming/EventsOverviewUpcoming.ui.xml new file mode 100644 index 00000000000..afa906358e4 --- /dev/null +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/events/upcoming/EventsOverviewUpcoming.ui.xml @@ -0,0 +1,44 @@ + + + + + + + + + + + + diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/events/upcoming/EventsOverviewUpcomingResources.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/events/upcoming/EventsOverviewUpcomingResources.java new file mode 100644 index 00000000000..531f22ca0e9 --- /dev/null +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/place/events/upcoming/EventsOverviewUpcomingResources.java @@ -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(); + } +} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/eventsoverview/EventsOverview.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/eventsoverview/EventsOverview.java deleted file mode 100644 index 24e82d87e89..00000000000 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/eventsoverview/EventsOverview.java +++ /dev/null @@ -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 { - } - - private static EventsOverviewUiBinder uiBinder = GWT.create(EventsOverviewUiBinder.class); - - public EventsOverview() { - EventsOverviewResources.INSTANCE.css().ensureInjected(); - initWidget(uiBinder.createAndBindUi(this)); - } - -} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/eventsoverview/EventsOverviewResources.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/eventsoverview/EventsOverviewResources.java deleted file mode 100644 index 0d60f5056fc..00000000000 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/eventsoverview/EventsOverviewResources.java +++ /dev/null @@ -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(); - } -} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/mainevents/MainEvents.css b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/mainevents/MainEvents.css index 2c3ea1c0037..5364ee74f17 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/mainevents/MainEvents.css +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/mainevents/MainEvents.css @@ -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; -} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/mainevents/MainEvents.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/mainevents/MainEvents.java index 9cef79f79f0..1a0a34a2860 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/mainevents/MainEvents.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/mainevents/MainEvents.java @@ -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 { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/mainevents/MainEvents.ui.xml b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/mainevents/MainEvents.ui.xml index b561bf67d30..f9d8a3c0a9b 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/mainevents/MainEvents.ui.xml +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/mainevents/MainEvents.ui.xml @@ -16,9 +16,9 @@
- - - + + +
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/mainevents/MainEventsResources.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/mainevents/MainEventsResources.java index 846216a7d23..3c9662e2d47 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/mainevents/MainEventsResources.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/mainevents/MainEventsResources.java @@ -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(); } } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/recentevent/RecentEvent.css b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/recentevent/RecentEvent.css new file mode 100644 index 00000000000..d3b553fdc3f --- /dev/null +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/recentevent/RecentEvent.css @@ -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; +} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/mainevents/RecentEvent.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/recentevent/RecentEvent.java similarity index 91% rename from java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/mainevents/RecentEvent.java rename to java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/recentevent/RecentEvent.java index 145ccfb8cd2..572ab5bdf71 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/mainevents/RecentEvent.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/recentevent/RecentEvent.java @@ -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(); } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/mainevents/RecentEvent.ui.xml b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/recentevent/RecentEvent.ui.xml similarity index 96% rename from java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/mainevents/RecentEvent.ui.xml rename to java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/recentevent/RecentEvent.ui.xml index f126f26cc43..5fa3bc9f894 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/mainevents/RecentEvent.ui.xml +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/recentevent/RecentEvent.ui.xml @@ -4,7 +4,7 @@ xmlns:s="urn:import:com.sap.sailing.gwt.home.client.shared"> - +
diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/recentevent/RecentEventResources.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/recentevent/RecentEventResources.java new file mode 100644 index 00000000000..25aff2b9124 --- /dev/null +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/recentevent/RecentEventResources.java @@ -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(); + } +} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/recentevent/RecentEvents.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/recentevent/RecentEvents.java new file mode 100644 index 00000000000..e18fe0cb539 --- /dev/null +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/recentevent/RecentEvents.java @@ -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 recentEventComposites; + + interface RecentEventsUiBinder extends UiBinder { + } + + private static RecentEventsUiBinder uiBinder = GWT.create(RecentEventsUiBinder.class); + + private final PlaceNavigator navigator; + + public RecentEvents(PlaceNavigator navigator) { + this.navigator = navigator; + recentEventComposites = new ArrayList(); + + RecentEventResources.INSTANCE.css().ensureInjected(); + initWidget(uiBinder.createAndBindUi(this)); + } + + public void setEvents(List 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()); + } + + } + +} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/recentevent/RecentEvents.ui.xml b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/recentevent/RecentEvents.ui.xml new file mode 100644 index 00000000000..818a81a7312 --- /dev/null +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/client/shared/recentevent/RecentEvents.ui.xml @@ -0,0 +1,18 @@ + + + + + + +
+
+
+

+

+ +
+
+
+