protected void init() {
if (getConfigurationType().equals(DEVELOPMENT) && new File("src/main/resources").exists()) {
getResourceSettings().addResourceFolder("src/main/resources");
}
// FIXME how to specify url coding strategy for the home page?
mount(new URIRequestTargetUrlCodingStrategy("/" + SEQUENCE_PAGE_PATH) {
@Override
public IRequestTarget decode(RequestParameters requestParameters) {
// Get request URI
String uri = getURI(requestParameters);
// check that folder exists!
File imageFolder = imageUtils.toFile(uri);
log.debug("imageFile: " + imageFolder);
if (! (imageFolder.exists() && imageFolder.isDirectory()))
return null;
// Point to the SequencePage
PageParameters params = new PageParameters();
params.add("uri", uri);
return new BookmarkablePageRequestTarget(SequencePage.class, params);
}
@Override
public boolean matches(IRequestTarget requestTarget) {
if (requestTarget instanceof IBookmarkablePageRequestTarget) {
return ((IBookmarkablePageRequestTarget) requestTarget).getPageClass().equals(SequencePage.class);
}
return false;
}
});
mount(new URIRequestTargetUrlCodingStrategy("/" + IMAGE_PAGE_PATH) {
@Override
public IRequestTarget decode(RequestParameters requestParameters) {
// Get request URI
String uri = getURI(requestParameters);
// check that file exists!
File imageFile = imageUtils.toFile(uri);
log.debug("imageFile: " + imageFile);
if (! (imageFile.exists() && imageFile.isFile()))
return null;
// Point to the ImagePage
PageParameters params = new PageParameters();
params.add("uri", uri);
return new BookmarkablePageRequestTarget(ImagePage.class, params);
}
@Override
public boolean matches(IRequestTarget requestTarget) {
if (requestTarget instanceof IBookmarkablePageRequestTarget) {
return ((IBookmarkablePageRequestTarget) requestTarget).getPageClass().equals(ImagePage.class);
}
return false;
}
});
mount(new URIRequestTargetUrlCodingStrategy("/" + THUMBNAIL_IMAGE_PATH) {
@Override
public IRequestTarget decode(RequestParameters requestParameters) {
try {
return serveImage(getURI(requestParameters), 64);
} catch (Exception e) {
throw new WicketRuntimeException(e);
}
}
});
mount(new URIRequestTargetUrlCodingStrategy("/" + SCALED_IMAGE_PATH) {
@Override
public IRequestTarget decode(RequestParameters requestParameters) {
try {
return serveImage(getURI(requestParameters), 640);
} catch (Exception e) {
throw new WicketRuntimeException(e);
}
}
});
mount(new URIRequestTargetUrlCodingStrategy("/" + "ZipFolder") {
public IRequestTarget decode(RequestParameters requestParameters) {
String uri = getURI(requestParameters);
uri = uri.substring(0, uri.length() - ".zip".length());
org.apache.wicket.util.file.File file = new org.apache.wicket.util.file.File(new File(settings.getImageDirectoryRoot(), uri));
return new ResourceStreamRequestTarget(new ZipResourceStream(file));
}
});
mount(new URIRequestTargetUrlCodingStrategy("/" + FEED_PATH) {
@Override
public IRequestTarget decode(RequestParameters requestParameters) {
try {
final ByteArrayOutputStream pout = new ByteArrayOutputStream();
feedGenerator.generate(settings.getImageDirectoryRoot(), getURI(requestParameters), pout);