package com.psddev.cms.tool.file;
import java.io.IOException;
import javax.servlet.ServletException;
import com.psddev.cms.tool.FileContentType;
import com.psddev.cms.tool.ToolPageContext;
import com.psddev.dari.db.State;
import com.psddev.dari.util.StorageItem;
import com.psddev.dari.util.StringUtils;
/**
* Adds support for rendering SVG file previews.
*/
public class SvgFileType implements FileContentType {
public static final String CONTENT_TYPE = "image/svg+xml";
@Override
public double getPriority(StorageItem storageItem) {
String contentType = storageItem.getContentType();
if (StringUtils.isBlank(contentType) || !contentType.equals(CONTENT_TYPE)) {
return DEFAULT_PRIORITY_LEVEL - 1;
}
return DEFAULT_PRIORITY_LEVEL + 1;
}
@Override
public void writePreview(ToolPageContext page, State state, StorageItem fieldValue) throws IOException, ServletException {
page.writeStart("a",
"href", page.h(fieldValue.getPublicUrl()),
"target", "_blank");
page.write(page.h(fieldValue.getContentType()));
page.write(": ");
page.write(page.h(fieldValue.getPath()));
page.writeEnd();
page.writeTag("img",
"style", "display:block;",
"src", fieldValue.getPublicUrl(),
"width", "200");
}
}