mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-16 09:11:02 +00:00
EventsOverview improvements
This commit is contained in:
1 parent
150c4b67c1
commit
7ef5ef8ca0
5 files changed
+46
-33
No files matched your search
+29
-11
@@ -1,7 +1,10 @@
|
|||||||
package com.sap.sailing.gwt.home.client.place.events;
|
package com.sap.sailing.gwt.home.client.place.events;
|
||||||
|
|
||||||
import com.google.gwt.animation.client.Animation;
|
import com.google.gwt.animation.client.Animation;
|
||||||
|
import com.google.gwt.core.client.Scheduler;
|
||||||
|
import com.google.gwt.core.client.Scheduler.ScheduledCommand;
|
||||||
import com.google.gwt.dom.client.Element;
|
import com.google.gwt.dom.client.Element;
|
||||||
|
import com.google.gwt.dom.client.Style.Display;
|
||||||
import com.google.gwt.dom.client.Style.Overflow;
|
import com.google.gwt.dom.client.Style.Overflow;
|
||||||
import com.google.gwt.dom.client.Style.Unit;
|
import com.google.gwt.dom.client.Style.Unit;
|
||||||
|
|
||||||
@@ -13,13 +16,28 @@ public class CollapseAnimation extends Animation {
|
|||||||
private int effectiveHeight;
|
private int effectiveHeight;
|
||||||
|
|
||||||
public CollapseAnimation(Element elementToAnimate) {
|
public CollapseAnimation(Element elementToAnimate) {
|
||||||
this.elementToAnimate = elementToAnimate;
|
this(elementToAnimate, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public CollapseAnimation(Element elementToAnimate, int effectiveHeight) {
|
public CollapseAnimation(Element elementToAnimate, int effectiveHeight) {
|
||||||
this(elementToAnimate);
|
this(elementToAnimate, false);
|
||||||
this.effectiveHeight = effectiveHeight;
|
this.effectiveHeight = effectiveHeight;
|
||||||
show = false;
|
}
|
||||||
|
|
||||||
|
public CollapseAnimation(Element elementToAnimate, boolean showInitial) {
|
||||||
|
this.elementToAnimate = elementToAnimate;
|
||||||
|
this.show = showInitial;
|
||||||
|
elementToAnimate.getStyle().setOverflow(Overflow.HIDDEN);
|
||||||
|
if(!showInitial) {
|
||||||
|
elementToAnimate.getStyle().setDisplay(Display.NONE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onComplete() {
|
||||||
|
if(!show) {
|
||||||
|
elementToAnimate.getStyle().setDisplay(Display.NONE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -30,17 +48,17 @@ public class CollapseAnimation extends Animation {
|
|||||||
elementToAnimate.getStyle().setHeight(effectiveHeight * progress, Unit.PX);
|
elementToAnimate.getStyle().setHeight(effectiveHeight * progress, Unit.PX);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void onStart() {
|
|
||||||
super.onStart();
|
|
||||||
elementToAnimate.getStyle().setOverflow(Overflow.HIDDEN);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void animate(boolean show) {
|
public void animate(boolean show) {
|
||||||
if(this.show && effectiveHeight == 0) {
|
if(show && effectiveHeight == 0) {
|
||||||
effectiveHeight = elementToAnimate.getOffsetHeight();
|
Scheduler.get().scheduleDeferred(new ScheduledCommand() {
|
||||||
|
@Override
|
||||||
|
public void execute() {
|
||||||
|
effectiveHeight = elementToAnimate.getScrollHeight();
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
elementToAnimate.getStyle().clearDisplay();
|
||||||
this.show = show;
|
this.show = show;
|
||||||
run(500);
|
run(500);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
+2
-7
@@ -35,15 +35,10 @@ public class EventsOverviewRecent extends Composite {
|
|||||||
|
|
||||||
boolean oneYearIsExpanded = false;
|
boolean oneYearIsExpanded = false;
|
||||||
for (EventListYearDTO yearDTO : years) {
|
for (EventListYearDTO yearDTO : years) {
|
||||||
EventsOverviewRecentYear recentEventsOfOneYear = new EventsOverviewRecentYear(yearDTO, navigator);
|
EventsOverviewRecentYear recentEventsOfOneYear = new EventsOverviewRecentYear(yearDTO, navigator, !oneYearIsExpanded);
|
||||||
year.add(recentEventsOfOneYear);
|
year.add(recentEventsOfOneYear);
|
||||||
|
|
||||||
if (oneYearIsExpanded == true) {
|
oneYearIsExpanded = true;
|
||||||
recentEventsOfOneYear.hideContent();
|
|
||||||
} else {
|
|
||||||
recentEventsOfOneYear.showContent();
|
|
||||||
oneYearIsExpanded = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+13
-14
@@ -6,7 +6,6 @@ import com.google.gwt.core.client.GWT;
|
|||||||
import com.google.gwt.dom.client.DivElement;
|
import com.google.gwt.dom.client.DivElement;
|
||||||
import com.google.gwt.dom.client.Element;
|
import com.google.gwt.dom.client.Element;
|
||||||
import com.google.gwt.dom.client.SpanElement;
|
import com.google.gwt.dom.client.SpanElement;
|
||||||
import com.google.gwt.dom.client.Style.Display;
|
|
||||||
import com.google.gwt.event.dom.client.ClickEvent;
|
import com.google.gwt.event.dom.client.ClickEvent;
|
||||||
import com.google.gwt.event.dom.client.ClickHandler;
|
import com.google.gwt.event.dom.client.ClickHandler;
|
||||||
import com.google.gwt.uibinder.client.UiBinder;
|
import com.google.gwt.uibinder.client.UiBinder;
|
||||||
@@ -18,6 +17,7 @@ import com.google.gwt.user.client.ui.Widget;
|
|||||||
import com.sap.sailing.gwt.home.client.app.HomePlacesNavigator;
|
import com.sap.sailing.gwt.home.client.app.HomePlacesNavigator;
|
||||||
import com.sap.sailing.gwt.home.client.app.PlaceNavigation;
|
import com.sap.sailing.gwt.home.client.app.PlaceNavigation;
|
||||||
import com.sap.sailing.gwt.home.client.place.event2.EventDefaultPlace;
|
import com.sap.sailing.gwt.home.client.place.event2.EventDefaultPlace;
|
||||||
|
import com.sap.sailing.gwt.home.client.place.events.CollapseAnimation;
|
||||||
import com.sap.sailing.gwt.ui.shared.eventlist.EventListEventDTO;
|
import com.sap.sailing.gwt.ui.shared.eventlist.EventListEventDTO;
|
||||||
import com.sap.sailing.gwt.ui.shared.eventlist.EventListYearDTO;
|
import com.sap.sailing.gwt.ui.shared.eventlist.EventListYearDTO;
|
||||||
|
|
||||||
@@ -42,11 +42,14 @@ public class EventsOverviewRecentYear extends Composite {
|
|||||||
|
|
||||||
private boolean isContentVisible;
|
private boolean isContentVisible;
|
||||||
|
|
||||||
public EventsOverviewRecentYear(EventListYearDTO yearDTO, HomePlacesNavigator navigator) {
|
private final CollapseAnimation animation;
|
||||||
|
|
||||||
|
public EventsOverviewRecentYear(EventListYearDTO yearDTO, HomePlacesNavigator navigator, boolean showInitial) {
|
||||||
List<EventListEventDTO> events = yearDTO.getEvents();
|
List<EventListEventDTO> events = yearDTO.getEvents();
|
||||||
|
|
||||||
EventsOverviewRecentResources.INSTANCE.css().ensureInjected();
|
EventsOverviewRecentResources.INSTANCE.css().ensureInjected();
|
||||||
initWidget(uiBinder.createAndBindUi(this));
|
initWidget(uiBinder.createAndBindUi(this));
|
||||||
|
|
||||||
this.year.setInnerText(String.valueOf(yearDTO.getYear()));
|
this.year.setInnerText(String.valueOf(yearDTO.getYear()));
|
||||||
this.eventsCount.setInnerText(String.valueOf(events.size()));
|
this.eventsCount.setInnerText(String.valueOf(events.size()));
|
||||||
if(yearDTO.getSailorCount() > 0) {
|
if(yearDTO.getSailorCount() > 0) {
|
||||||
@@ -72,13 +75,16 @@ public class EventsOverviewRecentYear extends Composite {
|
|||||||
RecentEventTeaser recentEvent = new RecentEventTeaser(eventNavigation, eventDTO);
|
RecentEventTeaser recentEvent = new RecentEventTeaser(eventNavigation, eventDTO);
|
||||||
recentEventsTeaserPanel.add(recentEvent);
|
recentEventsTeaserPanel.add(recentEvent);
|
||||||
}
|
}
|
||||||
isContentVisible = true;
|
|
||||||
headerDiv.addDomHandler(new ClickHandler() {
|
headerDiv.addDomHandler(new ClickHandler() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(ClickEvent event) {
|
public void onClick(ClickEvent event) {
|
||||||
onHeaderCicked();
|
onHeaderCicked();
|
||||||
}
|
}
|
||||||
}, ClickEvent.getType());
|
}, ClickEvent.getType());
|
||||||
|
|
||||||
|
isContentVisible = showInitial;
|
||||||
|
animation = new CollapseAnimation(contentDiv, showInitial);
|
||||||
|
updateAccordionState();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onHeaderCicked() {
|
private void onHeaderCicked() {
|
||||||
@@ -86,22 +92,15 @@ public class EventsOverviewRecentYear extends Composite {
|
|||||||
updateContentVisibility();
|
updateContentVisibility();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void hideContent() {
|
private void updateContentVisibility() {
|
||||||
isContentVisible = false;
|
animation.animate(isContentVisible);
|
||||||
updateContentVisibility();
|
updateAccordionState();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void showContent() {
|
private void updateAccordionState() {
|
||||||
isContentVisible = true;
|
|
||||||
updateContentVisibility();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void updateContentVisibility() {
|
|
||||||
if(isContentVisible) {
|
if(isContentVisible) {
|
||||||
contentDiv.getStyle().clearDisplay();
|
|
||||||
getElement().removeClassName(EventsOverviewRecentResources.INSTANCE.css().accordioncollapsed());
|
getElement().removeClassName(EventsOverviewRecentResources.INSTANCE.css().accordioncollapsed());
|
||||||
} else {
|
} else {
|
||||||
contentDiv.getStyle().setDisplay(Display.NONE);
|
|
||||||
getElement().addClassName(EventsOverviewRecentResources.INSTANCE.css().accordioncollapsed());
|
getElement().addClassName(EventsOverviewRecentResources.INSTANCE.css().accordioncollapsed());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
@@ -54,6 +54,7 @@
|
|||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
width: 66%;
|
width: 66%;
|
||||||
|
display: inline-block;
|
||||||
}
|
}
|
||||||
@media (min-width: 61em) {
|
@media (min-width: 61em) {
|
||||||
.eventsoverviewupcoming_header_ticker {
|
.eventsoverviewupcoming_header_ticker {
|
||||||
|
|||||||
+1
-1
@@ -16,7 +16,7 @@
|
|||||||
<span>
|
<span>
|
||||||
<h3 class="{local_res.css.eventsoverviewupcoming_header_title}">
|
<h3 class="{local_res.css.eventsoverviewupcoming_header_title}">
|
||||||
<ui:text from="{i18n_ubi.seriesHeaderUpcoming}" /><span ui:field="colon" style="display: none;">:</span></h3>
|
<ui:text from="{i18n_ubi.seriesHeaderUpcoming}" /><span ui:field="colon" style="display: none;">:</span></h3>
|
||||||
<span ui:field="ticker" class="{local_res.css.eventsoverviewupcoming_header_ticker}" style="display: inline-block;" />
|
<span ui:field="ticker" class="{local_res.css.eventsoverviewupcoming_header_ticker}" />
|
||||||
</span>
|
</span>
|
||||||
<!-- IFEND upcomingEvents.events.length < 2 -->
|
<!-- IFEND upcomingEvents.events.length < 2 -->
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in new issue
Block a user