]>
git.argeo.org Git - lgpl/argeo-commons.git/blob - swt/org.argeo.cms.swt/src/org/argeo/cms/swt/acr/AcrSwtImageManager.java
1 package org
.argeo
.cms
.swt
.acr
;
3 import java
.io
.IOException
;
4 import java
.io
.InputStream
;
5 import java
.util
.Optional
;
7 import org
.argeo
.api
.acr
.Content
;
8 import org
.argeo
.api
.cms
.CmsConstants
;
9 import org
.argeo
.api
.cms
.ux
.Cms2DSize
;
10 import org
.argeo
.cms
.acr
.SvgAttrs
;
11 import org
.argeo
.cms
.swt
.AbstractSwtImageManager
;
12 import org
.argeo
.cms
.swt
.CmsSwtUtils
;
13 import org
.argeo
.cms
.ux
.CmsUxUtils
;
14 import org
.eclipse
.swt
.graphics
.ImageData
;
16 /** Implementation of {@link AbstractSwtImageManager} based on ACR. */
17 public class AcrSwtImageManager
extends AbstractSwtImageManager
<Content
> {
20 public String
getImageUrl(Content node
) {
21 return getDataPathForUrl(node
);
25 public String
uploadImage(Content context
, Content uploadFolder
, String fileName
, InputStream in
,
27 throw new UnsupportedOperationException();
31 protected ImageData
getSwtImageData(Content node
) {
32 try (InputStream in
= node
.open(InputStream
.class)) {
33 ImageData imageData
= new ImageData(in
);
35 } catch (IOException e
) {
36 throw new RuntimeException(e
);
41 protected String
noImg(Cms2DSize size
) {
43 return CmsUxUtils
.img(dataPath
, size
);
46 protected String
getDataPathForUrl(Content content
) {
47 return CmsSwtUtils
.cleanPathForUrl(getDataPath(content
));
50 /** A path in the node repository */
51 protected String
getDataPath(Content node
) {
52 // TODO make it more configurable?
53 StringBuilder buf
= new StringBuilder(CmsConstants
.PATH_API_ACR
);
54 buf
.append(node
.getPath());
55 return buf
.toString();
59 public Cms2DSize
getImageSize(Content node
) {
61 Optional
<Integer
> width
= node
.get(SvgAttrs
.width
, Integer
.class);
62 Optional
<Integer
> height
= node
.get(SvgAttrs
.height
, Integer
.class);
63 if (!width
.isEmpty() && !height
.isEmpty())
64 return new Cms2DSize(width
.get(), height
.get());
65 return super.getImageSize(node
);