package it.unipd.netmus.client.mvp;
import it.unipd.netmus.client.ClientFactory;
import it.unipd.netmus.client.activity.LoginActivity;
import it.unipd.netmus.client.activity.ProfileActivity;
import it.unipd.netmus.client.place.LoginPlace;
import it.unipd.netmus.client.place.ProfilePlace;
import com.google.gwt.activity.shared.Activity;
import com.google.gwt.activity.shared.ActivityMapper;
import com.google.gwt.place.shared.Place;
/**
* Nome: NetmusActivityMapper.java
* Autore: VT.G
* Licenza: GNU GPL v3
* Data Creazione: 15 Febbraio 2011
*/
public class NetmusActivityMapper implements ActivityMapper {
private ClientFactory clientFactory;
public NetmusActivityMapper(ClientFactory clientFactory) {
super();
this.clientFactory = clientFactory;
}
/**
* Activity & Mappa e istanzia l'activity adeguata in base al tipo del place
* dato in input.
*/
@Override
public Activity getActivity(Place place) {
// This is begging for GIN
if (place instanceof LoginPlace)
return new LoginActivity((LoginPlace) place, clientFactory);
else if (place instanceof ProfilePlace)
return new ProfileActivity((ProfilePlace) place, clientFactory);
return null;
}
}