package sushi.application.pages.main;
import java.util.ArrayList;
import java.util.List;
import org.apache.wicket.Component;
import org.apache.wicket.SharedResources;
import org.apache.wicket.model.IModel;
import org.apache.wicket.request.resource.ResourceReference;
import sushi.application.SushiApplication;
import sushi.application.images.ImageReference;
import de.agilecoders.wicket.markup.html.bootstrap.carousel.CarouselImage;
import de.agilecoders.wicket.markup.html.bootstrap.carousel.ICarouselImage;
/**
* This class is a {@link IModel} and provides the images for the web application.
* @author micha
*/
public class ImageModel implements IModel<List<? extends ICarouselImage>> {
private static final long serialVersionUID = 6701834806582376422L;
List<ICarouselImage> images = new ArrayList<ICarouselImage>();
/**
* The constructor for this class, which provides the images for the web application.
* @param component
*/
public ImageModel(Component component){
SharedResources sharedResources = SushiApplication.get().getSharedResources();
ResourceReference aligmentImageReference = sharedResources.get(ImageReference.class, "alignment.jpg", null, null, null, false);
ResourceReference eventStreamImageReference = sharedResources.get(ImageReference.class, "eventStream.jpg", null, null, null, false);
ResourceReference groupImageReference = sharedResources.get(ImageReference.class, "group.jpg", null, null, null, false);
ResourceReference processImageReference = sharedResources.get(ImageReference.class, "process.jpg", null, null, null, false);
images.add(new CarouselImage(
component.getRequestCycle().urlFor(eventStreamImageReference, null).toString(),
"Event streaming platform",
"Capture all your event streams in one platform"));
images.add(new CarouselImage(
component.getRequestCycle().urlFor(groupImageReference, null).toString(),
"Next generation process management",
"Monitor and analyze your processes"));
images.add(new CarouselImage(
component.getRequestCycle().urlFor(processImageReference, null).toString(),
"Process optimization",
"Capture running process instances to optimize them"));
images.add(new CarouselImage(
component.getRequestCycle().urlFor(aligmentImageReference, null).toString(),
"Business and IT alignment",
"Gain knowlegde through combining business and IT"));
}
@Override
public void detach() {
}
@Override
public List<? extends ICarouselImage> getObject() {
return images;
}
@SuppressWarnings("unchecked")
@Override
public void setObject(List<? extends ICarouselImage> images) {
this.images = (List<ICarouselImage>) images;
}
}