]> git.argeo.org Git - gpl/argeo-suite.git/blob - publishing/org.argeo.publishing.ui/src/org/argeo/cms/text/CmsTextImageManager.java
Improve terms framework.
[gpl/argeo-suite.git] / publishing / org.argeo.publishing.ui / src / org / argeo / cms / text / CmsTextImageManager.java
1 package org.argeo.cms.text;
2
3 import java.io.IOException;
4
5 import javax.jcr.Binary;
6 import javax.jcr.Node;
7 import javax.jcr.RepositoryException;
8
9 import org.argeo.cms.ui.util.DefaultImageManager;
10 import org.eclipse.swt.graphics.ImageData;
11 import org.eclipse.swt.graphics.Point;
12
13 /** Manages only public images so far. */
14 public class CmsTextImageManager extends DefaultImageManager {
15 @Override
16 public Point getImageSize(Node node) throws RepositoryException {
17 return new Point(
18 node.hasProperty(CmsNames.CMS_IMAGE_WIDTH) ? (int) node.getProperty(CmsNames.CMS_IMAGE_WIDTH).getLong()
19 : 0,
20 node.hasProperty(CmsNames.CMS_IMAGE_HEIGHT)
21 ? (int) node.getProperty(CmsNames.CMS_IMAGE_HEIGHT).getLong()
22 : 0);
23 }
24
25 @Override
26 public Binary getImageBinary(Node node) throws RepositoryException {
27 Binary res = super.getImageBinary(node);
28 if (res == null && node.isNodeType(CmsTypes.CMS_STYLED) && node.hasProperty(CmsNames.CMS_DATA)) {
29 return node.getProperty(CmsNames.CMS_DATA).getBinary();
30 } else {
31 return null;
32 }
33 }
34
35 @Override
36 protected void processNewImageFile(Node context,
37 Node fileNode, ImageData id)
38 throws RepositoryException, IOException {
39 fileNode.addMixin(CmsTypes.CMS_IMAGE);
40 fileNode.setProperty(CmsNames.CMS_IMAGE_WIDTH, id.width);
41 fileNode.setProperty(CmsNames.CMS_IMAGE_HEIGHT, id.height);
42
43 }
44 }