X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=publishing%2Forg.argeo.publishing.ui%2Fsrc%2Forg%2Fargeo%2Fcms%2Ftext%2FCmsTextImageManager.java;fp=publishing%2Forg.argeo.publishing.ui%2Fsrc%2Forg%2Fargeo%2Fcms%2Ftext%2FCmsTextImageManager.java;h=9f94a6a899a2f2a6f3bf39f0e99261dad665b09b;hb=147ada7da5bf6292569f17a53a77fca04c97f707;hp=0000000000000000000000000000000000000000;hpb=5431f941fd6161e89f495a330c2ecddaf4f6bfb1;p=gpl%2Fargeo-suite.git diff --git a/publishing/org.argeo.publishing.ui/src/org/argeo/cms/text/CmsTextImageManager.java b/publishing/org.argeo.publishing.ui/src/org/argeo/cms/text/CmsTextImageManager.java new file mode 100644 index 0000000..9f94a6a --- /dev/null +++ b/publishing/org.argeo.publishing.ui/src/org/argeo/cms/text/CmsTextImageManager.java @@ -0,0 +1,42 @@ +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); + + } +}