+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);
+
+ }
+}