package com.psddev.cms.tool.page.content; import com.psddev.cms.db.RichTextElement; import com.psddev.cms.tool.PageServlet; import com.psddev.cms.tool.ToolPageContext; import com.psddev.dari.db.ObjectType; import com.psddev.dari.util.ObjectUtils; import com.psddev.dari.util.RoutingFilter; import com.psddev.dari.util.TypeDefinition; import javax.servlet.ServletException; import java.io.IOException; import java.util.Map; import java.util.UUID; @RoutingFilter.Path(application = "cms", value = "/content/rte-preview") public class RichTextElementPreview extends PageServlet { @Override protected String getPermissionId() { return null; } @Override @SuppressWarnings("unchecked") protected void doService(ToolPageContext page) throws IOException, ServletException { UUID typeId = page.param(UUID.class, "typeId"); Class<?> rteClass = ObjectType.getInstance(typeId).getObjectClass(); RichTextElement rte = (RichTextElement) TypeDefinition.getInstance(rteClass).newInstance(); rte.fromAttributes((Map<String, String>) ObjectUtils.fromJson(page.param(String.class, "attributes"))); try { rte.writePreviewHtml(page); } catch (RuntimeException error) { // No preview. } } }