/*
* Copyright (c) 2015 Washington State Department of Transportation
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>
*
*/
package gov.wa.wsdot.mobile.client;
import com.google.gwt.place.shared.Place;
import com.googlecode.mgwt.mvp.client.AnimationMapper;
import com.googlecode.mgwt.ui.client.widget.animation.Animation;
import com.googlecode.mgwt.ui.client.widget.animation.Animations;
import gov.wa.wsdot.mobile.client.activities.about.AboutPlace;
import gov.wa.wsdot.mobile.client.activities.alert.AlertPlace;
import gov.wa.wsdot.mobile.client.activities.amtrakcascades.AmtrakCascadesPlace;
import gov.wa.wsdot.mobile.client.activities.amtrakcascades.schedules.AmtrakCascadesSchedulesPlace;
import gov.wa.wsdot.mobile.client.activities.amtrakcascades.schedules.details.AmtrakCascadesSchedulesDetailsPlace;
import gov.wa.wsdot.mobile.client.activities.borderwait.BorderWaitPlace;
import gov.wa.wsdot.mobile.client.activities.callout.CalloutPlace;
import gov.wa.wsdot.mobile.client.activities.camera.CameraPlace;
import gov.wa.wsdot.mobile.client.activities.ferries.FerriesPlace;
import gov.wa.wsdot.mobile.client.activities.ferries.schedules.FerriesRouteSchedulesPlace;
import gov.wa.wsdot.mobile.client.activities.ferries.schedules.departures.FerriesRouteDeparturesPlace;
import gov.wa.wsdot.mobile.client.activities.ferries.schedules.sailings.FerriesRouteAlertDetailsPlace;
import gov.wa.wsdot.mobile.client.activities.ferries.schedules.sailings.FerriesRouteSailingsPlace;
import gov.wa.wsdot.mobile.client.activities.ferries.vesselwatch.VesselWatchMapPlace;
import gov.wa.wsdot.mobile.client.activities.ferries.vesselwatch.location.GoToFerriesLocationPlace;
import gov.wa.wsdot.mobile.client.activities.ferries.vesselwatch.vesseldetails.VesselDetailsPlace;
import gov.wa.wsdot.mobile.client.activities.home.HomePlace;
import gov.wa.wsdot.mobile.client.activities.mountainpasses.MountainPassDetailsPlace;
import gov.wa.wsdot.mobile.client.activities.mountainpasses.MountainPassesPlace;
import gov.wa.wsdot.mobile.client.activities.socialmedia.SocialMediaPlace;
import gov.wa.wsdot.mobile.client.activities.socialmedia.blogger.BlogDetailsPlace;
import gov.wa.wsdot.mobile.client.activities.socialmedia.blogger.BlogPlace;
import gov.wa.wsdot.mobile.client.activities.socialmedia.facebook.FacebookPlace;
import gov.wa.wsdot.mobile.client.activities.socialmedia.news.NewsDetailsPlace;
import gov.wa.wsdot.mobile.client.activities.socialmedia.news.NewsPlace;
import gov.wa.wsdot.mobile.client.activities.socialmedia.twitter.TwitterPlace;
import gov.wa.wsdot.mobile.client.activities.socialmedia.youtube.YouTubeDetailsPlace;
import gov.wa.wsdot.mobile.client.activities.socialmedia.youtube.YouTubePlace;
import gov.wa.wsdot.mobile.client.activities.tollrates.TollRatesPlace;
import gov.wa.wsdot.mobile.client.activities.trafficmap.TrafficMapPlace;
import gov.wa.wsdot.mobile.client.activities.trafficmap.menu.TrafficMenuPlace;
import gov.wa.wsdot.mobile.client.activities.trafficmap.menu.expresslanes.SeattleExpressLanesPlace;
import gov.wa.wsdot.mobile.client.activities.trafficmap.menu.location.GoToLocationPlace;
import gov.wa.wsdot.mobile.client.activities.trafficmap.menu.traveltimes.TravelTimeDetailsPlace;
import gov.wa.wsdot.mobile.client.activities.trafficmap.menu.traveltimes.TravelTimesPlace;
import gov.wa.wsdot.mobile.client.activities.trafficmap.restarea.RestAreaPlace;
import gov.wa.wsdot.mobile.client.activities.trafficmap.trafficincidents.TrafficAlertsPlace;
public class PhoneAnimationMapper implements AnimationMapper {
@Override
public Animation getAnimation(Place oldPlace, Place newPlace) {
if (oldPlace instanceof AboutPlace && newPlace instanceof HomePlace) {
return Animations.SLIDE_REVERSE;
}
if (oldPlace instanceof TrafficMapPlace && newPlace instanceof HomePlace) {
return Animations.SLIDE_REVERSE;
}
if (oldPlace instanceof FerriesPlace && newPlace instanceof HomePlace) {
return Animations.SLIDE_REVERSE;
}
if (oldPlace instanceof FerriesRouteSchedulesPlace && newPlace instanceof FerriesPlace) {
return Animations.SLIDE_REVERSE;
}
if (oldPlace instanceof VesselWatchMapPlace && newPlace instanceof FerriesPlace) {
return Animations.SLIDE_REVERSE;
}
if (oldPlace instanceof FerriesRouteSailingsPlace
&& newPlace instanceof FerriesRouteSchedulesPlace) {
return Animations.SLIDE_REVERSE;
}
if (oldPlace instanceof FerriesRouteSailingsPlace
&& newPlace instanceof HomePlace) {
return Animations.SLIDE_REVERSE;
}
if (oldPlace instanceof MountainPassDetailsPlace && newPlace instanceof HomePlace) {
return Animations.SLIDE_REVERSE;
}
if (oldPlace instanceof FerriesRouteDeparturesPlace
&& newPlace instanceof FerriesRouteSailingsPlace) {
return Animations.SLIDE_REVERSE;
}
if (oldPlace instanceof CameraPlace && newPlace instanceof FerriesRouteDeparturesPlace) {
return Animations.SLIDE_REVERSE;
}
if (oldPlace instanceof MountainPassesPlace && newPlace instanceof HomePlace) {
return Animations.SLIDE_REVERSE;
}
if (oldPlace instanceof TravelTimeDetailsPlace && newPlace instanceof HomePlace) {
return Animations.SLIDE_REVERSE;
}
if (oldPlace instanceof MountainPassDetailsPlace && newPlace instanceof MountainPassesPlace) {
return Animations.SLIDE_REVERSE;
}
if (oldPlace instanceof SocialMediaPlace && newPlace instanceof HomePlace) {
return Animations.SLIDE_REVERSE;
}
if (oldPlace instanceof BlogPlace && newPlace instanceof SocialMediaPlace) {
return Animations.SLIDE_REVERSE;
}
if (oldPlace instanceof FacebookPlace && newPlace instanceof SocialMediaPlace) {
return Animations.SLIDE_REVERSE;
}
if (oldPlace instanceof TwitterPlace && newPlace instanceof SocialMediaPlace) {
return Animations.SLIDE_REVERSE;
}
if (oldPlace instanceof YouTubePlace && newPlace instanceof SocialMediaPlace) {
return Animations.SLIDE_REVERSE;
}
if (oldPlace instanceof NewsPlace && newPlace instanceof SocialMediaPlace) {
return Animations.SLIDE_REVERSE;
}
if (oldPlace instanceof NewsDetailsPlace && newPlace instanceof NewsPlace) {
return Animations.SLIDE_REVERSE;
}
if (oldPlace instanceof TollRatesPlace && newPlace instanceof HomePlace) {
return Animations.SLIDE_REVERSE;
}
if (oldPlace instanceof BorderWaitPlace && newPlace instanceof HomePlace) {
return Animations.SLIDE_REVERSE;
}
if (oldPlace instanceof TrafficMapPlace && newPlace instanceof TrafficMenuPlace) {
return Animations.SLIDE_UP;
}
if (oldPlace instanceof TrafficMenuPlace && newPlace instanceof TrafficMapPlace) {
return Animations.SLIDE_UP_REVERSE;
}
if (oldPlace instanceof TravelTimesPlace && newPlace instanceof TrafficMenuPlace) {
return Animations.SLIDE_REVERSE;
}
if (oldPlace instanceof TravelTimeDetailsPlace && newPlace instanceof TravelTimesPlace) {
return Animations.SLIDE_REVERSE;
}
if (oldPlace instanceof GoToLocationPlace && newPlace instanceof TrafficMenuPlace) {
return Animations.SLIDE_REVERSE;
}
if (oldPlace instanceof GoToLocationPlace && newPlace instanceof TrafficMapPlace) {
return Animations.SLIDE_REVERSE;
}
if (oldPlace instanceof TrafficMapPlace && newPlace instanceof CameraPlace) {
return Animations.FADE;
}
if (oldPlace instanceof CameraPlace && newPlace instanceof TrafficMapPlace) {
return Animations.FADE_REVERSE;
}
if (oldPlace instanceof AlertPlace && newPlace instanceof HomePlace) {
return Animations.SLIDE_REVERSE;
}
if (oldPlace instanceof TrafficMapPlace && newPlace instanceof AlertPlace) {
return Animations.FADE;
}
if (oldPlace instanceof AlertPlace && newPlace instanceof TrafficMapPlace) {
return Animations.FADE_REVERSE;
}
if (oldPlace instanceof SeattleExpressLanesPlace && newPlace instanceof TrafficMenuPlace) {
return Animations.SLIDE_REVERSE;
}
if (oldPlace instanceof TrafficMapPlace && newPlace instanceof TrafficAlertsPlace) {
return Animations.SLIDE_UP;
}
if (oldPlace instanceof TrafficAlertsPlace && newPlace instanceof TrafficMapPlace) {
return Animations.SLIDE_UP_REVERSE;
}
if (oldPlace instanceof VesselWatchMapPlace && newPlace instanceof GoToFerriesLocationPlace) {
return Animations.SLIDE_UP;
}
if (oldPlace instanceof GoToFerriesLocationPlace && newPlace instanceof VesselWatchMapPlace) {
return Animations.SLIDE_UP_REVERSE;
}
if (oldPlace instanceof VesselWatchMapPlace && newPlace instanceof CameraPlace) {
return Animations.FADE;
}
if (oldPlace instanceof CameraPlace && newPlace instanceof VesselWatchMapPlace) {
return Animations.FADE_REVERSE;
}
if (oldPlace instanceof VesselWatchMapPlace && newPlace instanceof VesselDetailsPlace) {
return Animations.FADE;
}
if (oldPlace instanceof VesselDetailsPlace && newPlace instanceof VesselWatchMapPlace) {
return Animations.FADE_REVERSE;
}
if (oldPlace instanceof CameraPlace && newPlace instanceof MountainPassDetailsPlace) {
return Animations.SLIDE_REVERSE;
}
if (oldPlace instanceof BlogDetailsPlace && newPlace instanceof BlogPlace) {
return Animations.SLIDE_REVERSE;
}
if (oldPlace instanceof YouTubeDetailsPlace && newPlace instanceof YouTubePlace) {
return Animations.SLIDE_REVERSE;
}
if (oldPlace instanceof CameraPlace && newPlace instanceof HomePlace) {
return Animations.SLIDE_REVERSE;
}
if (oldPlace instanceof FerriesRouteAlertDetailsPlace
&& newPlace instanceof FerriesRouteSailingsPlace) {
return Animations.SLIDE_REVERSE;
}
if (oldPlace instanceof AmtrakCascadesPlace && newPlace instanceof HomePlace) {
return Animations.SLIDE_REVERSE;
}
if (oldPlace instanceof AmtrakCascadesSchedulesPlace && newPlace instanceof AmtrakCascadesPlace) {
return Animations.SLIDE_REVERSE;
}
if (oldPlace instanceof AmtrakCascadesSchedulesDetailsPlace && newPlace instanceof AmtrakCascadesSchedulesPlace) {
return Animations.SLIDE_REVERSE;
}
if (oldPlace instanceof TrafficMapPlace && newPlace instanceof CalloutPlace) {
return Animations.FADE;
}
if (oldPlace instanceof CalloutPlace && newPlace instanceof TrafficMapPlace) {
return Animations.FADE_REVERSE;
}
if (oldPlace instanceof AlertPlace && newPlace instanceof TrafficAlertsPlace) {
return Animations.SLIDE_REVERSE;
}
if (oldPlace instanceof RestAreaPlace && newPlace instanceof TrafficMapPlace) {
return Animations.SLIDE_REVERSE;
}
if (oldPlace instanceof HomePlace && newPlace instanceof HomePlace){
return null;
}
if (oldPlace == null && newPlace instanceof HomePlace) {
return Animations.FADE;
}
return Animations.SLIDE;
}
}