package pt.ist.vaadinframework.ui.factory;
import pt.ist.bennu.core.domain.User;
import pt.ist.bennu.core.domain.groups.PersistentGroup;
import pt.ist.bennu.core.domain.groups.SingleUserGroup;
import com.vaadin.terminal.ExternalResource;
import com.vaadin.terminal.Resource;
import com.vaadin.terminal.ThemeResource;
/**
* A resource factory that given a domain object returns a correspoding
* resource.
*
* @author David Martinho (davidmartinho@gmail.com)
*
*/
public class ResourceFactory {
public static Resource getPictureFor(User user) {
return new ExternalResource(
"https://fenix.ist.utl.pt/publico/retrievePersonalPhoto.do?method=retrieveByUUID&contentContextPath_PATH=/homepage&uuid="
+ user.getUsername(), "image/jpeg");
}
public static Resource getPictureFor(SingleUserGroup singleUserGroup) {
return new ExternalResource(
"https://fenix.ist.utl.pt/publico/retrievePersonalPhoto.do?method=retrieveByUUID&contentContextPath_PATH=/homepage&uuid="
+ singleUserGroup.getUser().getUsername(), "image/jpeg");
}
public static Resource getPictureFor(PersistentGroup group) {
return new ThemeResource("../runo/icons/32/users.png");
}
public static Resource getAvatarFor(Object obj) {
if (obj instanceof User) {
return getPictureFor((User) obj);
} else if (obj instanceof SingleUserGroup) {
return getPictureFor((SingleUserGroup) obj);
} else {
return new ThemeResource("../runo/icons/32/users.png");
}
}
}