package org.argeo.cms.text; import java.io.IOException; import javax.jcr.Binary; import javax.jcr.Node; import javax.jcr.RepositoryException; import org.argeo.cms.ui.util.DefaultImageManager; import org.eclipse.swt.graphics.ImageData; import org.eclipse.swt.graphics.Point; /** Manages only public images so far. */ public class CmsTextImageManager extends DefaultImageManager { @Override public Point getImageSize(Node node) throws RepositoryException { return new Point( node.hasProperty(CmsNames.CMS_IMAGE_WIDTH) ? (int) node.getProperty(CmsNames.CMS_IMAGE_WIDTH).getLong() : 0, node.hasProperty(CmsNames.CMS_IMAGE_HEIGHT) ? (int) node.getProperty(CmsNames.CMS_IMAGE_HEIGHT).getLong() : 0); } @Override public Binary getImageBinary(Node node) throws RepositoryException { Binary res = super.getImageBinary(node); if (res == null && node.isNodeType(CmsTypes.CMS_STYLED) && node.hasProperty(CmsNames.CMS_DATA)) { return node.getProperty(CmsNames.CMS_DATA).getBinary(); } else { return null; } } @Override protected void processNewImageFile(Node fileNode, ImageData id) throws RepositoryException, IOException { fileNode.addMixin(CmsTypes.CMS_IMAGE); fileNode.setProperty(CmsNames.CMS_IMAGE_WIDTH, id.width); fileNode.setProperty(CmsNames.CMS_IMAGE_HEIGHT, id.height); } }